问题
I want to declare an attribute of an element already defined. I would like that the element person
could have 2 attributes (name
, id
) I have this:
<xs:element name="person" type="perso" />
<xs:complexType name="perso">
<!-- I tried to declare the attribute here.Not working-->
<xs:sequence>
<!-- I tried to declare the attribute here.Not working-->
<xs:element name="description" type="xs:string" />
</xs:sequence>
</xs:complexType>
I am looking to declare a global, not local, complex type. I am not interested in mixed content.
The error message I'm getting:
element attribute: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}sequence': The content is not valid. Expected is (annotation?, (element | group | choice | sequence | any)*).
回答1:
Attribute declarations go after xs:sequence
:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="person" type="perso" />
<xs:complexType name="perso">
<xs:sequence>
<xs:element name="description" type="xs:string" />
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="id" type="xs:string"/>
</xs:complexType>
</xs:schema>
来源:https://stackoverflow.com/questions/40452169/where-does-xsdattribute-declaration-go-in-global-xsdcomplextype