XML Schema complexType-elementti

Määrittely ja käyttö

complexType-element määrittelee monimutkaisen tyyppin. Monimutkaisen tyyppin elementti on XML-elementti, joka sisältää muita elementtejä ja/tai ominaisuuksia.

元素信息

elementtieto ilmentymät
arkkitehtuurissa rajoittamaton; elementissä kerran. vanhempi elementti
element、redefine、schema sisältö

annotation、simpleContent、complexContent、group、all、choice、sequence、attribute、attributeGroup、anyAttribute

syntaksi
<complexType 
id=ID 
name=NCName 
abstract=true|false
mixed=true|false
block=(#all|list of (extension|restriction))
muita ominaisuuksia
final=(#all|list of (extension|restriction))
> 
( annotation?, (simpleContent|complexContent|((group|all|
</complexType>

(? symboli määritellään complexType-elementissä, elementti voi esiintyä nolla tai yhden kerran, * symboli määrittää elementin, joka voi esiintyä nolla tai useita kertoja).

ominaisuudet

id

valinnainen. Määrittää elementin ainutlaatuisen ID:n.

name

valinnainen. Määrittää elementin nimen.

abstract

valinnainen. Määrittää, voidaanko monimutkaisessa tyypissä käyttää sitä. Jos arvo on true, elementti ei voi käyttää suoraan kyseistä monimutkaista tyyppiä, vaan sen on käytettävä haaraa, joka on johdettu kyseisestä monimutkaisesta tyyppiä. Oletusarvo on false.

mixed

valinnainen. Määrittää, sallitaanko merkkidataa ilmestyä monimutkaisen tyypin alielementtien välillä. Oletusarvo on false.

  • Jos simpleContent-elementti on alielementti, mixed-ominaisuutta ei sallita.
  • Jos complexContent-elementti on alielementti, mixed-ominaisuus voidaan kirjoittaa yli complexContent-elementin mixed-ominaisuuksilla.

block

valinnainen. Estää, että tietyn haaran monimutkainen tyyppi käytetään korvaamaan kyseinen monimutkainen tyyppi. Arvo voi sisältää #all tai listan, joka on laajennuksen tai rajoituksen alajoukko:

  • laajennus - estää, että laajennetut monimutkaiset tyypit käytetään korvaamaan kyseinen monimutkainen tyyppi.
  • rajoitus - estää, että rinnakkaiset monimutkaiset tyypit käytetään korvaamaan kyseinen monimutkainen tyyppi.
  • #all - Estää kaikki johdannaistyyppien (complexType) käyttämisen korvaamaan kyseisen monimutkaisen tyyppin.

final

Valinnainen. Estää määritellyn complexType-elementin johdannaistyyppien (extension tai restriction) käyttämisen. Arvo voi olla #all tai lista, joka sisältää extension tai restriction -tyyppejä.

  • extension - Estää johdannaistyyppien (laajennukset) käyttämisen.
  • restriction - Estää johdannaistyyppien (rajoitukset) käyttämisen.
  • #all - Estää kaikki johdannaistyyppien (laajennukset ja rajoitukset) käyttämisen.

muita ominaisuuksia

Valinnainen. Määrittelee minkä tahansa muun non-schema-nimellisyyden omaavien ominaisuuksien.

Esimerkki

Esimerkki 1

Esimerkissä on monimutkainen tyyppi nimeltä "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>

Esimerkki 2

Esimerkissä on monimutkainen tyyppi "fullpersoninfo", joka laajentaa peritystä tyyppiä kolmella lisäelementillä (address, city ja country) ja on peräisin toisesta monimutkaisesta tyyppien "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>

Yllä olevassa esimerkissä yllä oleva "employee"-elementti täytyy sisältää järjestyksessä seuraavat elementit: "firstname", "lastname", "address", "city" ja "country".