簡體   English   中英

XSD; 如何混合復雜和簡單的內容?

[英]XSD; How to mix up complex and simple content?

我有多個XML文件,它們可以在最低級別包含HTML bi 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>

您可以將ib混合使用,反之,您可以僅在bi標簽之一中添加文字或其他文字。

我嘗試了以下方法:

<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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM