前两种情况中的任何一种都是允许的,但后一种情况则不允许。是否可以为此xml创建xsd,还是无效?
<book id="something" />
<!-- or -->
<book>something</book>
<!--not -->
<
<book id="something">
something else
</book>
编辑:这是我试图使用的架构 - 我仍然是xml的新手,所以我不能保证它接近正确......
<xs:simpleType name="book">
<xs:restriction base="xs:string">
</xs:restriction>
</xs:simpleType>
<xs:complexType name="book2">
<xs:simpleContent>
<xs:extension base="or:book">
<xs:attribute name="id" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="book3">
<xs:simpleContent>
<xs:restriction base="or:book2">
<xs:maxLength value="0" />
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
<xs:element name="root">
<xs:complexType>
<xs:choice>
<xs:element name="book" maxOccurs="unbounded" type="or:book" />
<xs:element name="book" maxOccurs="unbounded" type="or:book3" />
</xs:choice>
</xs:complexType>
</xs:element>
答案 0 :(得分:0)
在XSD 1.0中,元素内容的规则不能取决于元素的属性。在XSD 1.1中,它们可以(它被称为条件类型赋值)。所以你问题的答案取决于你所谈论的XSD版本。