XML Schema element 元素

定义和用法

element 元素定义一个元素。

元素信息

出现次数 在架构中定义的元素的数目。
父元素 schema、choice、all、sequence
内容 simpleType、complexType、key、keyref、unique

语法

<element
id=ID 
name=NCName
ref=QName
type=QName
substitutionGroup=QName
default=string
fixed=string
form=qualified|unqualified
maxOccurs=nonNegativeInteger|unbounded
minOccurs=nonNegativeInteger
nillable=true|false
abstract=true|false 
block=(#all|list of (extension|restriction))
final=(#all|list of (extension|restriction))
Kaikki attribuutit
>
annotation?,((simpleType|complexType)?,(unique|key|keyref)*))
</element>

(? Merkkijono määrittää elementissä, joka voi esiintyä nollan tai yhden kerran, * Merkkijono määrittää elementin, joka voi esiintyä nollan tai useita kertoja.)

Atribuutti

id

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

name

Valinnainen. Määrittää elementin nimen. Jos isäelementti on schema-elementti, tämä ominaisuus on välttämätön.

ref

Valinnainen. Viittaus toiseen elementtiin. ref-ominaisuus voi sisältää nimenkerroksen. Jos isäelementti on schema-elementti, tätä ominaisuutta ei käytetä.

type

Valinnainen. Määrittää sisäänrakennetun datatyyppin nimen tai määrittää simpleType- tai complexType-elementin nimen.

substitutionGroup

Valinnainen. Määrittää elementin, joka voi korvata kyseisen elementin. Tämä elementti täytyy olla samaa tyyppiä tai johdettu tietystä elementtipyydöstä.

Jos isäelementti ei ole schema-elementti, tätä ominaisuutta ei voida käyttää.

default

Valinnainen. Määrittää elementille oletusarvon ( käytetään vain, kun elementin sisältö on yksinkertainen tyyppi tai textOnly ).

fixed

Valinnainen. Määrittää elementille vakion arvon ( käytetään vain, kun elementin sisältö on yksinkertainen tyyppi tai textOnly ).

form

Valinnainen. Elementin muoto. Oletusarvo on sisältävän attribuutin schema-elementin elementFormDefault-ominaisuuden arvo. Arvon täytyy olla seuraavista merkkijonoista yksi: "qualified" tai "unqualified".

Jos emoottori on schema-elementti, tätä ominaisuutta ei voi käyttää.

  • Jos arvo on "unqualified", elementtiä ei tarvitse määrittää nimenkerroksen avulla.
  • Jos arvo on "qualified", elementtiä täytyy määrittää nimenkerroksen avulla.

maxOccurs

Valinnainen. Määrittää elementin elementtiä isäelementissä voimassa olevan enimmäismäärän. Arvo voi olla yhtä suuri tai suurempi kuin nolla oleva kokonaisluku. Jos et halua asettaa enimmäismäärälle mitään rajoitusta, käytä merkkijonoa "unbounded". Oletusarvo on 1.

Jos emoottori on schema-elementti, tätä ominaisuutta ei voi käyttää.

minOccurs

Valinnainen. Määrittää elementin vähimmäisilman määrän emoottorissa. Arvo voi olla yhtä suuri tai suurempi kuin nolla. Oletusarvo on 1.

Jos emoottori on schema-elementti, tätä ominaisuutta ei voi käyttää.

nillable

Valinnainen. Indikoi voidaanko elementille asettaa selkeä nolla-arvo. Tämä koskee elementin sisältöä eikä elementin ominaisuutta. Oletusarvo on false.

Jos nillable on true, elementin instanssia voidaan asettaa nil-ominaisuudeksi true. nil-ominaisuus määritellään instanssin XML-rakennetyypin osana.

Esimerkiksi seuraavassa kohdassa määritellään yksittäinen elementti ja asetetaan nillable true.

<xs:element name="myDate" type="xs:date" nillable="true"/>

Seuraavassa kohdassa käytetään tätä elementtiä ja asetetaan selkeä nolla-arvo (nil-ominaisuus asetettu true).

<myDate xsi:nil="true"></myDate>

abstract

Valinnainen. Indikoi, voidaanko elementtiä käyttää instanssidokumentissa. Jos arvo on true, elementti ei voi olla instanssidokumentissa. Päinvastoin, substitutionGroup-ominaisuus sisältää muiden elementtien, joiden QNamen (Qualified Name) on tämän elementin määritetty, ja ne on oltava tämän elementin sijalla. Useita elementtejä voidaan viitata substitutionGroup-ominaisuudessaan. Oletusarvo on false.

block

Valinnainen. Johdettu tyyppi. block-ominaisuus estää määritellyn johdettujen tyyppien elementtien käyttämisen korvaamiseen. Arvo voi sisältää #all tai listan, joka on extension, restriction tai substitutionin alijoukko:

  • extension - Estää johdettujen elementtien korvaamisen laajennuksen sijaan.
  • restriction - Estää johdettujen elementtien korvaamisen rajoituksen sijaan.
  • substitution - Estää korvaamisen johdettujen elementtien sijaan.
  • #all - Estää kaikki johdettujen elementtien korvaamisen tämän elementin sijaan.

final

Valinnainen. Aseta elementti-elementin lopullisen ominaisuuden oletusarvo. Jos emoottori ei ole schema-elementti, tätä ominaisuutta ei voi käyttää. Arvo voi sisältää #all tai listan, joka on extension tai restrictionin alijoukko:

  • laajennus - Estää johdettujen elementtien käytön korvaamaan tätä elementtiä laajennuksella
  • rajoitus - Estää johdettujen elementtien käytön korvaamaan tätä elementtiä rajoituksella
  • #all - Estää kaikkien johdettujen elementtien käytön korvaamaan tätä elementtiä

Kaikki attribuutit

Valinnainen. Määrittelee minkä tahansa muun schema-vapauden määrittämättömät attribuutit.

Esimerkki

Esimerkki 1

Seuraava esimerkki on schema, jossa on neljä yksinkertaista elementtiä: "fname", "lname", "age" ja "dateborn", tyyppien ollessa string, nonNegativeInteger ja date:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="fname" type="xs:string"/>
<xs:element name="lname" type="xs:string"/>
<xs:element name="age" type="xs:nonNegativeInteger"/>
<xs:element name="dateborn" type="xs:date"/>
</xs:schema>

Esimerkki 2

Seuraava esimerkki on schema, jossa on monimutkainen "note"-elementti. "note"-elementti sisältää neljä yksinkertaista elementtiä: "to", "from", "heading" ja "body":

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<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>
</xs:schema>

Esimerkki 3

Tämä esimerkki on samanlainen kuin esimerkki 2, mutta tässä esimerkissä valitsimme käyttää ref-ominaisuutta elementin nimen viittaamiseen:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="to"/>
      <xs:element ref="from"/>
      <xs:element ref="heading"/>
      <xs:element ref="body"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<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:schema>