XSD与动态元素?

时间:2015-09-02 17:04:10

标签: xml xsd xslt-1.0

我有一个xml,其中一个元素(dynamic1,dynamic2,dynamic3 ...... dynamicN)不断动态变化。如何生成XSD来验证这种XML?

我尝试使用xs:any,但这不起作用。

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <dynamic1>
        <abc>B</abc>
        <xyz>10</xyz>
    </dynamic1>
    <dynamic2>
        <abc>B</abc>
        <xyz>10</xyz>
    </dynamic2>
        .
        .
        .
    <dynamic100>
        <abc>B</abc>
        <xyz>10</xyz>
    </dynamic100>
</root> 

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="root">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="dynamic1">
              <xs:complexType>
                <xs:sequence>
                  <xs:element type="xs:string" name="abc"/>
                  <xs:element type="xs:byte" name="xyz"/>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>

1 个答案:

答案 0 :(得分:1)

你不能(除非在XSD 1.1中极端使用断言)。 XSD不是为验证任意XML而设计的,它旨在验证XSD设计人员认为您应该设计的XML类型。