我正在尝试创建一个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>
我发现很难以任何顺序允许任何数量的元素。
答案 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"
,它允许文本出现在元素之间。