[英]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.