我有一个xsd:
<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
我想添加一个属性&#34; Attribute1&#34;到&#34;名字&#34;元素:
<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string">
<xs:attribute name="Attribute1" type="xs:string/>
</xs:element>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
在执行此操作时,我收到了错误:&#39; http://www.w3.org/2001/XMLSchema:attribute&#39;在此上下文中不支持元素。&#39;
将属性分配给元素&#34; firstname&#34;?
的正确方法是什么答案 0 :(得分:0)
缺少一些中间嵌套元素。元素firstname
必须使用匿名复杂类型定义,简单内容是字符串(更准确地说,类型是通过xs:string
的扩展派生的),并且添加了属性。
<xs:element name="employee">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Attribute1" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
在原始定义中,如果元素firstname
的类型为xs:string
,则不允许任何属性。