如何为以下XML定义架构:
<root>
<elements>
<element1/>
<element2/>
<element1/>
</elements>
<elements>
<element2/>
<element1/>
</elements>
<elements>
<element1/>
<element2/>
</elements>
</root>其中,元素、element1、和element2的数量是无限的,它们可以以不同的顺序相互混合。有可能吗?还是应该将XML重新定义为:
<root>
<elements>
<element type="1"/>
<element type="2"/>
<element type="1"/>
</elements>
<elements>
<element type="2"/>
<element type="1"/>
</elements>
<elements>
<element type="1"/>
<element type="2"/>
</elements>
</root>发布于 2011-07-08 19:31:26
第一个结构的模式
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="elements">
<xs:complexType>
<xs:sequence>
<xs:choice maxOccurs="unbounded">
<xs:element name="element1" />
<xs:element name="element2" />
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>第二种结构的模式定义
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="elements">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="element">
<xs:complexType>
<xs:attribute name="type" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>发布于 2011-07-08 19:32:03
根据Visual模式生成器,您可以这样做:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="elements">
<xs:complexType>
<xs:sequence>
<xs:choice maxOccurs="unbounded">
<xs:element name="element1" />
<xs:element name="element2" />
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>https://stackoverflow.com/questions/6629299
复制相似问题