<xs:element name="MetadataSet">
<xs:annotation>
<xs:appinfo>The metadata provided by this node is contained in the metadata nodes of the value field.
<xs:element name="value" type="MFNode" fixed="inputOutputField" default="X3DMetadataObject"/>
<xs:element name="metadata" type="SFNode" fixed="inputOutputField" default="X3DMetadataObject"/>
<xs:attribute name="additionalInterface" type="xs:string" default="X3DNode"/>
<xs:attribute name="additionalInterface" type="xs:string" default="X3DMetadataObject"/>
<xs:attribute name="componentName" type="xs:NMTOKEN" fixed="Core"/>
<xs:attribute name="componentLevel" type="xs:positiveInteger" fixed="1"/>
</xs:appinfo>
<xs:documentation source="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/core.html#MetadataSet"/>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="IS" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="ChildContentModelCore" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="ProtoInstance" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:sequence>
<xs:attributeGroup ref="DEF_USE"/>
<xs:attributeGroup ref="globalAttributes"/>
<xs:attribute name="name" type="SFString" use="required"/>
<xs:attribute name="reference" type="SFString"/>
<xs:attribute name="containerField" type="xs:NMTOKEN" default="metadata">
<xs:annotation>
<xs:appinfo>Default containerField='metadata' when providing information about the parent element itself, otherwise apply containerField='value' when this element contains payload metadata inside a parent/ancestor MetadataSet element.</xs:appinfo>
</xs:annotation>
</xs:attribute>
<!-- TODO: both X3DMetadataObject and MetadataSet need to allow optional child Metadata nodes, so child model content has to be combined to avoid collisions. -->
<!-- TODO: see X3DMetadataObject definition for potential change to X3DMetadataNode. -->
</xs:complexType>
</xs:element> |