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".