1
我试图写一个XML类似这样XML模式complexType
<?xml version="1.0" encoding="ISO-8859-1"?>
<store>
<book>title1</book>
<poster>some text</poster>
<poster>some text</poster>
<book>title1</book>
<poster>some text</poster>
</store>
一个模式,我想知道是否有在架构一个复杂类型,允许“书”和“海报”标签显示0次的最小数量和无限的最大次数。我需要他们能够以一种随便的顺序出现,例如:书,海报,书海报,海报。
不过,我觉得我可以简单地不把一个序列,并写入架构这样
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="store" type="TStore"/>
<xs:complexType name="TStore">
<xs:element name="book" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="poster" type="xs:string" maxOccurs="unbounded"/>
</xs:complexType>
</xs:schema>
但是这恰恰是不是有效的模式。如果书籍和海报标签以偶然顺序出现,但只有一次,则“xs:all”会很好。我该如何解决它? 编辑:一个xs:maxOccurs =“unbounded”的选择很好地诀窍。
我也不明白为什么这样一个简单的重复应该需要一个序列。 我咨询了一些教程,但我找不到这个简单案例的参考。
<?xml version="1.0" encoding="ISO-8859-1"?>
<tags>
<tag>text1</tag>
<tag>text2</tag>
<tag>text3</tag>
</tags>
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="tags" type="complexType">
<xs:sequence>
<xs:element name="tag" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:element>
</xs:schema>
如果您一次只问一个问题,这将有所帮助。你似乎自己回答了第一个问题。在第二种情况下,你不清楚你的问题是什么。但是,xs:sequence不能是xs:element的子元素 - 之间需要有一个xs:complexType。 –