专有或案例的XML Schema?

时间:2013-05-31 20:44:29

标签: xml xsd xml-validation eclipse-wtp

前两种情况中的任何一种都是允许的,但后一种情况则不允许。是否可以为此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>

1 个答案:

答案 0 :(得分:0)

在XSD 1.0中,元素内容的规则不能取决于元素的属性。在XSD 1.1中,它们可以(它被称为条件类型赋值)。所以你问题的答案取决于你所谈论的XSD版本。