验证两个XML模式的兼容性

本文关键字:XML 模式 兼容性 两个 验证 | 更新日期: 2023-09-27 17:54:15

是否有.NET调用来验证一个XML模式与另一个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>