如何<table>用XSD实现简单的标签匹配?
以下不起作用:
<xs:element name="table">
<xs:complexType>
<xs:sequence>
<xs:element name="tr" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="td"
minOccurs="0"
maxOccurs="unbounded"
type="MixedTemplateContentContainer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:anyAttribute/>
</xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)
如果我在 table 标签中使用任何属性,它会失败:
<table ccc="table" bgcolor="#ffffff">
<tr align="center"><td>
Run Code Online (Sandbox Code Playgroud)
说
属性 'ccc' 不允许出现在元素 'table' 中。
我用 Saxon 模式处理器运行了这个,并得到了错误消息
test.xml 第 1 行的验证错误:XSD99999:<xs:anyAttribute>匹配属性 @ccc 需要严格验证,但没有可用的属性声明
本质上,<xs:anyAttribute>有一个processContents属性,默认值是严格的,这意味着你可以使用任何你喜欢的属性,前提是模式中有一个匹配的属性声明。您可能想要 processContents="lax" 或 "skip"。值 lax 意味着如果模式包含一个匹配的属性声明,则该属性将根据匹配的属性声明进行验证,否则无论如何都被接受。值跳过意味着任何属性都被接受而无需验证。
| 归档时间: |
|
| 查看次数: |
2206 次 |
| 最近记录: |