我正在尝试为xml编写一个基本上有两个节点的模式。
<FirstData>
<First name="name1" value="value1"/>
<Second name="name1" value="value1"/>
<Third name="name1" value="value1"/>
<Fourth name="name1" value="value1"/>
</FirstData>
<SecondData>
<Table name="sample" value="value1">
<First name="name1" value="value1"/>
<Table name="sample" value="value1">
<First name="name1" value="value1"/>
</Table>
</Table>
</SecondData>
这里FirstData只能有一个行子元素,每个子元素可以有任何名称,但属性名称和值是必需的,我还需要为属性指定数据类型。类似SecondData但它是递归的。我只需要在XSD 1.0中为它编写模式。我尝试了所有选项,但无法完成。因为元素不能用于限制任何帮助都将受到高度赞赏。请在我尝试的XSD下面找到。
<?xml version="1.0"?>
<!-- Generated using Flame-Ware Solutions XML-2-XSD v2.0 at http://www.flame-ware.com/Products/XML-2-XSD/ -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="NewDataSet">
<xs:element name="table">
<xs:complexType>
<xs:element ref="table" minOccurs="0" maxOccurs="unbounded"/>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="value" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="Note">
<xs:complexType>
<xs:sequence>
<xs:element name="FirstData" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:any id="generic" maxOccurs="unbounded" processContents="strict" >
</xs:any>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SecondData" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element ref="table" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>