我对XSD有疑问?
在dtd中,我们可以使用any来限制元素类型和标记,如
<!ELEMENT question ANY>
<question>
<q1>question 1</q1>
</question>
有没有办法在XSD中执行此操作?
答案 0 :(得分: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>
。