2.2.1 CONTEXT_XML

CONTEXT_XML is an XML element [XML1.0] that represents a context identifier, as specified by the following XML schema [W3C-XSD].

 <xs:schema 
     targetNamespace="http://schemas.microsoft.com/ws/2006/05/context"
     xmlns:xs="http://www.w3.org/2001/XMLSchema"
 > 
   <xs:element name="Context">
     <xs:complexType>
       <xs:sequence minOccurs="0" maxOccurs="unbounded">
         <xs:element name="Property">
           <xs:complexType>
             <xs:simpleContent>
               <xs:extension base="xs:string">
                 <xs:attribute name="name">
                   <xs:simpleType>
                     <xs:restriction base="xs:string">
                       <xs:pattern value="[A-Za-z\.\-_]+"/>
                     </xs:restriction>
                   </xs:simpleType>
                 </xs:attribute>
                 <xs:anyAttribute namespace="##any"/>
               </xs:extension>
             </xs:simpleContent>            
           </xs:complexType>
         </xs:element>
       </xs:sequence>
       <xs:anyAttribute namespace="##any"/>
     </xs:complexType>
   </xs:element>
 </xs:schema>

For a context identifier and a CONTEXT_XML element to be isomorphic, all the following statements MUST be true:

  • The number of Property XML elements in the CONTEXT_XML element is equal to the number of (property name, property value) pairs in the context identifier.

  • No two Property XML elements, when inside the CONTEXT_XML element, have the same value as the name XML attribute.

  • For each Property XML element that is inside the CONTEXT_XML element, there is exactly one (property name, property value) pair in the context identifier so that:

    • The Property name is equal to the value of the name XML attribute of the Property XML element, and

    • The Property value is equal to the value of the content of the Property XML element.