0

是否有 .NET 调用来验证一个 XML 模式是否与另一个模式向后兼容?

4

1 回答 1

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>
于 2013-01-18T13:42:37.040 回答