XSD:使用任何类型和任何名称定义元素

时间:2013-04-27 17:20:05

标签: xml xsd

我有以下XML结构:

<?xml version="1.0" encoding="utf-8"?>
<DataSets>
  <DataSet>
    <Parameter id="1"/>
    <Parameter Description="My Description"/>
    <Parameter value="3.14"/>
  </DataSet>
  <DataSet>
    <Parameter id="2"/>
    <Parameter timeout="123"/>
  </DataSet>
</DataSets>

对于验证,我想创建一个XSD架构。最内部元素Parameter可以通过任何类型使用任何名称。必须至少一个这样的元素。

如何为这个内部元素定义XSD方案?

1 个答案:

答案 0 :(得分:1)

您可以使用xs:any指定任何名称和类型。您的XML针对以下XSD进行验证:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

    <xs:element name="DataSets" type="dataSets"/>

    <xs:complexType name="dataSets">
        <xs:sequence>
            <xs:element name="DataSet" type="dataSet" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="dataSet">
        <xs:sequence>
            <xs:any minOccurs="1" maxOccurs="unbounded" namespace="##any" processContents="lax" />
        </xs:sequence>
    </xs:complexType>

</xs:schema>