XML Schema element element

Definition och användning

element-elementet definierar ett element.

Elementinformation

Antal förekomster Antalet element definierade i arkitekturen.
Föräldrelement schema, choice, all, sequence
Innehåll 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|list of (extension|restriction))
final=(#all|list of (extension|restriction))
alla attribut
>
annotation?,((simpleType|complexType)?,(unique|key|keyref)*))
</element>

(?-symbolen deklarerades i elementet, som kan förekomma noll eller en gång, *-symbolen deklarerar element som kan förekomma noll eller flera gånger).

Egenskap

id

Valgfritt. Fastsätter ett unikt ID för elementet.

name

Valgfritt. Fastsätter 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-attributet kan innehålla ett namnsprefiks. Om föräldrelementet är ett schema-element används inte detta attribut.

type

Valgfritt. Fastsätter namnet på en inbyggd datatyp eller namnet på ett simpleType- eller complexType-element.

substitutionGroup

Valgfritt. Fastsätter namnet på ett element som kan användas för att ersätta detta element. Detta element måste ha samma typ eller vara en avledning från den specificerade elementtypen.

Det går inte att använda detta attribut om föräldrelementet inte är ett schema-element.

default

Valgfritt. Fastsätter en standardvärde för elementet (endast när elementets innehåll är en enkel typ eller textOnly används).

fixed

Valgfritt. Fastsätter en fast värde för elementet (endast när elementets innehåll är en enkel typ eller textOnly används).

form

Valfritt. Formen på detta element. Standardvärdet är samma som elementFormDefault-egenskapen för schemaelementet som innehåller denna egenskap. Värdet måste vara en av följande strängar: "qualified" eller "unqualified".

Denna egenskap får inte användas om föräldrelementet är schema-elementet.

  • Om värdet är "unqualified", behöver elementet inte begränsas genom att använda namnrymdsprefikset.
  • Om värdet är "qualified", måste elementet begränsas genom att använda namnrymdsprefikset.

maxOccurs

Valfritt. Reglerar den maximala antalet gånger som elementet kan uppträda i sitt föräldrelement. Värdet kan vara ett heltal som är större än eller lika med noll. Använd strängen "unbounded" för att inte sätta några gränser för det maximala antalet. Standardvärdet är 1.

Denna egenskap får inte användas om föräldrelementet är schema-elementet.

minOccurs

Valfritt. Reglerar den minsta antalet gånger som elementet kan uppträda i sitt föräldrelement. Värdet kan vara ett heltal som är större än eller lika med noll. Standardvärdet är 1.

Denna egenskap får inte användas om föräldrelementet är schema-elementet.

nillable

Valfritt. Indikerar om ett explicit nollvärde kan tilldelas detta element. Detta gäller för elementinnehållet och inte för elementets egenskaper. Standardvärdet är false.

Om nillable är true, kommer instansen av detta element att kunna ha nil-egenskapen satt till true. nil-egenskapen definieras som en del av XML-schemanamnrymden för instansen.

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-egenskapen är satt till true).

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

abstract

Valfritt. Indikerar om elementet kan användas i ett instansdokument. Om värdet är true, får elementet inte finnas i ett instansdokument. I stället måste andra element som innehåller den begränsade namnet (QName) på detta element finnas på dess plats. Flera element kan hänvisa till detta element i dess substitutionGroup-attribut. Standardvärdet är false.

block

Valfritt. Härledda typer. block-attribut förhindrar att element med en specificerad härledd typ används för att ersätta detta element. Värdet kan innehålla #all eller en lista, som är en delmängd av extension, restriction eller substitution:

  • extension - Förhindra att element som har härledd från en utökning används för att ersätta detta element.
  • restriction - Förhindra att avledna element används för att ersätta detta element genom begränsning
  • substitution - Förhindra att avledna element används för att ersätta detta element genom ersättning
  • #all - Förhindra att alla avledna element används för att ersätta detta element.

final

Valfritt. Ställ in standardvärdet för elementets final-attribut. Om föräldraelementet inte är ett schema-element kan detta attribut inte användas. Värdet kan innehålla #all eller en lista, som är en del av extension eller restriction:

  • extension - Förhindra att avledna element används för att ersätta detta element genom utökning
  • restriction - Förhindra att avledna element används för att ersätta detta element genom begränsning
  • #all - Förhindra att alla avledna element används för att ersätta detta element

alla attribut

Valfritt. Specificera några andra attribut med non-schema-namnrymd.

Exempel

Exempel 1

Följande exempel är ett schema som innehåller fyra enkla element: "fname", "lname", "age" och "dateborn", med typerna 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

Följande exempel är ett schema med en komplex typ "note"-element. "note"-elementet 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>