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

(? Symbolen er deklareret i elementet, som kan forekomme 0 eller 1 gange, *-symbolet deklarerer elementet, som kan forekomme 0 eller flere gange).

Egenskab

id

Valgfri. Unik ID for elementet。

name

Valgfri. Navnet på elementet. Hvis overordnede element er et schema-element, er dette attributten nødvendig。

ref

Valgfri. Referencen til et andet element. ref-attributten kan indeholde en navnespacesuffiks. Hvis overordnede element er et schema-element, bruges ikke denne egenskab。

type

Valgfri. Navnet på en indbygget datatype, eller navnet på et simpleType- eller complexType-element。

substitutionGroup

Valgfri. Navnet på elementet, der kan bruges som erstatning for dette element. Dette element skal have samme type eller en type, der er afledt fra den specificerede elementtype。

Kan ikke bruges, hvis overordnede element ikke er et schema-element。

default

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

fixed

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

form

Valgfri. Elementets form. Standardværdien er elementFormDefault-attributten i schema-elementet, der indeholder denne egenskab. Værdien skal være en af følgende strenge: "qualified" eller "unqualified".

Hvis forældrelementet er et schema-element, kan dette attribut ikke bruges.

  • Hvis værdien er "unqualified",då skal elementet ikke限定通过命名空间前缀。
  • Hvis værdien er "qualified", skal elementet限定通过命名空间前缀。

maxOccurs

Valgfri. Angiver det maksimale antal gange elementet kan forekomme i sin overordnede element. Værdien skal være et heltal større end eller lig med 0. Hvis du ikke ønsker at sætte en grænse for maksimalt antal, brug strengen "unbounded". Standardværdien er 1.

Hvis forældrelementet er et schema-element, kan dette attribut ikke bruges.

minOccurs

Valgfri. Regulerer den mindste antal gange, elementet kan forekomme i forældrelementet. Værdien er et heltal, der er større end eller lig med 0. Standardværdien er 1.

Hvis forældrelementet er et schema-element, kan dette attribut ikke bruges.

nillable

Valgfri. Angiver, om en eksplicit nulværdi kan tildeling til dette element. Dette anvendes til elementets indhold og er ikke et attribut på elementet. Standardværdien er false.

Hvis nillable er true, kan instansen af dette element sætte nil-attributten til true. nil-attributten defineres som en del af instansens XML-skabelonnavneområde.

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-attributten er 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 andre elementer, der indeholder QNames (qualified names) af dette element i deres substitutionGroup-attribut, forekomme på dette elements placering. Flere elementer kan referere til dette element i deres substitutionGroup-attribut. Standardværdien er false.

block

Valgfri. Afledt type. block-attributten forhindrer, at elementer med den angivne afledte type bruges til at erstatte dette element. Værdien kan indeholde #all eller en liste, som er en delmængde af extension, restriction eller substitution:

  • extension - Forhindrer, at afledte elementer ved hjælp af extension bruges til at erstatte dette element.
  • restriction - Forhindrer, at afledte elementer ved hjælp af restriction bruges til at erstatte dette element.
  • substitution - Forhindrer, at afledte elementer ved hjælp af substitution bruges til at erstatte dette element.
  • #all - Forhindrer alle afledte elementer i at erstatte dette element.

final

Valgfri. Angiv standardværdi for final-attributten på elementet. Hvis forældrelementet ikke er et schema-element, kan dette attribut ikke bruges. Værdien kan indeholde #all eller en liste, som er 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 alle andre attributter med 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-egenskaben til at referere til elementnavne:

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