XSD egenskaber

Alle egenskaber deklareres som en enkel type.

Hvad er en egenskab?

Enkelte elementer kan ikke have egenskaber. Hvis et element har egenskaber, betragtes det som en komposit type. Men egenskaberne deklareres altid som en enkel type.

Hvordan deklareres en egenskab?

Syntaksen til at definere en egenskab er:

<xs:attribute name="xxx" type="yyy"/>

Heri refererer xxx til egenskabsnavnet, og yyy specificerer egenskabens datatype. XML Schema har mange indbyggede datatyper.

De mest almindelige typer er:

  • xs:string
  • xs:decimal
  • xs:integer
  • xs:boolean
  • xs:date
  • xs:time

Eksempel

Dette er et XML-element med egenskaber:

<lastname lang="EN">Smith</lastname>

Dette er den tilsvarende egenskabsdefinition:

<xs:attribute name="lang" type="xs:string"/>

Egenskabernes standard- og fastsatte værdier

Egenskaber kan have en specificeret standardværdi eller en fastsat værdi.

Hvis ingen anden værdi er specificeret, tildeler standardværdien automatisk til elementet.

I det følgende eksempel er standardværdien "EN":

<xs:attribute name="lang" type="xs:string" default="EN"/>

Fastsatte værdier tildeles automatisk til elementer, og du kan ikke specificere en anden værdi.

I det følgende eksempel er den fastsatte værdi "EN":

<xs:attribute name="lang" type="xs:string" fixed="EN"/>

Valgfri og obligatoriske egenskaber

Som standard er egenskaber valgfri. Hvis du ønsker at specificere, at egenskaber er obligatoriske, brug "use"-egenskaben:

<xs:attribute name="lang" type="xs:string" use="required"/>

Indholdets begrænsninger

Når XML elementet eller egenskaben har en defineret data type, tilføjes der begrænsninger til indholdet af elementet eller egenskaben.

Hvis XML elementets type er "xs:date", og indholdet er en streng som "Hello World", vil elementet ikke (gennem) verificeres.

Gennem XML schema kan du også tilføje dine egne begrænsninger til dine XML elementer og egenskaber. Disse begrænsninger kaldes facet (forfatterens bemærkning: betyder (polyeders) overflade, som kan oversættes til begrænsningsoverflade). Du vil lære mere om facet i det næste afsnit.