XML Schema complexType element

definition and usage

complexType element defines a complex type. A complex type element is an XML element that contains other elements and/or attributes.

element information

occurrence unrestricted within the schema; once within the element.
parent element element, redefine, schema
content annotation, simpleContent, complexContent, group, all, choice, sequence, attribute, attributeGroup, anyAttribute

Grammatica

<complexType
id=ID 
name=NCName 
abstract=true|false 
mixed=true|false
block=(#all|lijst van (extensie|beperking))
final=(#all|lijst van (extensie|beperking))
alle attributen
>
(annotatie?,(eenvoudige inhoud|complex inhoud|((groep|alles| 
choice|sequence)?,((eigenschap|eigenschapsGroep)*,iedere eigenschap?))))
</complexType>

(? Symbool wordt gedeclareerd in het complexType-element, het element kan nul of één keer voorkomen, * symbool declareert dat het element nul of meerdere keren kan voorkomen.)

Eigenschappen

id

Optioneel. Bepaalt de unieke ID van dit element.

name

Optioneel. Bepaalt de naam van het element.

abstract

Optioneel. Bepaalt of complex types mogen worden gebruikt in het instantiedocument. Als de waarde true is, kan het element niet direct het complex type gebruiken, maar moet een complex type dat van dit complex type is afgeleid worden gebruikt. De standaardwaarde is false.

mixed

Optioneel. Bepaalt of karaktersymbolen mogen verschijnen tussen de subelementen van dit complex type. De standaardwaarde is false.

  • Als het simpleContent-element een subelement is, is de mixed-eigenschap niet toegestaan.
  • Als het complexContent-element een subelement is, kan de mixed-eigenschap worden overschreven door de mixed-eigenschap van het complexContent-element.

block

Optioneel. Voorkomt dat complex types met de gespecificeerde afgeleide types worden gebruikt om het complex type te vervangen. De waarde kan #all bevatten of een lijst, die een subset is van extension of restriction:

  • extension - Voorkomt dat afgeleide complex types via extensie worden gebruikt om het complex type te vervangen.
  • restriction - Voorkomt dat afgeleide complex types via restrictie worden gebruikt om het complex type te vervangen.
  • #all - Voorkomt dat alle afgeleide complex types worden gebruikt om het complex type te vervangen.

final

Optioneel. Voorkomt dat de gespecificeerde type van het complexType-element wordt afgeleid. De waarde kan #all bevatten of een lijst, die een subset is van extension of restriction.

  • extension - Voorkom afgeleiden door uitbreiding.
  • restriction - Voorkom afgeleiden door beperking.
  • #all - Voorkom alle afgeleiden (uitbreiding en beperking).

alle attributen

Optioneel. Bepaal elke andere eigenschap met een non-schematische naamruimte.

Voorbeeld

Voorbeeld 1

Het volgende voorbeeld heeft een complex type element genaamd "note":

<xs:element name="note">
    <xs:complexType>
      <xs:sequence>
	<xs:element name="to" type="xs:string"/>
	<xs:element name="from" type="xs:string"/>
	<xs:element name="heading" type="xs:string"/>
	<xs:element name="body" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
</xs:element>

Voorbeeld 2

In het volgende voorbeeld is er een complex type "fullpersoninfo", dat door gebruik te maken van drie aanvullende elementen (address, city en country) het geïnheriteerde type uitbreidt, afgeleid van een andere complex type "personinfo":

<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
  <xs:complexContent>
    <xs:extension base="personinfo">
      <xs:sequence>
        <xs:element name="address" type="xs:string"/>
        <xs:element name="city" type="xs:string"/>
        <xs:element name="country" type="xs:string"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

In het bovenstaande voorbeeld moet het "employee" element in volgorde de volgende elementen bevatten: "firstname", "lastname", "address", "city" en "country".