TIP JOSIF Main Page |TIP JOSIF Framework | TIP Soap Generator | TIP Soap Generator Mapping Rules - Part III
...
Related to issue #17 in Mantis Datatype: isExtendable
Mapping Rule
refer to to TIP _ Soap _ Generator _Mapping_Rules#Mapping Mapping Rules - Part I#Mapping Rule for Extendability (I,PR). If a datatype has 'tipDatatype:isExtendable=true', the generator will inject an additional element to corresponding XSD type of the datatype.
...
Datatype; inheritance
Mapping Rule
refer to to TIP _ Soap _ Generator _Mapping_Rules#Mapping Mapping Rules - Part I#Mapping Rule for Inheritance. Map inheritance of datatype artifacts to extension of datatype XSD types.
...
Mapping Rules for Exceptions
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Exception Base support
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Exception___attribute support
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Exception___Inheritance
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Exception___Extendability
Exception Base support
Exception Base support
Related to issue #346 in Mantis Exception Base Support
...
All Exception artifacts are mapped to XSD complex types, and under this mapping, the attributes of artifacts are mapped to sub-elements of the XSD complex types.
For details, refer to to TIP _ Soap _ Generator _Mapping_Rules#Mapping Mapping Rules - Part I#Mapping Rule for Attributes and , Association Ends, and Parameters
Example
In Test1 model, we have org.tmforum.tip.cbe.test.TestFailureWithData. Some of their attributes is of primitive type, some is of Datatype type, some is of Enumeration type, and some is of Entity type.
...
Code Block |
---|
<xsd:complexType name="TestFailure"> <xsd:annotation> <xsd:documentation> Simple private exception </xsd:documentation> </xsd:annotation> <xsd:complexContent> <xsd:extension base="exceptions:ExceptionBase"> <xsd:sequence/> </xsd:extension> </xsd:complexContent> </xsd:complexType> |
Exception
...
; Inheritance
Mapping Rule
refer to [to TIP _ Soap _ Generator _Mapping_Rules#Mapping Mapping Rules - Part I#Mapping Rule for Inheritance. Map inheritance of exception artifacts to extension of exception XSD types.
...
When map ExceptionBase artifact to XSD complex type, the generator will inject an additional sub-element called extensionInfo. please refer to mapping rule in section TIP_Soap_Generator_Mapping_Rules#Exception Base support (I,NR,346). Exception Base support For the structure of the sub-element, please refer to TIP_Soap_Generator_Mapping_Rules#Mapping to Mapping Rule for Extendability (I,PR).
All other exception artifacts will be mapped to a (direct or indirect) subtype of ExceptionBase XSD type, so all exception XSD type inherit that extensionInfo sub-element. In particular, if an exception aritifact is not explicitly given an ancestor, then in XSD, we will map it to a direct subtype of ExceptionBase XSD type.
...
for examples, please refer to sections:
TIP_Soap_Generator_Mapping_Rules#Exception Exception Base support TIP_Soap_Generator_Mapping_Rules#Exception___attribute support
Mapping Rule for Extendability
Mapping Rules for Notifications
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Notification___abstract
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Notification___Notification Base Support
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Notification___inheritance
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Notification___attribute support
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Notification___Notification; abstract
- Notification; Notification Generic Inheritance Rule
- Notification; Common Notification Base Support
- Notification; inheritance
- Notification; attribute support
- Notification; Extendability
Notification; abstract
Related to issue #64 in Mantis Notification: Abstract
...
In Test1 model, the notification org.tmforum.tip.service.test.TestEvent which is a direct subtype of NotificationBase:
refer to section TIP_Soap_Generator_Mapping_Rules#Notification___section Notification; Notification Base Support (I,NR) for examples.
Example (indirect subtype of NotificationBase)
...
When map NotificationBase artifact to XSD complex type, an additional sub-element named extensionInfo is injected into. please refer to mapping rule in sectionTIP_Soap_Generator_Mapping_Rules#Notification___Notification; Notification Base Support
All other notification artifacts will be mapped to a (direct or indirect) subtype of Notification XSD type, so they will inherit that extensionInfo sub-element. In particular, if a notification aritifact is not explicitly given an ancestor, then in XSD, we will map it to a direct subtype of Notification XSD type.
...
for examples, please refer to sections:
TIP_Soap_Generator_Mapping_Rules#Notification___Notification; Notification Base Support
TIP_Soap_Generator_Mapping_Rules#Notification___inheritance
TIP_Soap_Generator_Mapping_Rules#Notification___Notification; inheritance
Notification; attribute support
Mapping Rules for Enumerations
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Int Int based Enum supportTIP_Soap_Generator_Mapping_Rules_-_Part_III#string
- string based Enum support
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Enum___abstract
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Enum___Enum; abstract
- Enum; Extendability
Int based Enum support
Related to issue #41 in Mantis Int based Enum support
...
Mapping Rules for Primitives
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Primitive type___any
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Primitive type___boolean
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Primitive type___char
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Primitive type___date
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Primitive type___dateTime
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Primitive type___double
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Primitive type___float
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Primitive type___int
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Primitive type___long
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Primitive type___short
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Primitive type___time
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Primitive type___unknown
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Primitive type___unsignedInteger
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Primitive type___byte
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Primitive type___objectName
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Primitive type___Array of Primitives
- TIP_Soap_Generator_Mapping_Rules_-_Part_III#Primitive type___FilterPrimitive type; any
- Primitive type; boolean
- Primitive type; char
- Primitive type; date
- Primitive type; dateTime
- Primitive type; double
- Primitive type; float
- Primitive type; int
- Primitive type; long
- Primitive type; short
- Primitive type; time
- Primitive type; unknown
- Primitive type; unsignedInteger
- Primitive type; byte
- Primitive type; objectName
- Primitive type; Array of Primitives
- Primitive type; Filter
Please refer to XML Schema Part 2: Datatypes Second Edition (W3C Recommendation 28 October 2004) for more information about XSD anyType.
...
Operation using primitive filters as input arguments are mapped to operations using query filters which are XPATH expressions.
refer to *TIP _ Soap _ Generator _ Mapping _ Rules _ - _ Part _ VII