
<!-- XML -->
<?xml version="1.0" encoding="UTF-16"?>
<order 
	xmlns="http://www.groothandel.nl"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.groothandel.nl file:///H:/XMLbestanden/Groothandel.xsd">
	<contactpersoon>Piet Paulusma</contactpersoon>
	<product>
		<productid>ws-434</productid>
		<aantal>5</aantal>
	</product>
	<product>
		<productid>th-111</productid>
		<aantal>2</aantal>
	</product>
	<product>
		<productid>wm-212</productid>
		<aantal>3</aantal>
	</product>
	<datum>2001-01-13</datum>
	<klantid>23451</klantid>
</order>

<!-- XML -->
<?xml version="1.0" encoding="utf-8"?>
<adressen
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:noNamespaceSchemaLocation="file:///U:/XML/XML_Deel_1/XMLbestanden/adressen.xsd">  <!-- The 
	noNamespaceSchemaLocation attribute references an XML Schema document that does not have a target namespace -->
  <adres>	
	<straat>laan 4</straat>
	<postcode>1234 FG</postcode>
	<plaats>Stad</plaats>
  </adres>
</adressen>

<!-- XSD -->
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

 <xsd:element name="adressen">
  <xsd:complexType>
   <xsd:sequence>
    <xsd:element name="adres">
     <xsd:complexType>
      <xsd:sequence>
       <xsd:element name="straat" type="xsd:string"/>
       <xsd:element name="postcode" type="xsd:string"/>
       <xsd:element name="plaats" type="xsd:string"/>
      </xsd:sequence>
     </xsd:complexType>
    </xsd:element>
   </xsd:sequence>
  </xsd:complexType>
 </xsd:element>

 </xsd:schema>


<!-- XML -->
<?xml version="1.0" encoding="utf-8"?>
<adressen
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:noNamespaceSchemaLocation="file:///U:/XML/XML_Deel_1/XMLbestanden/Adressen2.xsd">

	<naam>O.G. Geluk</naam>
	<huisadres>
		<straat>Wassenberghstraat 42</straat>
		<postcode>9718 LM</postcode>
		<plaats>Groningen</plaats>
	</huisadres>
		
	<naam>Jan Jans &amp; de kinderen</naam>
	<huisadres>
		<straat>Wassenberghstraat 40</straat>
		<postcode>9718 LM</postcode>
		<plaats>Groningen</plaats>
	</huisadres>
	<postadres>
		<straat></straat>
		<postcode></postcode>
		<plaats></plaats>
	</postadres>
	
</adressen>

<!-- XSD -->
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 
 <xsd:complexType name="adres">
  <xsd:sequence>
    <xsd:element name="straat" type="xsd:string" maxOccurs="2">
     </xsd:element>
    <xsd:element name="postcode" type="xsd:string"/>
   <xsd:element name="plaats" type="xsd:string"/>
   
  </xsd:sequence>
 </xsd:complexType>
 
 <xsd:element name="adressen">
  <xsd:complexType>
   <xsd:sequence maxOccurs="unbounded">
    <xsd:element name="naam" type="xsd:string" />
    <xsd:element name="huisadres" type="adres"/>
    <xsd:element name="postadres" type="adres" minOccurs="0" maxOccurs="1"/>
   </xsd:sequence>
  </xsd:complexType>
 
 </xsd:element>
 
</xsd:schema>

<!-- XML -->
<?xml version="1.0" encoding="utf-8"?>
<bestellijst>
	<kleding kleur="zwart" maat="31">
		<soort model="gc-413">broek</soort>
		<merk>Garca</merk>
		<aantal>10</aantal>
	</kleding>
	<kleding kleur="donkerblauw" maat="34">
		<soort model="gc-864">broek</soort>
		<merk>Garca</merk>
		<aantal>15</aantal>
	</kleding>
	<kleding kleur="blauw/zwart" maat="X">
		<soort>Trui</soort>
		<merk>Twinlive</merk>
		<aantal>7</aantal>
	</kleding>
	<kleding kleur="grijs/wit" maat="M">
		<soort>vest</soort>
		<merk>Garca</merk>
		<aantal>7</aantal>
	</kleding>
</bestellijst>

<!-- XML -->
<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE cdlijst SYSTEM "file:///H:/XMLbestanden/finished/CDLijst.dtd">
<?xml-stylesheet type="text/css" href="cdlijst.css"?>

<cdlijst xmlns="http://www.cd.nl">
	<cd speelduur="51:58">
		<cdtitel>Funhouse</cdtitel>
		<artiest>Pink</artiest>
		<tracklist>
			<track speelduur="3:35">
				<titel>So What</titel>
				<nummer>1</nummer>
				<jaar>2008</jaar>
			</track>
			<track speelduur="4:11">
				<titel>Sober</titel>
				<nummer>2</nummer>
				<jaar>2008</jaar>
			</track>
		</tracklist>	
	</cd>		
</cdlijst>

