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|lijst van (uitbreiding|beperking)) final=(#all|lijst van (uitbreiding|beperking)) enkele eigenschappen > annotation?,((simpleType|complexType)?,(unique|key|keyref)*)) </element>
(De ?-symbool wordt gebruikt in het element, het element kan nul of één keer voorkomen, het *-symbool declareert een element dat nul of meerdere keren kan voorkomen.)
Eigenschappen
id
Optioneel. Bepaalt het unieke ID van dit element.
name
Optioneel. Bepaalt de naam van het element. Als de ouder-element een schema-element is, is deze eigenschap vereist.
ref
Optioneel. Verwijzing naar een ander element. De ref-eigenschap kan een naamruimteprefix bevatten. Als de ouder-element een schema-element is, wordt deze eigenschap niet gebruikt.
type
Optioneel. Bepaalt de naam van de ingebouwde datatype, of specificeert de naam van het simpleType- of complexType-element.
substitutionGroup
Optioneel. Bepaalt de naam van het element dat kan worden gebruikt om dit element te vervangen. Dit element moet dezelfde type hebben of een type afgeleid van het gespecificeerde type.
Als de ouder-element geen schema-element is, kan deze eigenschap niet worden gebruikt.
default
Optioneel. Stelt een standaardwaarde in voor het element (alleen te gebruiken wanneer de inhoud van het element een eenvoudige type is of textOnly).
fixed
Optioneel. Stelt een vaste waarde in voor het element (alleen te gebruiken wanneer de inhoud van het element een eenvoudige type is of textOnly).
form
Optioneel. De vorm van het element. De standaardwaarde is de waarde van de elementFormDefault-eigenschap van het schema-element dat de eigenschap bevat. De waarde moet een van de volgende strings zijn: "qualified" of "unqualified".
Als het ouder-element een schema-element is, kan deze eigenschap niet worden gebruikt.
- Als deze waarde "unqualified" is, hoeft het element niet te worden gelimiteerd door een naamruimteprefix.
- Als deze waarde "qualified" is, moet het element worden gelimiteerd door een naamruimteprefix.
maxOccurs
Optioneel. Bepaalt het maximale aantal keren dat het element kan voorkomen in de ouder-element. De waarde kan een geheel getal zijn dat groter of gelijk is aan nul. Gebruik de string "unbounded" om geen limiet in te stellen op het maximale aantal. De standaardwaarde is 1.
Als het ouder-element een schema-element is, kan deze eigenschap niet worden gebruikt.
minOccurs
Optioneel. Bepaalt het minste aantal keren dat het element in het ouder-element kan voorkomen. De waarde kan een geheel getal zijn dat groter of gelijk is aan nul. De standaardwaarde is 1.
Als het ouder-element een schema-element is, kan deze eigenschap niet worden gebruikt.
nillable
Optioneel. Bepaalt of een expliciete nulwaarde kan worden toegewezen aan het element. Dit item is van toepassing op de inhoud van het element en is geen eigenschap van het element. De standaardwaarde is false.
Als nillable true is, kan de instance van het element de nil-eigenschap instellen op true. De nil-eigenschap wordt gedefinieerd als een deel van de XML-schemanama-ruimte van de instance.
Bijvoorbeeld, het volgende gedeelte definieert een enkel element en stelt nillable in op true.
<xs:element name="myDate" type="xs:date" nillable="true"/>
Het volgende gedeelte gebruikt dit element en heeft een expliciet nulwaarde (nil-eigenschap ingesteld op true).
<myDate xsi:nil="true"></myDate>
abstract
Optioneel. Bepaalt of het element kan worden gebruikt in het instandhoudingsdocument. Als de waarde true is, kan het element niet in het instandhoudingsdocument voorkomen. In plaats daarvan moeten andere elementen die de限定名 (QName) van dit element bevatten in de substitutionGroup-eigenschap, op de plek van dit element voorkomen. Meerdere elementen kunnen hetzelfde element in hun substitutionGroup-eigenschap verwijzen. De standaardwaarde is false.
block
Optioneel. Afgeleide type. De block-eigenschap voorkomt dat elementen met de opgegeven afgeleide type worden gebruikt om dit element te vervangen. De waarde kan #all bevatten of een lijst, die een subset is van extension, restriction of substitution:
- extension - Voorkomt dat afgeleide elementen worden gebruikt om dit element te vervangen via uitbreiding.
- restriction - Voorkomt dat afgeleide elementen worden gebruikt om dit element te vervangen via restrictie.
- substitution - Voorkomt dat afgeleide elementen worden gebruikt om dit element te vervangen via substitutie.
- #all - Voorkomt dat alle afgeleide elementen worden gebruikt om dit element te vervangen.
final
Optioneel. Stel de standaardwaarde van de final-eigenschap van het element in. Als het ouder-element geen schema-element is, kan deze eigenschap niet worden gebruikt. De waarde kan #all bevatten of een lijst, die een subset is van extension of restriction:
- extension - Voorkomt dat afgeleide elementen via uitbreiding worden gebruikt om dit element te vervangen
- restriction - Voorkomt dat afgeleide elementen via restrictie worden gebruikt om dit element te vervangen
- #all - Voorkomt dat alle afgeleide elementen worden gebruikt om dit element te vervangen
enkele eigenschappen
Optioneel. Stelt elke andere eigenschap met een non-schema naamruimte vast.
Voorbeeld
Voorbeeld 1
Het volgende voorbeeld is een schema met vier eenvoudige elementen: "fname", "lname", "age" en "dateborn", van het type string, nonNegativeInteger en 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>
Voorbeeld 2
Het volgende voorbeeld is een schema met een complex type "note" element. Het "note" element bevat vier eenvoudige elementen: "to", "from", "heading" en "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>
Voorbeeld 3
Dit voorbeeld is hetzelfde als voorbeeld 2, maar in dit voorbeeld kiezen we om de ref-eigenschap te gebruiken om elementnamen te verwijzen:
<?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>