1. Telflow
Page of1 18
Dynamic Data
Specification
URL:
Date:
Author: Kenneth Li
20-Jan-2014 12:56
https://confluence.office.dgit.biz/display/TF/Dynamic+Data+Specification
2. Telflow
Page of2 18
Table of Contents
1 Specification _______________________________________________________________________ 3
2 Specification Instances _______________________________________________________________ 4
3 Characteristics ______________________________________________________________________ 5
3.1 Characteristic Types _____________________________________________________________ 5
3.2 Characteristic Properties __________________________________________________________ 5
3.2.1 Cardinality _______________________________________________________________ 5
3.2.2 Default Value _____________________________________________________________ 5
3.2.3 Unit of Measure (UOM) _____________________________________________________ 5
3.2.4 Read Only _______________________________________________________________ 6
3.3 Characteristic Types Detail ________________________________________________________ 6
3.3.1 Enumeration ______________________________________________________________ 6
3.3.2 Key Value ________________________________________________________________ 8
3.3.3 Range ___________________________________________________________________ 9
3.3.4 Collection _______________________________________________________________ 10
3.4 Specification XML Order Message Example __________________________________________ 13
3.5 Specification Rules _____________________________________________________________ 16
3.6 Specification Instance Representation in JSON _______________________________________ 17
3. Telflow
Page of3 18
1.
2.
3.
1 Specification
A is a grouping construct which provides structure to the dynamic data patterns (Specification
available within the TMForum Information Model (SID).Characteristic Specification / Characteristic Value)
Use cases for a specification include;
Applying structure to stored dynamic data, where a specification of a given type and version is used
when writing the dynamic data. The same specification type and version needs to be used to interpret
the dynamic data when reading.
Providing a "contract" for dynamic data exchanges been systems, including between organisations. A
message is formed to be compliant to the specification and can then be interpreted or read using the
specification as a template.
Rendering User Interfaces; A specification contains the base information required to render a user
interface. Data collected from the User Interface forms a specification instance. This specification
instance can then be used within messages for exchange with other systems, which also utilised the
same type and version of the specification.
4. Telflow
Page of4 18
2 Specification Instances
A is the data captured when using the specification as a template. For example aSpecification Instance
product specification provides a template for a product order. The product specification instance is the
product information within the order itself.
5. Telflow
Page of5 18
3 Characteristics
3.1 Characteristic Types
Currently, four characteristic types have been defined to build and model Specifications. Further detail of
these types is provided below:
Enumeration
Key Value
Range
Collection
These are explained more fully in the detailed sections for each characteristic type.
3.2 Characteristic Properties
A characteristic property controls the isolated behaviour of the characteristic. Properties are described as
follows;
3.2.1 Cardinality
Cardinality controls the number of instances of the characteristic within the specification instance. The
minimum cardinality value is the minimum number of characteristic instances required. For example if the
minimum cardinality is one then one instance must be provided in order for the specification instance to be
compliant to the specification. Or another way of considering it is that in a field that providing a value is
mandatory.
A specification instance can have characteristic instances up to the maximum number specified in the
cardinality instance property. This is useful in dealing with multiplicity relationships like number of logical or
physical ports on a piece of network equipment for example.
3.2.2 Default Value
The default value of the characteristic can be set automatically within the specification instance. The value of
the characteristic is still able to be overwritten by the user.
3.2.3 Unit of Measure (UOM)
The Unit of Measure is a user defined String that can be applied to provide further information on a
characteristic and can be any character. For example a Unit of Measure can be applied to a price
characteristic as "USD".
6. Telflow
Page of6 18
3.2.4 Read Only
The Read Only property allows the characteristic to be defined and visible, but not editable by the user. For
example, the price of a product may be displayed, but not editable by the user.
3.3 Characteristic Types Detail
3.3.1 Enumeration
A list of values to select from of a given type (ie. String, Integer, Float, etc) from which a single value may be
selected. The enumerated list may have optional properties applied including being made read only, having
a default value, or units of measure for each value.
Supported Value Types
Type Possible Values Example
String any String of characters aString
Float a number up to 7 decimal points 1.1234567
Integer any whole number 8
DateTime DD/MM/YYYY 14/01/2014
Properties of an Enumeration Characteristic
Property Description
Read Only Makes the value Read Only.
Unit of Measure Applies a Unit of Measure to the field.
Default Value Sets a value in the enumeration as the default.
7. Telflow
Page of7 18
Cardinality Sets multiplicity as a range.
Enumeration XML Example
The XML code extract below is an example of the XML structure of the Enumeration specification
characteristic in a Specification template. Note that all available supported types and properties of the types
are defined in the XML structure. The user is able to select a value from the enumeration that will form part
of the
Enumeration
...
<SpecCharacteristic>
<ID>Service Template</ID> <!-- Unique Identifying ID of the
Characteristic -->
<Name>Service Template</Name> <!-- Name of the Characteristic -->
<Description />
<Type>Enumerated</Type> <!-- Characteristic Type defined -->
<ReadOnly>false</ReadOnly> <!-- Read Only, a property of the
characteristic, value to true/false -->
<MinCardinality>1</MinCardinality> <!-- Setting Min and Max Cardinality a
minimum of >1 makes it mandatory for for the number-->
<MaxCardinality>1</MaxCardinality> <1-- multiples allowed to maximum
Cardinality
<SpecCharacteristicValues>
<SpecCharacteristicValue> <!-- Defining a value of the
Enumeration -->
<Value>Bitstream 2 100/50 10/2.5</Value> <!-- First Enumeration value -->
<ValueType>String</ValueType> <!-- of type String, see supported
value types -->
<Default>false</Default> <!-- that is not the default,
(property of the value) -->
<UnitOfMeasure>EA</UnitOfMeasure> <!-- and a Unit of Measure of "EA"
(permitted values )-->
<SpecCharValueRelationships />
</SpecCharacteristicValue>
<SpecCharacteristicValue>
<Value>Bitstream 2 100/50 2.5/2.5</Value> <!-- Second Enumeration value -->
<ValueType>String</ValueType> <!-- of type String -->
<Default>false</Default> <!-- that is not the default -->
<SpecCharValueRelationships />
</SpecCharacteristicValue>
<SpecCharacteristicValue>
<Value>Bitstream 2 30/10 5/5</Value> <!-- Third Enumeration value -->
<ValueType>String</ValueType> <!-- of type String -->
<Default>false</Default> <!-- that is not the default -->
<SpecCharValueRelationships />
</SpecCharacteristicValue>
</SpecCharacteristicValues>
<SpecCharacteristicRelationships />
</SpecCharacteristic>
...
8. Telflow
Page of8 18
3.3.2 Key Value
Name and Value that conforms to given data type (String, Integer, Float, DateTime). The Key Value may
have optional properties applied including being made read only, having a default value, or units of measure
for each value.
Supported Value Types
Type Possible Values Example
String a aString
Boolean 1 or 0 1 (may be represented by a check box)
Float a number up to 7 decimal points 1.1234567
Integer any whole number 8
DateTime DD/MM/YYYY 14/01/2014
Properties of Key Value Characteristics
Property Description
Read Only Makes the value Read Only.
Unit of Measure Applies a Unit of Measure to the field.
Default Value Sets a default value.
Cardinality Sets multiplicity as a range.
Key Value XML Example
The code extract below is an example of the XML structure of the KeyValue specification characteristic in a
Specification Template. Note that supported types and properties of the types are defined in the XML
structure.
9. Telflow
Page of9 18
KeyValue
...
<SpecCharacteristic>
<ID>Price</ID> <!-- Unique Identifying ID of the
Characteristic -->
<Name>Price</Name> <!-- Name of the Characteristic -->
<Description />
<Type>KeyValue</Type> <!-- Characteristic Type defined -->
<ReadOnly>false</ReadOnly> <!-- Setting Read Only to false -->
<MinCardinality>0</MinCardinality> <!-- Setting min/max Cardinality -->
<MaxCardinality>1</MaxCardinality>
<SpecCharacteristicValues>
<SpecCharacteristicValue> <!-- Defining the structure of the KeyValue
-->
<ValueType>String</ValueType> <!-- Setting the type as String -->
<DefaultValue>00.00</DefaultValue> <!-- with a default value of "00.00 -->
<UnitOfMeasure>NZD</UnitOfMeasure> <!-- and a Unit of Measure as "NZD" -->
<SpecCharValueRelationships />
</SpecCharacteristicValue>
</SpecCharacteristicValues>
<SpecCharacteristicRelationships />
</SpecCharacteristic>
...
3.3.3 Range
A Key Value that accepts a single numeric value within a constrained range. The Key Value may have
optional properties applied including being made read only, having a default value, or units of measure for
each value.
Supported Types
Type Possible Values Example
Float a number up to 7 decimal points 1.1234567
10. Telflow
Page of10 18
Integer any whole number 8
Properties of Range Characteristics
Property Description
Read Only Makes the value Read Only.
Unit of Measure Applies a Unit of Measure to the field.
Default Value Sets a default value.
Cardinality Sets multiplicity as a range.
Range XML Example
The code extract below is an example of the XML structure of the Range specification characteristic in a
Specification Template. Note that supported types and properties of the types are defined in the XML
structure.
Range
...
<SpecCharacteristic>
<ID>SVID</ID> <!-- Unique Identifying ID of the
Characteristic -->
<Name>SVID</Name> <!-- Name of the Characteristic -->
<Description />
<Type>Range</Type> <!-- Characteristic Type defined -->
<ReadOnly>false</ReadOnly> <!-- Setting Read Only to false -->
<MinCardinality>0</MinCardinality> <!-- Setting min/max Cardinality -->
<MaxCardinality>1</MaxCardinality>
<SpecCharacteristicValues>
<SpecCharacteristicValue>
<ValueType>Integer</ValueType> <!-- Defining the structure of the Range -->
<ValueFrom>1</ValueFrom> <!-- Defining the confines of the Range -->
<ValueTo>4096</ValueTo>
<SpecCharValueRelationships />
</SpecCharacteristicValue>
</SpecCharacteristicValues>
<SpecCharacteristicRelationships />
</SpecCharacteristic>
...
3.3.4 Collection
11. Telflow
Page of11 18
A Collection is a characteristic that enables other characteristics to be created as children and be grouped.
For example, a Collection of User Details could be created with children characteristics of First Name, Last
Name and Phone Number. The grouping formed with collections is used a range of purposes including for
presentation and to support rules, allowing a rule to be applied to a parent and apply to each of the child
characteristics.
Properties of Collection Characteristic
Property Description
Cardinality Sets multiplicity as a range.
Collection XML Example
The code extract below is an example of the XML structure of the Collection specification characteristic in a
Specification template.
Collection
...
<SpecCharacteristics>
<SpecCharacteristic>
<ID>User Details</ID> <!-- Unique Identifying ID of the
Characteristic -->
<Name>User Details</Name> <!-- Name of the Characteristic -->
<Description/>
<Type>Collection</Type> <!-- Characteristic Type defined -->
<ReadOnly>false</ReadOnly> <!-- Setting Read Only to false -->
<MinCardinality>1</MinCardinality> <!-- Setting min/max Cardinality -->
<MaxCardinality>1</MaxCardinality>
<SpecCharacteristicValues/>
<SpecCharacteristicRelationships>
<SpecCharacteristicRelationship>
<SpecCharacteristic> <!-- Child characteristic in the
Collection -->
<ID>First Name</ID>
16. Telflow
Page of16 18
1.
2.
3.
4.
</CharacteristicValueReferences>
<CharacteristicValueReferences>
<value>Default</value>
<Characteristic>
<ID>UNI: Duplex</ID>
<name>UNI: Duplex</name>
</Characteristic>
</CharacteristicValueReferences>
<CharacteristicValueReferences>
<value>Default</value>
<Characteristic>
<ID>UNI: Encapsulation</ID>
<name>UNI: Encapsulation</name>
</Characteristic>
</CharacteristicValueReferences>
</DescribedBy>
<version>0.1</version>
<SpecifiedBy xsi:type="prd:ProductSpecification">
<ID>SPC000000000004</ID>
<type>Product Specification</type>
<category>Product Specification</category>
</SpecifiedBy>
<validFor>
<startDateTime>2013-12-09T00:43:51.083106Z</startDateTime>
</validFor>
<ProductOffering>
<ID>POF000000000000</ID>
</ProductOffering>
</ItemInvolvesProduct>
</ProductOrderComprisedOf>
<AccessSeekerContact>
<contactName>Greg Williams</contactName>
<emailAddress>gwilliams@gmail.com</emailAddress>
</AccessSeekerContact>
</ProductOrder>
</ManageProductOrderRequest>
...
3.5 Specification Rules
Specification rules are used to manage the interactions between the characteristics of a Specification. For
example, a rule can be created to:
Modify a characteristic once preset conditions are satisfied - e.g. Automatically set the price, once a
given product is selected in an Enumeration.
Add or remove a characteristic if preset conditions are satisfied - e.g. Add additional values for the
contact details of the building owner in a multi-dwelling unit.
Make a characteristic read-only if preset conditions are satisfied.
Hide a characteristic from the user if preset conditions are satisfied.
17. Telflow
Page of17 18
Specification rules may be used to implement company specific business rules, apply constraints, reduce
errors and improve the user experience in creating the Specification Instance. They are generally unique to
each company and the format for rule representation between trading partners is of a lower relevance than
the format of specifications and their characteristics and properties.
3.6 Specification Instance Representation in JSON
Specifications and their associated instances may also be represented in JSON. Given JSON does not
provide the same degree of syntactical regiment as XML some concessions need to be made (such as no
direct support for XML Types). Therefore, w
The following example provides a summarised approach. This format does not provide a direct translation
between XML & JSON but rather provides a simplified structure for creation & consumption, while supporting
all current use-cases.