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)) alla attribut > annotation?,((simpleType|complexType)?,(unique|key|keyref)*)) </element>
(?-teckenet deklarerar i elementet, detta element kan förekomma noll eller en gång, *-teckenet deklarerar element som kan förekomma noll eller flera gånger.)
Egenskaper
id
Valgfritt. Angiv en unik ID för elementet.
name
Valgfritt. Angiv namnet på elementet. Om föräldrelementet är ett schema-element, är detta attribut nödvändigt.
ref
Valgfritt. En referens till ett annat element. ref-egenskapen kan innehålla ett namnrymdsprefiks. Om föräldrelementet är ett schema-element, används inte denna egenskap.
type
Valgfritt. Angiv namnet på en inbyggd datatyp eller namnet på ett simpleType- eller complexType-element.
substitutionGroup
Valgfritt. Angiv namnet på elementet som kan ersätta detta element. Detta element måste ha samma typ eller en typ som är avledad från den specificerade elementtypen.
Om föräldrelementet inte är ett schema-element, kan inte denna egenskap användas.
default
Valgfritt. Angiv ett standardvärde för elementet (endast används när elementets innehåll är en enkel typ eller textOnly).
fixed
Valgfritt. Angiv en fast värde för elementet (endast används när elementets innehåll är en enkel typ eller textOnly).
form
Valgfritt. Elementets form. Standardvärdet är elementFormDefault-egenskapen i schema-elementet som innehåller egenskapen. Värdet måste vara en av följande strängar: "qualified" eller "unqualified".
Om föräldrelementet är ett schema-element kan inte detta attribut användas.
- Om värdet är "unqualified", behöver elementet inte begränsas genom namnrymdsprefiks.
- Om värdet är "qualified", måste elementet begränsas genom namnrymdsprefiks.
maxOccurs
Valgfritt. Angiv maximalet antal gånger som elementet kan förekomma i föräldrelementet. Värdet måste vara ett heltal som är större än eller lika med noll. Om du inte vill sätta någon begränsning på maxantalet, använd strängen "unbounded". Standardvärdet är 1.
Om föräldrelementet är ett schema-element kan inte detta attribut användas.
minOccurs
Valgfritt. Angiv den minsta antal gånger som elementet kan förekomma i föräldrelementet. Värdet är ett heltal som är större än eller lika med 0. Standardvärdet är 1.
Om föräldrelementet är ett schema-element kan inte detta attribut användas.
nillable
Valgfritt. Angiv om ett explicit nollvärde kan tilldelas till detta element. Detta gäller för elementets innehåll och inte som ett attribut på elementet. Standardvärdet är false.
Om nillable är true, kommer instansen av detta element att kunna sätta nil-attributet till true. nil-attributet definieras som en del av instansens XML-schemanamnrymd.
Till exempel definierar nästa avsnitt ett enskilt element och sätter nillable till true.
<xs:element name="myDate" type="xs:date" nillable="true"/>
Nästa avsnitt använder detta element och har ett explicit nollvärde (nil-attributet sätts till true).
<myDate xsi:nil="true"></myDate>
abstract
Valgfritt. Angiv om elementet kan användas i instansdokumentet. Om värdet är true kan elementet inte förekomma i instansdokumentet. I stället innehåller substitutionGroup-attributet andra element som har samma namn (QName) och måste finnas på plats där detta element skulle finnas. Flera element kan hänvisa till detta element i sitt substitutionGroup-attribut. Standardvärdet är false.
block
Valgfritt. Avledna typer. block-attributet förhindrar att element med angiven avlednad typ används för att ersätta detta element. Värdet kan innehålla #all eller en lista, där listan är en delmängd av extension, restriction eller substitution:
- extension - Förhindra att element som är avledna genom utökning används för att ersätta detta element.
- restriction - Förhindra att element som är avledna genom begränsning används för att ersätta detta element.
- substitution - Förhindra att element som är avledna genom ersättning används för att ersätta detta element.
- #all - Förhindra att alla avledna element används för att ersätta detta element.
final
Valgfritt. Angiv standardvärde för final-attributet på element-elementet. Om föräldrelementet inte är ett schema-element kan inte detta attribut användas. Värdet kan innehålla #all eller en lista, där listan är en delmängd av extension eller restriction:
- extension - Förhindrar att element som avleds genom utökning används för att ersätta detta element
- restriction - Förhindrar att element som avleds genom begränsning används för att ersätta detta element
- #all - Förhindrar att alla avledna element används för att ersätta detta element
alla attribut
Valfritt. Anger alla andra attribut med non-schema-namnrymd.
Exempel
Exempel 1
Nedanstående exempel är ett schema med fyra enkla element: "fname", "lname", "age" och "dateborn", typerna är string, nonNegativeInteger och 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>
Exempel 2
Nedanstående exempel är ett schema med ett komplext element "note" som innehåller fyra enkla element: "to", "from", "heading" och "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>
Exempel 3
Detta exempel är lika med exempel 2, men i detta exempel väljer vi att använda ref-attributet för att hänvisa till elementnamn:
<?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>