0

我在声明一个包含文本字符串并具有两个文本属性的元素时遇到了困难:

<?xml version="1.0" encoding="UTF-8"?>
<!-- This schema is not valid -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:element name="Favorite" type="xs:string">
        <xs:complexType>
            <xs:attribute name="car"    type="xs:string"/>
            <xs:attribute name="fruit" type="xs:string"/>
        </xs:complexType>
    </xs:element>       
</xs:schema>

如果我删除属性,架构就会通过,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
        <xs:element name="Favorite" type="xs:string">
        </xs:element>
    </xs:schema>

或者,如果我省略了type="xs:string"in <xs:element name="Favorite" type="xs:string">

所需的架构应该验证以下 XML 文件:

<?xml version="1.0" encoding="UTF-8"?>
<Favorite car="Volvo" fruit="banana">These are a few of my favorite things</Favorite>

PS:如果这个问题相当琐碎,我很抱歉。我仍然是 XSD 的初学者。

4

1 回答 1

2

从w3schools找到答案:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="Favorite">
        <xs:complexType>

            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="car" type="xs:string"/>                 
                    <xs:attribute name="fruit" type="xs:string"/>   
                </xs:extension>
            </xs:simpleContent>

        </xs:complexType>
    </xs:element>
</xs:schema>
于 2012-04-10T15:04:14.500 回答