我希望能够对我的XML文件进行版本控制。我想要一个较旧的xsd文件能够验证接收到的XML文件的较新版本。带有跳过行为属性的版本控制的XSD
为此,我将使用版本属性来保护未知的xml标签。
问题:如何根据版本属性让xsd跳过XML的一部分?在下面的例子中我想的XSD能够验证任何标签与版本1和2,但不是3
场景:
<MYXML>
<SOME_XML version="1">
<SOME_VERSION_1_DATA>this_is_data_only_for_version_1</SOME_VERSION_1_DATA>
</SOME_XML>
<SOME_XML version="2">
<SOME_VERSION_2_DATA>this_is_data_only_for_version_2</SOME_VERSION_2_DATA>
</SOME_XML>
<SOME_XML version="3">
<SOME_VERSION_3_DATA>this_is_data_only_for_version_3</SOME_VERSION_3_DATA>
</SOME_XML>
</MYXML>
<xs:complexType name="SOME_XML">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="SOME_VERSION_1_DATA" type="xs:string"/>
<xs:element minOccurs="0" maxOccurs="1" name="SOME_VERSION_2_DATA" type="xs:string"/>
</xs:sequence>
<xs:attribute ref="version"/>
</xs:complexType>
<xs:attribute name="version">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
</xs:restriction>
<xs:anyAttribute processContents="skip"/> <-- SKIP the attribute if NOT 1 ro 2?
</xs:simpleType>
</xs:attribute>