|
Dit artikel is gepubliceerd op zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
Het is mogelijke, bijvoorbeeld voor leesbaarheid, onderhoudbaarheid of toegankelijkheid, om het vocabulair of de grammatica van een bepaalde targetnamespace over verschillende XSD schema documenten te verspreiden.
Veronderstellende dat we beschikken over een XSD schema document als XSDSchema01.xsd : XML Schema Definition <?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ms="mySchema"
targetNamespace="mySchema">
<xsd:complexType name="student">
<xsd:sequence>
<xsd:element name="name" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>Dan kunnen we in een <xsd:include> element aan de hand van het schemaLocation attribuut aangeven op welke locatie het in te voegen gedeeltelijk schema zich bevindt : XML Schema Definition <?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="mySchema"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ms="mySchema">
<xsd:include schemaLocation="XMLSchema01.xsd"/>
<xsd:element name="class">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="student" type="ms:student" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>Hier wordt op eerder relatieve wijze verwezen naar de locatie van het in-te-voegen schema document, maar dit kan ook op eerder absolute wijze gebeuren, door bijvoorbeeld een volledig filepath of URL van dit schema document te vermelden. Het is de verantwoordelijkheid van de XML parser om het volledige schema samen te stellen.
Bemerk hoe beide schema documenten elementen introduceren die tot dezelfde targetnamespace behoren, in beide documenten staat er immers targetNamespace="mySchema". Dit is noodzakelijk bij het gebruik van het <xsd:include> element.
Meerdere include elementen mogen worden opgenomen, maar deze elementen moeten dan altijd voorafgaan aan de definitie van de globale elementen in het schema.
Een XML instantie conform aan het hiervoor vermelde schema zou zijn : XML Instantie <?xml version="1.0" encoding="utf-8" ?>
<ms:class xmlns:ms="mySchema">
<student>
<name>John</name>
</student>
<student>
<name>Jane</name>
</student>
</ms:class>
Dit artikel is gepubliceerd op zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
| hoofdstuk |
28. 29. 30.  |
| onderwerp |
29.15. 29.16. XSD Schemas Includen 29.17.  |
| broncode |
|
| datum |
laatst gewijzigd op woensdag 20 oktober 2010, laatst gepubliceerd op zondag 31 juli 2011 |
|