XSD-ominaisuudet

Kaikki ominaisuudet määritellään yksinkertaisina tyyppinä.

Mitä ominaisuus on?

Yksinkertaiset elementit eivät voi sisältää ominaisuuksia. Jos elementillä on ominaisuus, sitä pidetään jossain muodossa monimutkaisena. Mutta ominaisuus itsessään aina määritellään yksinkertaisena tyypinä.

Miten määritellään ominaisuus?

Ominaisuuden määrittelyn syntaksi on:

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

Tässä xxx viittaa ominaisuuden nimeen, yyy määrittää ominaisuuden datatyypin. XML Schema sisältää monia sisäänrakennettuja datatyyppejä.

Yleisimmin käytetyt tyypit ovat:

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

Esimerkki

Tämä on elementti, jossa on ominaisuus:

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

Tämä on vastaava ominaisuuden määrittely:

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

Ominaisuuden oletusarvo ja vakioarvo

Ominaisuudella voi olla määritelty oletusarvo tai vakioarvo.

Jos muiden arvojen määrittämistä ei ole säädetty, oletusarvo jaetaan automaattisesti elementille.

Esimerkissä alla, oletusarvo on "EN":

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

Vakioarvot jaetaan automaattisesti elementille, eikä sinulla ole mahdollisuutta määrittää muuta arvoa.

Esimerkissä alla, vakioarvo on "EN":

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

Valinnaiset ja pakolliset ominaisuudet

Oletuksena ominaisuudet ovat valinnaisia. Jos haluat määrittää ominaisuuden pakolliseksi, käytä "use"-ominaisuutta:

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

Sisällön rajoitukset

Kun XML-elementillä tai ominaisuudella on määritelty tietotyyppi, rajoitukset lisätään elementin tai ominaisuuden sisältöön.

Jos XML-elementin tyyppi on "xs:date" ja sen sisältämä tieto on esimerkiksi "Hello World"-merkkijono, elementti ei vahvista.

XML-elementteihin ja -ominaisuuksiin voidaan lisätä omia rajoituksia XML-skeeman avulla. Näitä rajoituksia kutsutaan facetiksi (editorin huomautus: tarkoittaa (monikulmion) naista, joka voidaan kääntää rajoituksiksi). Tiedät lisää facetista seuraavassa luvussa.