2

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)*).

kjhughes
  • 106,133
  • 27
  • 181
  • 240
rockability
  • 63
  • 1
  • 4

1 Answers1

0

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>
kjhughes
  • 106,133
  • 27
  • 181
  • 240