XSD- kenmerken
Alle attributen worden gedeclareerd als eenvoudige typen.
Wat is een attribuut?
Eenvoudige elementen kunnen geen attributen hebben. Als een element attributen heeft, wordt het beschouwd als een complex type. Maar het attribuut zelf wordt altijd gedeclareerd als een eenvoudig type.
Hoe definieer je een attribuut?
De syntaxis voor het definiëren van een attribuut is:
<xs:attribute name="xxx" type="yyy"/>
waarbij xxx de naam van het attribuut is en yyy het gegevenstype van het attribuut specificeert.
XML Schema heeft veel ingebouwde gegevenstypen. De meest voorkomende soorten zijn:
- xs:string
- xs:decimaal
- xs:geheel getal
- xs:booleaans
- xs:datum
- xs:tijd
Voorbeeld
Hier is een XML-element met een attribuut:
<lastname lang="EN">Smith</lastname>
En hier is de bijbehorende attribuutdefinitie:
<xs:attribute name="lang" type="xs:string"/>
Standaard- en vaste waarden voor attributen
Attributen kunnen een standaardwaarde OF een gespecificeerde vaste waarde hebben.
Er wordt automatisch een standaardwaarde aan het kenmerk toegewezen als er geen andere waarde is opgegeven.
In het volgende voorbeeld is de standaardwaarde "EN":
<xs:attribute name="lang" type="xs:string" default="EN"/>
Er wordt ook automatisch een vaste waarde aan het kenmerk toegewezen en u kunt geen andere waarde opgeven.
In het volgende voorbeeld is de vaste waarde "EN":
<xs:attribute name="lang" type="xs:string" fixed="EN"/>
Optionele en vereiste attributen
Kenmerken zijn standaard optioneel. Gebruik het kenmerk "use" om aan te geven dat het kenmerk vereist is:
<xs:attribute name="lang" type="xs:string" use="required"/>
Beperkingen op inhoud
Wanneer een XML-element of attribuut een gedefinieerd gegevenstype heeft, legt dit beperkingen op aan de inhoud van het element of attribuut.
Als een XML-element van het type "xs:date" is en een tekenreeks zoals "Hello World" bevat, wordt het element niet gevalideerd.
Met XML Schema's kunt u ook uw eigen beperkingen aan uw XML-elementen en attributen toevoegen. Deze beperkingen worden facetten genoemd. In het volgende hoofdstuk leest u meer over facetten.