为混合元素中的无限数量的无序元素创建XML模式

时间:2010-09-26 17:31:02

标签: xsd

我正在尝试创建一个XML Schema,它允许元素中的文本和元素< content>具有无限数量的< a>,< b>和< c>任何顺序的元素。下面是一个XML示例。

<xml version="1.0" encoding="UTF-8"?>
<article xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="article.xsd">
    <content>Lorem <a>ipsum</a> dolor sit amet, consectetur adipiscing elit. Nulla rhoncus <b>laoreet neque</b> ac mollis. <a>Aliquam</a> erat <c>volutpat</c>. Nunc ante turpis, placerat eu mattis eu, egestas eu elit.
    </content>
</article>

我发现很难以任何顺序允许任何数量的元素。

1 个答案:

答案 0 :(得分:1)

您需要使用混合内容类型。有一个简单易懂的描述here

这样的事情:

<xs:element name="article">
  <xs:complexType mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="a" type="xs:string"/>
      <xs:element name="b" type="xs:string"/>
      <xs:element name="c" type="xs:string"/>
    </xs:choice >
  </xs:complexType>
</xs:element>

需要注意的部分是mixed="true",它允许文本出现在元素之间。