是否有.NET调用来验证一个XML架构是否向后兼容另一个?
答案 0 :(得分:2)
没有。您必须使用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>