验证两个XML模式的兼容性
本文关键字:XML 模式 兼容性 两个 验证 | 更新日期: 2023-09-27 17:54:15
是否有.NET调用来验证一个XML模式与另一个XML模式向后兼容?
No。您必须使用XmlSchema
类来解析这两个模式,然后编写代码进行比较。
XML比较/差异并不能解决问题,因为两个XSD甚至可以是相同的,并且具有非常不同的XML表示—例如:
<xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/XMLSchema.xsd"
xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="test">
<xs:complexType>
<xs:sequence>
<xs:element name="str" type="xs:string"/>
</xs:sequence>
<xs:attribute name="num" type="xs:int"/>
</xs:complexType>
</xs:element>
</xs:schema>
和
<xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/XMLSchema.xsd"
xmlns:mstns="http://tempuri.org/XMLSchema.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="test" type="test">
</xs:element>
<xs:complexType name="test">
<xs:sequence>
<xs:element name="str" type="xs:string"/>
</xs:sequence>
<xs:attribute name="num" type="xs:int"/>
</xs:complexType>
</xs:schema>