我很难声明一个包含文本字符串的元素,并且有两个文本属性:
<?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"
中的<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的初学者。
答案 0 :(得分: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>