|
Dit artikel is gepubliceerd op zondag 31 juli 2011 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.
Als je voor de waarde van een attribuut of element de keuze wil laten tussen verschillende types kan je gebruik maken van een "union type". In een <xsd:union> node kan je aan de hand van het memberTypes attribuut aangeven uit welke ( één of meerdere ) types men kan kiezen.
Volgend schema zal voor de waardes van het born element zowel xsd:date als xsd:gYear toelaten : XML Schema Definition <?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="born" type="date" />
<xsd:simpleType name="date">
<xsd:union memberTypes="xsd:date xsd:gYear" />
</xsd:simpleType>
</xsd:schema>Conform dit schema zijn volgende XML documenten : XML Instantie <?xml version="1.0" encoding="utf-8"?>
<born>1977-08-09</born> XML Instantie <?xml version="1.0" encoding="utf-8"?>
<born>1977</born> Een ander voorbeeld vinden we hier. In het volgend schema heeft men voor de waarde van een worksFor element de keuze tussen een departements waarde ( een lijst van departement waardes ) of een xsd:string waarde : XML Schema Definition <?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="employee">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string" />
<xsd:element name="worksFor">
<xsd:simpleType>
<xsd:union memberTypes="departements xsd:string" />
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:simpleType name="departements">
<xsd:list itemType="departement" />
</xsd:simpleType>
<xsd:simpleType name="departement">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="marketing" />
<xsd:enumeration value="sales" />
<xsd:enumeration value="accountancy" />
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>Conform dit schema zijn volgende XML documenten : XML Instantie <?xml version="1.0" encoding="utf-8" ?>
<employee>
<name>John</name>
<worksFor>marketing sales</worksFor>
</employee> XML Instantie <?xml version="1.0" encoding="utf-8" ?>
<employee>
<name>Jane</name>
<worksFor>London</worksFor>
</employee>
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.6. 29.7. XSD Union simpleType Definities 29.8.  |
| broncode |
|
| datum |
laatst gewijzigd op zondag 25 april 2010, laatst gepubliceerd op zondag 31 juli 2011 |
|