这个问题显然是无知,抱歉。我找不到我想要的例子。如果我在XML文件中有一个元素并想在其上放置一个必需的属性,那么XSD定义是什么?我见过的文档似乎暗示一个类型必须复杂才能包含其他元素或属性。但是当我尝试使用没有其他元素的complexType定义时,我无法在没有匿名子类型投诉的情况下添加“类型”。
我基本上想要定义一些东西
Texty Texted Text
我的搜索一直向我展示如何使用多个嵌套元素向complexTypes添加属性,这看起来非常简单。没有笑太多,你能帮忙吗?我知道这必须简单。 anAttribute是类型xs:string以及anElement的类型。
谢谢, BBB
答案 0 :(得分:2)
简单类型不能具有属性,而字符串是简单类型。因此,您必须定义一个复杂类型来承载属性声明。要定义基于简单类型字符串的复杂类型,需要从简单类型字符串派生新的复杂类型:
<xs:element name="anElement">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="anAttribute" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
使用complexType元素开始定义新的(匿名)类型。要指示新类型的内容模型仅包含字符数据而不包含元素,请使用simpleContent元素。最后,通过扩展简单的字符串类型来派生新类型。扩展包括使用标准属性声明添加anAttribute属性。