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>