[英]XSD; How to mix up complex and simple content?
我有多個XML文件,它們可以在最低級別包含HTML b
或i
Tag和或文本,如以下示例所示。
<root>
<text> Hallo Welt, wie geht es so? </text>
<text> <i>Hallo Welt, wie geht es so?</i> </text>
<text> Hallo <i>Welt, wie geht es so?</i> </text>
<text> <b>Hallo Welt, wie geht es so?</b> </text>
<text> Hallo <b>Welt, wie geht es so?</b> </text>
<text> <b>Hallo Welt</b>, <i>wie geht es so?</i> </text>
<text> <b>Hallo Welt</b>, <i>wie geht es so</i>? </text>
<text> <i>Hallo Welt</i>, <b>wie geht es so?</b> </text>
<text> <i>Hallo Welt</i>, <b>wie geht es so</b>? </text>
<text> <i>Hallo Welt, <b>wie geht es so</b>?</i> </text>
<text> <b>Hallo Welt, <i>wie geht es so</i>?</b> </text>
<text> Hallo <i>Welt, <b>wie geht es so</b>?</i> </text>
<text> Hallo <b>Welt, <i>wie geht es so</i>?</b> </text>
<text> <b>Hallo <i>Welt</i></b>, <i>wie <b>geht </b></i>es so? </text>
</root>
您可以將i
與b
混合使用,反之,您可以僅在b
或i
標簽之一中添加文字或其他文字。
我嘗試了以下方法:
<xs:complexType name="articleType">
<xs:sequence>
<xs:element name="author" type="textType" />
<xs:element name="title" type="textType" />
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required" />
</xs:complexType>
<!-- TEXT -->
<xs:complexType name="textType">
<xs:sequence>
<xs:element name="i" type="iType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="b" type="bType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<!-- I -->
<xs:complexType name="iType">
<xs:sequence>
<xs:element name="b" type="bType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<!-- B -->
<xs:complexType name="bType">
<xs:sequence>
<xs:element name="i" type="iType" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
遺憾的是,此驗證站點http://www.utilities-online.info/xsdvalidation/
告訴我以下錯誤:
錯誤-第7行,第50行:org.xml.sax.SAXParseException; lineNumber:7; columnNumber:50; cvc-complex-type.2.3:元素“作者”不能有字符[children],因為類型的內容類型是僅元素的。
親切的問候
馬里奧
XML Schema通過聲明帶有mixed="true"
的complexType
為混合內容提供了有限的支持,但是您不能進一步將文本節點限制在具有類型的混合內容中。 您只能將簡單類型應用於簡單內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.