2.2.3.4 Metadata

The element <mex:Metadata> is defined in section 4 of [WS-MetaDataExchange].

As a profile of [WS-MetaDataExchange], the first child of element <mex:Metadata> MUST be element <mex:MetadataSection>. This element <mex:MetadataSection> MUST have an XML attribute @xmlns with its value set to the empty string. The element <mex:MetadataSection> MUST have an XML attribute @mex:Identifier with a value set to the literal string ":". The element <mex:MetadataSection> MUST have an XML attribute @mex:Dialect with its value set to the literal string "http://www.w3.org/2001/XMLSchema". See section 4.1.2 for an example of this element.

As a profile of [WS-MetaDataExchange], the first child of the element <mex:MetadataSection> MUST be element <xs:schema>. The element <xs:schema> is defined in [XMLSCHEMA1/2].

As a profile of [WS-MetaDataExchange], [XMLSCHEMA1/2] annotations are present in <xs:element> elements. Annotating elements is defined in section 3.13 of [XMLSCHEMA1/2]. The manner in which a protocol client uses annotations is not defined.

 //xs:element/xs:annotation

The element <xs:annotation>, defined in section 3.13 of [XMLSCHEMA1/2], MUST be present as a child of all <xs:element> elements.

 //xs:element/xs:annotation/xs:appinfo

The element <xs:appinfo>, defined in section 3.13 of [XMLSCHEMA1/2], MUST be present as a child of all <xs:annotation> elements.

 //xs:element/xs:annotation/xs:appinfo/rm:DisplayName

The element <rm:DisplayName>, defined in [MS-UPSCDS] section 2.1.3, MUST be present as a child of all <xs:appinfo> elements used to annotate <xs:element> elements.

 //xs:element/xs:annotation/xs:appinfo/rm:Description

The element <rm:Description>, defined in [MS-UPSCDS] section 2.1.3, MUST be present as a child of all <xs:appinfo> elements used to annotate <xs:element> elements.

 //xs:element/xs:annotation/xs:appinfo/rm:Key

The element <rm:Key>, defined in section 2.2.3.1 of this specification, MUST be present as a child of all <xs:appinfo> elements used to annotate <xs:element> elements.

 //xs:simpleType[/xs:restriction/@xs:base="xs:string" /xs:pattern/@xs:value=".{0,448}"]/xs:annotation

The element <xs:annotation>, defined in section 3.13 of [XMLSCHEMA1/2], MUST be present as a child of all <xs:simpleType> elements that derive from <xs:string> with the pattern ".{0,448}".

 //xs:simpleType[/xs:restriction/@xs:base="xs:string" /xs:pattern/@xs:value=".{0,448}"]/xs:annotation/xs:appinfo

The element <xs:appinfo>, defined in section 3.13 of [XMLSCHEMA1/2], MUST be present as a child of all <xs:annotation> elements that are children of <xs:simpleType> elements that derive from xs:string with pattern ".{0,448}".

 //xs:simpleType[/xs:restriction/@xs:base="xs:string"/xs:pattern/@xs:value=".{0,448}"]/xs:annotation/xs:appinfo/rm:DataType

The element <rm:DataType>, defined in section 2.2.3.1 of this specification, MUST be present as a child of all <xs:appinfo> elements that are used to annotate <xs:simpleType> elements that are derived from xs:string with the pattern ".{0,448}".