我正在使用XML,其中一些元素将包含带有附加标记的文本。这与W3Schools处的此示例类似。但是,我需要标记标记能够以任何顺序出现,并且可能不止一次。
修改他们的示例以进行说明:
<letter>
Dear Mr.<name>John Smith</name>.
Your order <orderid>1032</orderid>
will be shipped on <shipdate>2001-07-13</shipdate>.
Thank you, <name>Bob Adams</name>
</letter>
由于第二个<name>
元素,W3Schools提供的所有选项(在链接示例后面的页面上)都不允许使用此XML。他们对“指标”的解释和我的测试是一致的。
<xs:sequence>
- 违反了元素顺序
<xs:choice>
- 使用了多种元素。
<xs:all>
- maxOccurs被限制为“1”。
这似乎应该是基本的,毕竟XHTML允许这样的事情。如何定义我的架构以允许这个?
答案 0 :(得分:0)
经过更多的搜索,我找到了[这个] [1]的答案,这个问题解决了。 @jelovirt upvoted!
基本上,结合sequence
和choice
指标。
<xs:complexType name="textItem" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="tag_1" type="xs:string" />
...
<xs:element name="tag_n" type="xs:string" />
</xs:choice>
</xs:complexType>