2014-04-25 28 views
1

我有一個關於XSD的問題?如何在XSD中執行任何操作?

DTD中,我們可以使用任何不限制像

<!ELEMENT question ANY> 
<question> 
    <q1>question 1</q1> 
</question> 

元素類型和標籤有沒有辦法做到這一點的XSD?

回答

1

如果你想允許任何元素內部問題,你可以使用<xs:any>代表任何元素:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> 
    <xs:element name="question"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

屬性processContents="skip"用於通知解析器跳過子元素的驗證。如果您包含可能如果模式可用(例如XHTML標記)可用,則可能需要使用lax而不是skip。值strict要求最終在您的實例中使用的標籤在架構中聲明。

如果您還想允許文本出現外部因素,如:

<question> 
    <q1>question 1</q1> 
    some text 
</question> 

爲屬性然後加入mixed="true"<complexType>