<!-- DTD -->
<?xml version="1.0" encoding="UTF-8"?>

<!ELEMENT cdlijst  (cd+)>   <!-- + (verplicht): 1 of meer -->
<!ELEMENT cd (cdtitel, artiest, tracklist)>
<!ELEMENT cdtitel (#PCDATA)>  <!-- #PCDATA : het element bevat tekst -->
<!ELEMENT artiest (#PCDATA)>
<!ELEMENT tracklist (track+)>
<!ELEMENT track (titel,nummer,jaar)>
<!ATTLIST cd speelduur CDATA #IMPLIED>  <!-- CDATA : attribuut bevat gewone tekst -->
<!ATTLIST track speelduur  CDATA #REQUIRED>  <!-- Verplicht op te geven binnen XML -->
<!ELEMENT titel (#PCDATA)>
<!ELEMENT nummer (#PCDATA)>
<!ELEMENT jaar (#PCDATA)>
<!ATTLIST cdlijst xmlns CDATA #IMPLIED> <!-- Geen standaard waarde maar optioneel -->

<!-- XML -->
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="cdlijst.css"?>

<cdlijst
	xmlns="http://www.cd.nl"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.cd.nl file:///H:/XMLBestanden/Finished/Hoofdstuk4/CDLijst.xsd">

	<cd speelduur="39:33">
		<cdtitel>Dooki</cdtitel>
		<artiest>Green Day</artiest>
		<tracklist>
			<track speelduur="2:07">
				<titel>Burnout</titel>
				<nummer>1</nummer>
				<jaar>1994</jaar>
			</track>
			<track speelduur="2:44">
				<titel>Having A Blast</titel>
				<nummer>2</nummer>
				<jaar>1994</jaar>
			</track>
		</tracklist>
	</cd>
</cdlijst>

<!-- XSD -->
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema
	elementFormDefault="qualified"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd"
	xmlns="http://www.cd.nl" 
	targetNamespace="http://www.cd.nl">
	
	<xsd:simpleType name="tijd">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[0-9]?[0-9]:[0-5][0-9]"/>   <!-- ? (optioneel): 0 of 1 keer -->
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="jaartal">
		<xsd:restriction base="xsd:int">
			<xsd:pattern value="[0-9]{4}"/>  <!-- {4} : voorgaande karakter/groep moet 4 keer voorkomen -->
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:complexType name="cdbeschrijving">
		<xsd:sequence>
			<xsd:element name="cdtitel" type="xsd:string"/>
			<xsd:element name="artiest" type="xsd:string"/>
			<xsd:element name="tracklist">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="track" type="tracks" maxOccurs="unbounded" />
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:complexType name="tracks">
		<xsd:complexContent>
			<xsd:extension base="trackbeschrijving">
				<xsd:attribute name="speelduur" type="tijd" use="required"/>
			</xsd:extension>
		</xsd:complexContent>	
	</xsd:complexType>
	
	<xsd:complexType name="trackbeschrijving">
		<xsd:sequence>    <!-- Definieert een volgorde van elementen -->
			<xsd:element name="titel" type="xsd:string"/>
			<xsd:element name="nummer" type="xsd:int"/>
			<xsd:element name="jaar" type="jaartal"/>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:element name="cdlijst">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="cd"  minOccurs="1" maxOccurs="unbounded">
					<xsd:complexType>
						<xsd:complexContent>
							<xsd:extension base="cdbeschrijving">
								<xsd:attribute name="speelduur" type="tijd" use="optional"/>
							</xsd:extension>
						</xsd:complexContent>	
					</xsd:complexType>
				</xsd:element>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	
</xsd:schema>

<!-- XSD -->
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.group.nl" targetNamespace="http://www.group.nl" elementFormDefault="qualified">
	
	<xs:group name="type">
		<xs:all>   <!-- Alle opgegeven elementen moeten precies één keer voorkomen. De volgorde maakt niet uit -->
			<xs:element name="naam" minOccurs="1" maxOccurs="1"/>
			<xs:element name="breedte" minOccurs="0" maxOccurs="1"/>
			<xs:element name="hoogte" minOccurs="0" maxOccurs="1"/>
			<xs:element name="straal" minOccurs="0" maxOccurs="1"/>
		</xs:all>
	</xs:group>
	
	<xs:complexType name="vorm">
		<xs:group ref="type"></xs:group>  <!-- Verwijzing naar een eerder genoemde groep -->
	</xs:complexType>
	
	<xs:attributeGroup name="eigenschappen">
		<xs:attribute name="kleur" use="required"/>  <!-- use : optional (default), required, prohibited -->
		<xs:attribute name="randkleur" use="required"/>	
		<xs:attribute name="aantalHoeken" />
	</xs:attributeGroup>	
	
	<xs:element name="vormen">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="figuur" maxOccurs="unbounded">
					<xs:complexType>
						<xs:complexContent>
							<xs:extension base="vorm">
								<xs:attributeGroup ref="eigenschappen"/>
							</xs:extension>
						</xs:complexContent>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

</xs:schema>

<!-- XML -->
<?xml version="1.0" encoding="utf-8"?>
<klanten
	xmlns="http://www.klanten.nl"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.klanten.nl file:///H:/XMLbestanden/Finished/Hoofdstuk4/klanten.xsd">
	
	<klantp>
		<voornamen>Alfred</voornamen>
		<voorletters>A.J.</voorletters>
		<achternaam>Welink</achternaam>
		<geslacht>man</geslacht>
		<klantid>p3456</klantid>
		<straat>parkweg</straat>
		<huisnummer toevoeging="a">19</huisnummer>
		<postcode>5689 TY</postcode>
		<plaats>Bovenloo</plaats>
		<telefoon>06-12345678</telefoon>
		<telefoon>012-3456789</telefoon>
		<kortingspercentage>0</kortingspercentage>
	</klantp>
	
	<klantb>
		<bedrijfsnaam>Basis IT</bedrijfsnaam>
		<klantid>b6578</klantid>
		<straat>westerbaan</straat>
		<huisnummer>211</huisnummer>
		<postcode>7867 KL</postcode>
		<plaats>Doorestad</plaats>
		<contactpersoon>
			<voornamen>Marlies</voornamen>
			<voorletters>M.</voorletters>
			<tussenvoegsel>van der</tussenvoegsel>
			<achternaam>Wal</achternaam>
			<geslacht>vrouw</geslacht>
		</contactpersoon>
		<telefoon>054-3698521</telefoon>
		<e-mail>m.v.d.wal@basisit.nl</e-mail>
		<e-mail>marlies@profider.nl</e-mail>
		<kortingspercentage>7.5</kortingspercentage>
	</klantb>

</klanten>

<!-- XSD -->
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema
	elementFormDefault="qualified"  <!-- elementFormDefault geeft aan dat gedeclareerde elementen
	behoren tot de targetNamespace, i.p.v. tot de null namespace -->
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd"
	xmlns="http://www.klanten.nl" <!-- Default namespace (zonder prefix) -->
	targetNamespace="http://www.klanten.nl">  <!-- targetNamespace geeft aan bij welke namespace 
	de gedefinieerde elementen en typen horen. Is vaak gelijk aan de default namespace -->
	
	<xsd:complexType name="persoon">
		<xsd:sequence>
			<xsd:element name="voornamen" minOccurs="0"/>   <!-- 0 : optioneel, 1 (default) of meer -->
			<xsd:element name="voorletters"/>
			<xsd:element name="tussenvoegsel" minOccurs="0"/>
			<xsd:element name="achternaam"/>
			<xsd:element name="geslacht" type="geslacht"/>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:simpleType name="geslacht">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="man"/>
			<xsd:enumeration value="vrouw"/>
			<xsd:enumeration value="onbekend"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="pcostcode">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[1-9][0-9]{3} [A-Z]{2}"></xsd:pattern>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:group name="adres">
		<xsd:sequence>
			<xsd:element name="straat"/>
			<xsd:element name="huisnummer">
				<xsd:complexType>
					<xsd:simpleContent>  <!-- Bevat altijd extension of restriction -->
						<xsd:extension base="xsd:int">
							<xsd:attribute name="toevoeging" type="xsd:string" use="optional"/>
						</xsd:extension>
					</xsd:simpleContent>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="postcode" type="pcostcode"/>
			<xsd:element name="plaats"/>
		</xsd:sequence>
	</xsd:group>
	
	<xsd:complexType name="particulier">
		<xsd:complexContent>
			<xsd:extension base="persoon">
				<xsd:sequence>
					<xsd:element name="klantid"/>
					<xsd:group ref="adres"/>  <!-- ref : om een verwijzing naar een bovenliggend element te maken -->
					<xsd:element name="telefoon" maxOccurs="unbounded"/>   <!-- 1 (default) of meer -->
					<xsd:element name="e-mail" maxOccurs="unbounded" minOccurs="0"/>
					<xsd:element name="kortingspercentage" type="percentage" default="0"/>  <!-- default : om een standaard waarde op te geven -->
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	
	<xsd:complexType name="bedrijf">
		<xsd:sequence>
			<xsd:element name="bedrijfsnaam"/>
			<xsd:element name="klantid"/>
			<xsd:group ref="adres"/>
			<xsd:element name="contactpersoon" type="persoon"/>
			<xsd:element name="telefoon" maxOccurs="unbounded"/>
			<xsd:element name="e-mail" minOccurs="0" maxOccurs="4"/>
			<xsd:element name="kortingspercentage" type="percentage" default="0"/>
		</xsd:sequence>
	</xsd:complexType>
	
	<xsd:simpleType name="percentage">
		<xsd:restriction base="xsd:float">  <!-- restriction : voor het definieren van een beperking -->
			<xsd:enumeration value="0"></xsd:enumeration>
			<xsd:enumeration value="5"></xsd:enumeration>
			<xsd:enumeration value="7.5"></xsd:enumeration>
			<xsd:enumeration value="10"></xsd:enumeration>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:element name="klanten">
		<xsd:complexType>
			<xsd:choice maxOccurs="unbounded">  <!-- choice : Keuze uit één van de opgegeven elementen -->
				<xsd:element name="klantp" type="particulier"/>
				<xsd:element name="klantb" type="bedrijf"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>
	
</xsd:schema>

<!-- XML -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE personen SYSTEM "personen2.dtd">

<personen>
  <persoon geslacht="m">
    <naam>Vincent</naam> 
    <adres>Perkstraat 5</adres>
    <plaats>Hogerdam</plaats>
  </persoon>
  <persoon geslacht="m">
    <naam>Marith</naam> 
    <adres>Grasstraat 18</adres>
    <plaats>Hogerdam</plaats>
  </persoon>
</personen>

<!-- DTD -->
<!ELEMENT personen (persoon)+>
<!ELEMENT persoon (naam?, adres, plaats)>
<!ELEMENT naam (#PCDATA)>
<!ELEMENT adres (#PCDATA)>
<!ELEMENT plaats (#PCDATA)>
<!ATTLIST persoon geslacht CDATA #REQUIRED>

<!-- XML EMBEDDED DTD -->
<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE personen [
<!ELEMENT personen (persoon+)>
<!ELEMENT persoon (#PCDATA)>
<!ATTLIST persoon persid ID #REQUIRED> 
<!ATTLIST persoon vader IDREF #IMPLIED>
<!ATTLIST persoon moeder IDREF #IMPLIED>
]>

<personen>
	<persoon persid="p1">Hans</persoon>
	<persoon persid="p2">Anouk</persoon>
	<persoon persid="p3" vader="p1" moeder="p2">Gert</persoon>
	<persoon persid="p4">Kirsten</persoon>
	<persoon persid="p5" vader="p3" moeder="p4">Anouk</persoon>
</personen>

<!-- XML -->
<?xml version="1.0" encoding="utf-8"?>
<werknemers
	xmlns="http://www.groothandel.nl"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="
		http://www.groothandel.nl
		file:///H:/XMLBestanden/Persoonsgegevens.xsd">
	<werknemer>
		<voornaam>Jan</voornaam>
		<achternaam>Klaassen</achternaam>
		<adres>Holleweg</adres>
		<huisnummer>110</huisnummer>
		<postcode>1850 XY</postcode>
		<plaats>Heiloo</plaats>
		<manager>
			<voornaam>Diederik</voornaam>
			<achternaam>Stadsmuis</achternaam>
		</manager>
	</werknemer>
	<werknemer>
		<voornaam>Klaas</voornaam>
		<achternaam>Jansen</achternaam>
		<adres>Hogeweg</adres>
		<huisnummer>111</huisnummer>
		<postcode>1851 YZ</postcode>
		<plaats>Alkmaar</plaats>
		<manager>
			<voornaam>Pieter</voornaam>
			<achternaam>Konijn</achternaam>
		</manager>
	</werknemer>
</werknemers>

<!-- XSD -->
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.groothandel.nl" targetNamespace="http://www.groothandel.nl" elementFormDefault="qualified">

	<xsd:complexType name="persoon">
		<xsd:sequence>
			<xsd:element name="voornaam" type="xsd:string"/>  <!-- type : het datatype van het element -->
			<xsd:element name="achternaam" type="xsd:string"/>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="persoonsgegevens">
		<xsd:complexContent>  <!-- Bevat altijd extension of restriction -->
			<xsd:extension base="persoon">
				<xsd:sequence>
					<xsd:element name="adres" type="xsd:string"/>
					<xsd:element name="huisnummer" type="xsd:string"/>
					<xsd:element name="postcode" type="xsd:string"/>
					<xsd:element name="plaats" type="xsd:string"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>

   <xsd:complexType name="werknemer">
	   <xsd:complexContent>
		   <xsd:extension base="persoonsgegevens">
               <xsd:sequence>
	               <xsd:element name="manager" type="persoon"/>
               </xsd:sequence>			   
		   </xsd:extension>
	   </xsd:complexContent>
   </xsd:complexType>

	<xsd:element name="werknemers">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="werknemer" type="werknemer" minOccurs="1" maxOccurs="unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

</xsd:schema>

<!-- XML -->
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="cdlijst.css"?>

<cdlijst
	xmlns="http://www.cd.nl"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="
		http://www.cd.nl
		file:///H:/XMLBestanden/Finished/Hoofdstuk4/CDLijst.xsd">

	<cd speelduur="39:33">
		<cdtitel>Dooki</cdtitel>
		<artiest>Green Day</artiest>
		<tracklist>
			<track speelduur="2:07">
				<titel>Burnout</titel>
				<nummer>1</nummer>
				<jaar>1994</jaar>
			</track>
			<track speelduur="2:44">
				<titel>Having A Blast</titel>
				<nummer>2</nummer>
				<jaar>1994</jaar>
			</track>
			<track speelduur="2:53">
				<titel>Chump</titel>
				<nummer>3</nummer>
				<jaar>1994</jaar>
			</track>
			<track speelduur="3:58">
				<titel>Long View</titel>
				<nummer>4</nummer>
				<jaar>1994</jaar>
			</track>
			<track speelduur="3:43">
				<titel>Welcome To Paradise</titel>
				<nummer>5</nummer>
				<jaar>1994</jaar>
			</track>
			<track speelduur="2:30">
				<titel>Pulling Theeth</titel>
				<nummer>6</nummer>
				<jaar>1994</jaar>
			</track>
			<track speelduur="3:02">
				<titel>Basket Case</titel>
				<nummer>7</nummer>
				<jaar>1994</jaar>
			</track>
			<track speelduur="2:13">
				<titel>She</titel>
				<nummer>8</nummer>
				<jaar>1994</jaar>
			</track>
			<track speelduur="2:37">
				<titel>Sassafras Roots</titel>
				<nummer>9</nummer>
				<jaar>1994</jaar>
			</track>
			<track speelduur="2:57">
				<titel>When I Come Around</titel>
				<nummer>10</nummer>
				<jaar>1994</jaar>
			</track>
		</tracklist>
	</cd>
	<cd speelduur="52:12">
		<cdtitel>Clutchin At Straws</cdtitel>
		<artiest>Marillion</artiest>
		<tracklist>
			<track speelduur="3:35">
				<titel>Hotel Hobbies</titel>
				<nummer>1</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="4:25">
				<titel>Warm Wet cirkles</titel>
				<nummer>2</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="6:00">
				<titel>That Time Of The Night (The Sort Straw)</titel>
				<nummer>3</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="2:47">
				<titel>Going Under</titel>
				<nummer>4</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="3:09">
				<titel>Just For The record</titel>
				<nummer>5</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="6:27">
				<titel>White Russian</titel>
				<nummer>6</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="5:16">
				<titel>Incommunicado</titel>
				<nummer>7</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="4:04">
				<titel>Torch Song</titel>
				<nummer>7</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="4:45">
				<titel>Slainte Mhath</titel>
				<nummer>7</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="5:46">
				<titel>Sugar Mice</titel>
				<nummer>10</nummer>
				<jaar>1987</jaar>
			</track>
		</tracklist>
	</cd>
	<cd speelduur="35:13">
		<cdtitel>The Game</cdtitel>
		<artiest>Queen</artiest>
		<tracklist>
			<track speelduur="3:26">
				<titel>Play The Game</titel>
				<nummer>1</nummer>
				<jaar>1980</jaar>
			</track>
			<track speelduur="4:18">
				<titel>Dragon attack</titel>
				<nummer>2</nummer>
				<jaar>1980</jaar>
			</track>
			<track speelduur="3:32">
				<titel>Another One Bites The Dust</titel>
				<nummer>3</nummer>
				<jaar>1980</jaar>
			</track>
			<track speelduur="2:47">
				<titel>Need Your Loving Tonight</titel>
				<nummer>4</nummer>
				<jaar>1980</jaar>
			</track>
			<track speelduur="2:41">
				<titel>Crazy Little thing Called Love</titel>
				<nummer>5</nummer>
				<jaar>1980</jaar>
			</track>
			<track speelduur="4:32">
				<titel>Rock It</titel>
				<nummer>6</nummer>
				<jaar>1980</jaar>
			</track>
			<track speelduur="3:52">
				<titel>Don't Try Suicide</titel>
				<nummer>7</nummer>
				<jaar>1980</jaar>
			</track>
			<track speelduur="3:32">
				<titel>Sail Away Sweet Sister</titel>
				<nummer>8</nummer>
				<jaar>1980</jaar>
			</track><track speelduur="2:48">
				<titel>Comming Soon</titel>
				<nummer>9</nummer>
				<jaar>1980</jaar>
			</track>
			<track speelduur="3:45">
				<titel>Save Me</titel>
				<nummer>10</nummer>
				<jaar>1980</jaar>
			</track>
		</tracklist>
	</cd>
	<cd speelduur="45:46">
		<cdtitel>Hotel New York</cdtitel>
		<artiest>Anouk</artiest>
		<tracklist>
			<track speelduur="3:30">
				<titel>Girl</titel>
				<nummer>1</nummer>
				<jaar>2004</jaar>
			</track>
			<track speelduur="3:45">
				<titel>Heaven Knows</titel>
				<nummer>2</nummer>
				<jaar>2004</jaar>
			</track>
			<track speelduur="4:20">
				<titel>More Than You Deserve</titel>
				<nummer>3</nummer>
				<jaar>2004</jaar>
			</track>
			<track speelduur="3:32">
				<titel>Fallen Sun</titel>
				<nummer>4</nummer>
				<jaar>2004</jaar>
			</track>
			<track speelduur="3:42">
				<titel>Lost</titel>
				<nummer>5</nummer>
				<jaar>2004</jaar>
			</track>
			<track speelduur="3:33">
				<titel>Alright</titel>
				<nummer>6</nummer>
				<jaar>2004</jaar>
			</track>
			<track speelduur="3:24">
				<titel>Help</titel>
				<nummer>7</nummer>
				<jaar>2004</jaar>
			</track>
			<track speelduur="3:34">
				<titel>Our Own Love</titel>
				<nummer>8</nummer>
				<jaar>2004</jaar>
			</track>
			<track speelduur="3:55">
				<titel>Jerusalem</titel>
				<nummer>9</nummer>
				<jaar>2004</jaar>
			</track>
			<track speelduur="4:02">
				<titel>One World</titel>
				<nummer>10</nummer>
				<jaar>2004</jaar>
			</track>
		</tracklist>
	</cd>
	<cd speelduur="39:13">
		<cdtitel>Alannah Myles</cdtitel>
		<artiest>Alannah Myles</artiest>
		<tracklist>
			<track speelduur="4:37">
				<titel>Still Got This Thing</titel>
				<nummer>1</nummer>
				<jaar>1996</jaar>
			</track>
			<track speelduur="3:40">
				<titel>Love Is</titel>
				<nummer>2</nummer>
				<jaar>1996</jaar>
			</track>
			<track speelduur="4:49">
				<titel>Black Valvet</titel>
				<nummer>3</nummer>
				<jaar>1996</jaar>
			</track>
			<track speelduur="4:02">
				<titel>Rock This Joint</titel>
				<nummer>4</nummer>
				<jaar>1996</jaar>
			</track>
			<track speelduur="4:42">
				<titel>Lover Of Mine</titel>
				<nummer>5</nummer>
				<jaar>1996</jaar>
			</track>
			<track speelduur="3:42">
				<titel>Kick Start My Heart</titel>
				<nummer>6</nummer>
				<jaar>1996</jaar>
			</track>
			<track speelduur="4:13">
				<titel>If You want To</titel>
				<nummer>7</nummer>
				<jaar>1996</jaar>
			</track>
			<track speelduur="3:35">
				<titel>Just One Kiss</titel>
				<nummer>8</nummer>
				<jaar>1996</jaar>
			</track>
			<track speelduur="3:37">
				<titel>Who Loves You</titel>
				<nummer>9</nummer>
				<jaar>1996</jaar>
			</track>
			<track speelduur="2:16">
				<titel>Hury Make Love</titel>
				<nummer>10</nummer>
				<jaar>1996</jaar>
			</track>
		</tracklist>	
	</cd>
	<cd speelduur="44:18">
		<cdtitel>Tango In The Night</cdtitel>
		<artiest>Fleetood Mac</artiest>
		<tracklist>
			<track speelduur="3:40">
				<titel>Big Love</titel>
				<nummer>1</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="3:43">
				<titel>Seven Wonders</titel>
				<nummer>2</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="3:47">
				<titel>Everywhere</titel>
				<nummer>3</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="3:55">
				<titel>Carolinee</titel>
				<nummer>4</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="4:02">
				<titel>Tango In The Night</titel>
				<nummer>5</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="3:10">
				<titel>Mystified</titel>
				<nummer>6</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="3:41">
				<titel>Little Lies</titel>
				<nummer>7</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="4:07">
				<titel>Family Man</titel>
				<nummer>8</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="3:42">
				<titel>Welcome To The Room...Sara</titel>
				<nummer>9</nummer>
				<jaar>1987</jaar>
			</track>
			<track speelduur="4:14">
				<titel>Isn't It Midnight</titel>
				<nummer>10</nummer>
				<jaar>1987</jaar>
			</track>
		</tracklist>
	</cd>
</cdlijst>

<!-- XSL -->
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cd="http://www.cd.nl" exclude-result-prefixes="cd">  <!-- Namespaces
die in het nieuwe document niet nodig zijn, mogen bij het attribuut exclude-result-prefixes worden aangegeven -->
	<xsl:output method="html"/>   <!-- output : definieert output formaat -->
	<xsl:template match="/">  <!-- / verwijst naar het root element -->
		
		<html>
			<head>
				<title>cdlijst</title>
			</head>
			<body style="font-family: arial;">
				
				<h2 style="color:#003300;">CD overzicht:</h2>
				
				<table>
					<tr bgcolor="#003300" style="font-size:16pt; color:#99FF00;">
						<th>artiest</th>
						<th>titel</th>
						<th>speelduur</th>
						<th>jaar</th>
					</tr>
					<xsl:for-each select="/cd:cdlijst/cd:cd">  <!-- LOOP constructie -->
						<xsl:sort select="cd:artiest"/> <!-- Sorteren op artiest -->
						<xsl:variable name="kleur">
							<xsl:choose>   <!-- Combinatie van verschillende tests (met minimaal één when -->
								<xsl:when test="position() mod 2=0">#99FF00</xsl:when>
								<xsl:otherwise>#CCFF66</xsl:otherwise>
							</xsl:choose>
						</xsl:variable>	
						
						<tr bgcolor="{$kleur}">
							<td><xsl:value-of select="./cd:artiest"/></td>  <!-- Waarde ophalen uit het bron document -->
							<td><xsl:value-of select="./cd:cdtitel"/></td>
							<td align="right"><xsl:value-of select="./@speelduur"/></td>  <!-- @ : waarde van het attribuut ophalen -->
							<td align="right"><xsl:value-of select="./cd:tracklist/cd:track[1]/cd:jaar"/></td>
						</tr>
					</xsl:for-each>
				</table>
			</body>
		</html>	
		
	</xsl:template>
</xsl:stylesheet>

<!-- CSS -->
cd{ display:block;
	  margin-bottom :20pt;
	  margin-right: 15 cm;
	  font-family: arial;
	  background-color: #ffffcc; }

cdtitel{ font-size : 20;
	       color:darkblue; }

artiest{ font-size : 20;
		     color :blue; }

tracklist{ text-indent: 1 cm;
			     background-color:#ffff99;
			     display: block;
			     border-right-width:15pt;
			     margin-left:1 cm;
			     margin-right: 5 cm; }

track{ display : list-item;
	     list-style : decimal; }

nummer{ display:none; }
 
jaar{ display :none; }

<!-- XSL -->
<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cd="http://www.cd.nl" exclude-result-prefixes="cd">
	
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
	<xsl:template match="/">   <!-- template : definieert een sjabloon -->
		
		<nummers xmlns="http://www.nummers.nl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.nummers.nl file:///H:/XMLbestanden/nummers.xsd">
			<xsl:for-each select="/cd:cdlijst/cd:cd">
				<xsl:for-each select="./cd:tracklist/cd:track">
					<nummer>
						<titel>
							<xsl:value-of select="./cd:titel"></xsl:value-of>
						</titel>
						<artiest>
							<xsl:value-of select="../../cd:artiest"></xsl:value-of>
						</artiest>
						<jaar>
							<xsl:value-of select="./cd:jaar"></xsl:value-of>
						</jaar>
						<duur>
							<xsl:value-of select="./@speelduur"></xsl:value-of>
						</duur>
					</nummer>
				</xsl:for-each>
			</xsl:for-each>
		</nummers>

	</xsl:template>
</xsl:stylesheet>

<!-- XSL -->
<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:web="http://www.webwinkel.nl" exclude-result-prefixes="web">
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
	<xsl:template match="/">

		<order xmlns="http://www.groothandel.nl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.groothandel.nl file:///H:/XMLbestanden/Groothandel.xsd">
			<contactpersoon>Piet Paulusma</contactpersoon>
			<xsl:for-each select="/web:bestelling/web:product">
				<product>
					<productid>
						<xsl:choose>
							<xsl:when test="web:productid='B-431'">ws-434</xsl:when>
							<xsl:when test="web:productid='B-432'">th-111</xsl:when>
							<xsl:when test="web:productid='B-433'">rg-212</xsl:when>
							<xsl:when test="web:productid='B-434'">wm-212</xsl:when>
							<xsl:otherwise>??-???</xsl:otherwise>
						</xsl:choose>
					</productid>
					<aantal>
						<xsl:value-of select="./web:aantal"/>
					</aantal>
				</product>
			</xsl:for-each>
			<datum>
				<xsl:value-of select="concat(//web:jaar,'-',//web:maand,'-',//web:dag)"/>  <!-- Verschillende waarden aan elkaar koppelen -->
			</datum>
			<klantid>23451</klantid>
		</order>

	</xsl:template>
</xsl:stylesheet>

<!-- XSL -->
<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:web="http://www.webwinkel.nl" exclude-result-prefixes="web">
	<xsl:output method="html" version="4.01" encoding="UTF-8" indent="yes"/>
	<xsl:template match="/">

		<html>
			<header>
				<title>Bestelling</title>
			</header>
			<body>
				<h3>Bestelling van <xsl:value-of select="//web:klantnaam"/></h3>
				<table>
					<tr>
						<th>omschrijving</th>
						<th>productID</th>
						<th>aantal</th>
					</tr>
					<xsl:for-each select="/web:bestelling/web:product">
						<xsl:variable name="kleur">
							<xsl:choose>
								<xsl:when test="position() mod 2=0">#00dddd</xsl:when>
								<xsl:otherwise>#00aaaa</xsl:otherwise>
							</xsl:choose>
						</xsl:variable>	
						
						<tr bgcolor="{$kleur}">
							<td>
								<xsl:value-of select="./web:omschrijving"/>
							</td>
							<td>
								<xsl:value-of select="./web:productid"/>
							</td>
							<td>
								<xsl:value-of select="./web:aantal"/>
							</td>
						</tr>
					</xsl:for-each>
				</table>
				<br></br>
				datum: <xsl:value-of select="concat(//web:jaar,'-',//web:maand,'-',//web:dag)"/>
			</body>
		</html>

	</xsl:template>
</xsl:stylesheet>

<!-- XSD -->
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
	xmlns="http://www.artist.nl" 
	targetNamespace="http://www.artist.nl"
  elementFormDefault="qualified">
	
	<xsd:simpleType name="landen">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="USA"/>
			<xsd:enumeration value="EU"/>
			<xsd:enumeration value="UK"/>
			<xsd:enumeration value="Norway"/>
			<xsd:enumeration value="NL"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="maxlengte30">
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="30"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="maxlengte20">
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="20"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:element name="catalog">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="cd" maxOccurs="unbounded">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="titel" type="maxlengte30"/>
							<xsd:element name="artiest" type="maxlengte30"/>
							<xsd:element name="land" type="landen"/>
							<xsd:element name="uitgever" type="maxlengte20"/>
							<xsd:element name="prijs" type="xsd:double"/>
							<xsd:element name="jaar" type="xsd:int"/>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>

<!-- XSL -->
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:art="http://www.artist.nl" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="html"/>
	<xsl:template match="/">

		<html>
			<body>
				<h2 fontcolor="purple">
					<font color="purple">Mijn CD Collectie</font>
				</h2>
				<table border="1">
					<tr bgcolor="lime">
						<xsl:for-each select="//art:catalog/art:cd[last()]/*">  <!-- * (optioneel): 0 of meer -->
							<th>
								<h3>
									<xsl:value-of select="name()"/>
								</h3>
							</th>
						
						</xsl:for-each>
					</tr>
					
					<xsl:for-each select="art:catalog/art:cd">
						<xsl:sort select="art:artiest"/>
						<xsl:variable name="kleur">
							<xsl:choose>
								<xsl:when test="art:land = 'USA'">orange</xsl:when>
								<xsl:when test="art:land = 'UK'">blue</xsl:when>
								<xsl:when test="art:land = 'EU'">yellow</xsl:when>
								<xsl:when test="art:land = 'Norway'">red</xsl:when>
								<xsl:otherwise>purple</xsl:otherwise>
							</xsl:choose>
						</xsl:variable>
						<tr bgcolor="{$kleur}">
							<xsl:for-each select="./*">
								<td>
									<xsl:value-of select="."/>
								</td>
							</xsl:for-each>
							<!--
							<td><xsl:value-of select="art:title"/></td>
							<td><xsl:value-of select="art:artist"/></td>
							<td><xsl:value-of select="art:land"/></td>
							<td><xsl:value-of select="art:company"/></td>
							<td><xsl:value-of select="art:price"/></td>
							<td><xsl:value-of select="art:year"/></td>	
							-->
						</tr>
					</xsl:for-each>
				</table>
			</body>
		</html>

	</xsl:template>
</xsl:stylesheet>

<!-- XSD -->
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema
	elementFormDefault="qualified"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="
		http://www.w3.org/2001/XMLSchema
		http://www.w3.org/2001/XMLSchema.xsd">
	
	<xsd:simpleType name="meerkeuzevraag">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="A"/>
			<xsd:enumeration value="B"/>
			<xsd:enumeration value="C"/>
			<xsd:enumeration value="D"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:element name="mkvs">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="vraag" type="meerkeuzevraag" minOccurs="1" maxOccurs="15"></xsd:element>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>

<!-- XSD -->
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema
	elementFormDefault="qualified"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="
		http://www.w3.org/2001/XMLSchema
		http://www.w3.org/2001/XMLSchema.xsd">
	
	<xsd:simpleType name="pc">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[1-9][0-9]{3}\s[A-Z]{2}"></xsd:pattern>  <!-- \s : witruimte -->
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="straat">
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="20"></xsd:maxLength>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="getal">
		<xsd:restriction base="xsd:integer">
			<xsd:totalDigits value="4"/>
			</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:element name="adres">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="straat" type="straat"/>
				<xsd:element name="huisnummer" type="getal"/>
				<xsd:element name="postcode" type="pc"/>
				<xsd:element name="plaats" type="xsd:string"/>
			</xsd:sequence>				
		</xsd:complexType>		
	</xsd:element>
		
</xsd:schema>

<!-- XML EMBEDDED DTD -->
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE personen [
<!ELEMENT personen (persoon+)>
<!ELEMENT persoon (#PCDATA)>
<!ATTLIST persoon persid ID #REQUIRED> 
]>

<personen>
<persoon persid="p1">Hans</persoon>
<persoon persid="p2">Anouk</persoon>
<persoon persid="p3">Gert</persoon>
<persoon persid="p4">Kirsten</persoon>
<persoon persid="p5">Anouk</persoon>
</personen>
