XML Schema element element

Definition og brug

element-elementet definerer et element.

Elementinformation

Optrædenummer Antallet af elementer defineret i arkitekturen.
Overordnede element schema、choice、all、sequence
Indhold simpleType、complexType、key、keyref、unique

Syntaks

<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|liste af (extension|restriction))
final=(#all|liste af (extension|restriction))
Enhver attribut
>
annotation?,((simpleType|complexType)?,(unique|key|keyref)*))
</element>

(? Symbolet er deklareret i element-elementet, som kan optræde nul eller én gang, *-symbolet deklarerer elementet kan optræde nul eller flere gange.).

Egenskab

id

Valgfri. Angiver en unik ID for elementet.

name

Valgfri. Angiver navnet på elementet. Hvis den overordnede element er et schema-element, er denne egenskab obligatorisk.

ref

Valgfri. En reference til et andet element. ref-egenskaben kan inkludere et navnespacesuffiks. Hvis den overordnede element er et schema-element, bruges ikke denne egenskab.

type

Valgfri. Angiver navnet på en indbygget datatyp, eller navnet på et simpleType- eller complexType-element.

substitutionGroup

Valgfri. Angiver navnet på et element, der kan erstatte dette element. Dette element skal have samme type eller en type, der er afledt fra den specificerede type.

Kan ikke bruge denne egenskab, hvis den overordnede element ikke er et schema-element.

default

Valgfri. Angiver en standardværdi for elementet (kun brugt, når elementets indhold er en simpel type eller textOnly).

fixed

Valgfri. Angiver en fast værdi for elementet (kun brugt, når elementets indhold er en simpel type eller textOnly).

form

Valgfri. Elementets form. Standardværdi er værdien af elementFormDefault-attributten i skemaet, der indeholder dette attribut. Værdien skal være en af følgende strenge: "qualified" eller "unqualified".

Denne egenskab kan ikke bruges, hvis forældreelementet er schema-elementet.

  • Hvis værdien er "unqualified", skal elementet ikke navngives med et namespace-præfiks.
  • Hvis værdien er "qualified", skal elementet navngives med et namespace-præfiks.

maxOccurs

Valgfri. Regulerer den maksimale gang, elementet kan forekomme i forældreelementet. Værdien kan være et heltal større end eller lig med 0. Hvis der ikke er nogen begrænsning på den maksimale gang, kan værdien være "unbounded". Standardværdi er 1.

Denne egenskab kan ikke bruges, hvis forældreelementet er schema-elementet.

minOccurs

Valgfri. Regulerer den mindste gang, elementet kan forekomme i forældreelementet. Værdien kan være et heltal større end eller lig med 0. Standardværdi er 1.

Denne egenskab kan ikke bruges, hvis forældreelementet er schema-elementet.

nillable

Valgfri. Angiver, om en eksplicit nulværdi kan tildeling til elementet. Dette anvendes på elementets indhold og er ikke en egenskab af elementet. Standardværdi er false.

Hvis nillable er true, kan instansen af elementet have nil-attributten sat til true. nil-attribut defineres som en del af instansens XML-skema-nødvendige navnespace.

For eksempel definerer næste afsnit et enkelt element og sætter nillable til true.

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

Næste afsnit bruger dette element og har en eksplicit nulværdi (nil-attribut sat til true).

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

abstract

Valgfri. Angiver, om elementet kan bruges i instansdokumentet. Hvis værdien er true, kan elementet ikke forekomme i instansdokumentet. I stedet skal elementer, der indeholder det pågældende elements QName (navngivet kvalitet), fremtræde på det pågældende sted. Flere elementer kan referere til dette element i deres substitutionGroup-attribut. Standardværdi er false.

block

Valgfri. Nedarvede typer. block-attribut forhindrer, at elementer med den specificerede nedarvede type bruges til at erstatte det pågældende element. Værdien kan indeholde #all eller en liste, som er en delmængde af extension, restriction eller substitution:

  • extension - forbygde elementer bruges til at erstatte det pågældende element.
  • restriction - Forhindrer afledte elementer gennem begrænsning i at erstatte dette element.
  • substitution - Forhindrer afledte elementer gennem erstatning i at erstatte dette element.
  • #all - Forhindrer alle afledte elementer i at erstatte dette element.

final

Valgfri. Angiver standardværdien for elementets final-attribut. Hvis forælderen ikke er et schema-element, kan dette attribut ikke bruges. Værdien kan være #all eller en liste, der indeholder en delmængde af extension eller restriction:

  • extension - Forhindrer afledte elementer gennem udvidelse i at erstatte dette element
  • restriction - Forhindrer afledte elementer gennem begrænsning i at erstatte dette element
  • #all - Forhindrer alle afledte elementer i at erstatte dette element

Enhver attribut

Valgfri. Angiver hvilke andre attributter, der kan have non-schema navnerum.

Eksempel

Eksempel 1

Følgende eksempel er en schema, der indeholder fire enkle elementer: "fname", "lname", "age" og "dateborn", med typerne string, nonNegativeInteger og 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>

Eksempel 2

Følgende eksempel er en schema med en kompleks type "note" element. "note" elementet indeholder fire enkle elementer: "to", "from", "heading" og "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>

Eksempel 3

Dette eksempel er det samme som eksempel 2, men i dette eksempel vælger vi at bruge ref-attributten til at referere til elementnavn:

<?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>