这是XML:
<lists>
<list refname="list_refname"/>
<list refname="list_refname_template_1" use_for="template_1"/>
<list refname="list_refname_template_2" use_for="template_2"/>
<list refname="list_refname_template_3" use_for="template_3"/>
</lists>
和XSD:
<xsd:element name="lists">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="list" minOccurs="1" maxOccurs="1">
<xsd:complexType>
<xsd:attribute name="refname" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="list" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="refname" type="xsd:string" use="required"/>
<xsd:attribute name="use_for" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
这个想法是:
refname
的refname
和use_for might
属性的元素
时间或没有在XSD内可以吗?
如果是,如何重新编写无效的XSD?
答案 0 :(得分:0)
XSD具有Element Declarations Consistent约束,要求内容模型中的相同命名元素具有一致的内容模型。您的urls = [
'a.com/1',
'a.com/2',
'a.com/3',
'b.com/1',
'b.com/2',
'b.com/3',
]
元素在list
内容模型中包含两个不同的内容模型,从而违反了此约束。
分辨率可采用以下形式之一:
lists
元素。list
内容模型之间的兄弟关系。list
元素的最一般声明。如果使用XSD 1.0,则放弃对属性的附加约束;如果使用XSD 1.1,请使用list
指定属性的附加约束。