TIP Soap Generator Mapping Rules - Part VIII

Entify Identifier can be involved in operations. They are either explicitely
modeled by picking the EID and using as an input output parameter or by using
an Entity Centric operation stereotype.

The EID complexType structure looks like this

 <xsd:complexType name="EntityIdentifier">
      <xsd:sequence>
         <xsd:element name="context" type="tns:Context" minOccurs="1" maxOccurs="1">
         </xsd:element>
         <xsd:element name="dn" type="tns:DistinguishedName" minOccurs="1" maxOccurs="1">
         </xsd:element>
         <xsd:element name="entityType" type="xsd:string" minOccurs="1" maxOccurs="1">
         </xsd:element>
      </xsd:sequence>
</xsd:complexType>

The context attribute contains a Context object which determines the system specific context for the Entity. The context defines an implementation specific context.scheme and context.valuePairs, a collection of named value pairs

  <xsd:complexType name="Context">
      <xsd:annotation>
         <xsd:documentation>
            <p>Context extends CheckedCollection and contains a collection of named value pairs which determine the system specific context for an Entity.
The contents of a Context are implementation specific.
The scheme value may be populated with a reference to a scheme which the run time system uses to check the valuePairs in Context. The behavour of the run time system when checking valuepairs is implementation specific.</p>
            <p>This datatype  is  not extendable</p>
         </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
         <xsd:extension base="tns:CheckedCollection">
            <xsd:sequence/>
         </xsd:extension>
      </xsd:complexContent>
   </xsd:complexType>

where the CheckedCollection is a sequence of name value pairs as defined in NameValuePairCollection
and a named schema.

<xsd:complexType name="CheckedCollection">
      <xsd:annotation>
         <xsd:documentation>
            <p>The CheckedCollection element contains
valuePairs : a collection of string name value pairs
and
scheme : a string reference to a named scheme.
A CheckedCollection is equal to another CheckedCollection if the contents of both the scheme and the valuePairs attributes are equal
The scheme contains a reference to a descriptor of the behaviour required from a run time system to check that the contents of the valuePairs array is correct. The definition of different values for scheme is not defined in CheckedCollection but may be defined for classes which inherit from CheckedCollection.</p>
            <p>This datatype  is  not extendable</p>
         </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
         <xsd:element name="valuePairs" type="tns:NameValuePairCollection" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>
                  <p>contains a collection of name-value pairs.
The valuePairs attribute is always present but may not be populated.</p>
                  <p>This element is generated from an attribute.</p>
                  <p>This attribute  is  mandatory</p>
               </xsd:documentation>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="scheme" type="xsd:string" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>
                  <p>The scheme string identifies a named scheme which the run time system can reference to determine the possible groupings of name value pairs which can be populated in this data type.
If the scheme is left as an empty string value, then the datatype can contain any set of values.
The behaviour of the run time system for other values in scheme is not defined for the CheckedCollection element. However this behaviour may be defined for elements which inhereit from CheckedCollection</p>
                  <p>This element is generated from an attribute.</p>
                  <p>This attribute  is  mandatory</p>
               </xsd:documentation>
            </xsd:annotation>
         </xsd:element>
      </xsd:sequence>
   </xsd:complexType>

The type defines the type of the referenced entity. This string is filled by the implementation with with an XML type reference.

The dn attribute contains a DestinguishedName which determines the Destinguished Name of the Entity
An EntityIdentifier is equal to another EntityIdentifier iff both the context and dn attributes are identical. To simplify implimentation, all attributes in an EntityIdentifier are defined as strings or name value pairs of strings.

<xsd:complexType name="DistinguishedName">
      <xsd:annotation>
         <xsd:documentation>
            <p>The DistinguishedName extends a CheckedCollection to define a Distinguished Name for an Entity.
Users may assign their own values to the DistinguishedName.scheme or use a value which has been standardised by an interface.
The run time action to check conformance with a scheme is implimentation specific.
Standardised DistinguishedName.scheme definitions will be defined for sn.scheme string values of:
'org.tmforum.tip.dnscheme.ossj' - OSSJ dn schema
'org.tmforum.tip.dnscheme.mtnm' - MTNM dn schema
'org.tmforum.tip.dnscheme.mtosi', MTOSI dn schema
'org.tmforum.tip.dnscheme.tip' - TIP dn schema
Note these are not defined as string enumerations to allow substitution with user defined values.</p>
            <p>This datatype  is  not extendable</p>
         </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
         <xsd:extension base="tns:CheckedCollection">
            <xsd:sequence/>
         </xsd:extension>
      </xsd:complexContent>
   </xsd:complexType>
<xsd:complexType name="NameValuePair">
      <xsd:annotation>
         <xsd:documentation>
            <p>Base Datatype for name value pairs of string attributes.</p>
            <p>This datatype  is  not extendable</p>
         </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
         <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>
                  <p>Name of the attribute</p>
                  <p>This element is generated from an attribute.</p>
                  <p>This attribute  is  mandatory</p>
               </xsd:documentation>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="value" type="xsd:string" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>
                  <p>Value of the Attribute</p>
                  <p>This element is generated from an attribute.</p>
                  <p>This attribute  is  mandatory</p>
               </xsd:documentation>
            </xsd:annotation>
         </xsd:element>
      </xsd:sequence>
   </xsd:complexType>
<xsd:complexType name="NameValuePairCollection">
      <xsd:annotation>
         <xsd:documentation>
            <p>Base datatype for collections of name value pairs.
In comparisons two NameValuePairCollection's are deemed to be equivalent if the compared NameValueCollections contain the same number of name value pairs and that the names and values of the contained pairs match.
The order of definition of each NameValuePair is not significant.</p>
            <p>This datatype  is  not extendable</p>
         </xsd:documentation>
      </xsd:annotation>
      <xsd:sequence>
         <xsd:element name="nameValuePairs" type="tns:ArrayOfNameValuePair" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>
                  <p>Contains a collection of NameValuePairs. The order of definition of each NameValuePair is not significant. In all cases, equals comparison of the nameValuePairs collection requires that the compared datatypes contain the same number of name value pairs and that the names and values of the contained pairs match.</p>
                  <p>This element is generated from an attribute.</p>
                  <p>This attribute  is  mandatory</p>
               </xsd:documentation>
            </xsd:annotation>
         </xsd:element>
      </xsd:sequence>
   </xsd:complexType>

EntityIdentifiers should not be arbitrarily extended.