XML Schema

Uit Wikipedia, de vrije encyclopedie
Dit is een oude versie van deze pagina, bewerkt door YurikBot (overleg | bijdragen) op 8 aug 2006 om 11:28. (robot Anders: es:XML Schema)
Deze versie kan sterk verschillen van de huidige versie van deze pagina.

XML Schema is een taal voor het beschrijven van de structuur van XML documenten. De formele taal van XML Schema, XSD of XML Schema Definitietaal (Engels: XML Schema Definition Language), is een standaard van het W3C (World Wide Web Consortium). Het is ontwikkeld als een opvolger van het eerder ontwikkelde DTD.

In XML Schema kan men schema's maken voor bijvoorbeeld XML documenten, waarmee deze documenten formeel worden gespecificeerd, en op grond waarvan zij kunnen worden gevalideerd, bijvoorbeeld door XML validators. Een XML Schema geeft hiervoor onder meer aan wat de elementen zijn van een XML document, waar zij voorkomen, wat de kenmerken zijn waaraan ze moeten voldoen, enzovoorts. Zeer simplistisch uitgedrukt kan een XML Schema onder meer aangeven, wat voor soort tags in een XML document mogen voorkomen.

Een XML document kan correct (welgevormd) zijn ten aanzien van de algemene XML standaard, maar desondanks niet valide ten aanzien van een gegeven XML schema.

Voordeel van XSD boven DTD is dat XSD krachtiger en flexibeler is, en minder cryptisch. Verder kan een XSD zelf ook in XML worden weergegeven, in tegenstelling tot DTD. Veel specificaties zijn echter al in DTD weergegeven, en wat dat betreft heeft XSD als het ware voor een deel een inhaalslag te maken, ook wat betreft software die de standaard ondersteunt.

In XSD kunnen diverse voorgedefinieerde datatypen worden gebruikt, zoals string, boolean en integer, en ook eigen datatypen worden gedeclareerd. Complexe typen worden samengesteld met eenvoudige typen.

XML Schema's worden standaard opgeslagen in bestandsnamen met de bestandsextensie .xsd.

Voorbeeld van XML Schema

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="huisdier">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="soort" type="xs:string"/>
      <xs:element name="naam" type="xs:string"/>
      <xs:element name="geboortedatum" type="xs:date"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema> 

Voorbeeld van een valide XML document ten aanzien van het bovenstaande XML Schema (huisdier.xsd):

<?xml version="1.0" encoding="UTF-8"?>
<huisdier xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="huisdier.xsd">
  <soort>Kanarie</soort>
  <naam>Geeltje</naam>
  <geboortedatum>2000-02-15</geboortedatum>
</huisdier>