preview fixed
authorMart Lubbers <mart@martlubbers.net>
Thu, 9 Oct 2014 07:38:37 +0000 (09:38 +0200)
committerMart Lubbers <mart@martlubbers.net>
Thu, 9 Oct 2014 07:38:37 +0000 (09:38 +0200)
15 files changed:
program/everything/crawler.db
program/everything/crawler.py
program/everything/index.py
program/everything/input_app.py
program/everything/install.sh
program/everything/main.html.t
program/everything/scripts.js
program/everything/xml/dedoelen.rss.xml [moved from program/everything/dedoelen.rss.xml with 99% similarity]
program/everything/xml/paradiso.rss.xml [moved from program/everything/paradiso.rss.xml with 100% similarity]
program/everything/xml/podiuminfo.xml [moved from program/everything/podiuminfo.xml with 100% similarity]
program/everything/xml/scheme.xml [moved from program/everything/scheme.xml with 89% similarity]
program/everything/xml/scheme.xsd [new file with mode: 0644]
program/everything/xml/ticketunlimitid.rss.xml [moved from program/everything/ticketunlimitid.rss.xml with 100% similarity]
program/everything/xml/tivoli.rss.xml [moved from program/everything/tivoli.rss.xml with 100% similarity]
program/everything/xml/xs3p.xsl [new file with mode: 0644]

index b36ee29..0124ebb 100644 (file)
 (dp0
-S'Example_offline'
+S'example_offline'
 p1
 (dp2
-S'name'
+S'website'
 p3
-S'Example_offline'
+S'www.paradiso.nl'
 p4
-sS'url'
+sS'name'
 p5
-S'localhost/py/paradiso.rss.xml'
+S'example_offline'
 p6
-sS'content'
+sS'url'
 p7
-(lp8
-(lp9
-S'zaterdag 31 mei 2014  - Lentekabinet Festival Afterparty   -   Locatie: Tolhuistuin (zaal)'
+S'localhost/py/paradiso.rss.xml'
+p8
+sS'dloc'
+p9
+S'Zaal'
 p10
-aS''
+sS'venue'
 p11
-aa(lp12
-S'<span class="uiWebviewHighlight" style="color: white; background-color: rgb(139, 0, 0);">vrijdag 4 juli 2014</span> <span class="uiWebviewHighlight" style="color: white; background-color: red;">20:30</span> - <span class="uiWebviewHighlight" style="color: white; background-color: green;">The Crimson Projekct</span>   -   Locatie: <span class="uiWebviewHighlight" style="color: white; background-color: blue;">Tolhuistuin (zaal)</span>'
+S'Paradiso'
+p12
+sS'content'
 p13
-aS'Muziek rond King Crimson'
-p14
-aa(lp15
-S'dinsdag 10 juni 2014 20:30 - Het Ultieme Natuurkunde Feestje \xe2\x80\x93 keynote Amanda Gefter'
+(lp14
+(lp15
+S'zaterdag 31 mei 2014  - Lentekabinet Festival Afterparty   -   Locatie: Tolhuistuin (zaal)'
 p16
-ag11
-aa(lp17
-S'dinsdag 12 augustus 2014 21:00 - Kevin Drew - Locatie: Bitterzoet'
-p18
-aS'mede-oprichter Broken Social Scene solo'
+aS''
+p17
+aa(lp18
+S'vrijdag 4 juli 2014 20:30 - The Crimson Projekct   -   Locatie: Tolhuistuin (zaal)'
 p19
-aa(lp20
-S'<span class="uiWebviewHighlight" style="color: white; background-color: rgb(139, 0, 0);">vrijdag 4 juli 2014</span> <span class="uiWebviewHighlight" style="color: white; background-color: red;">22:00</span> - <span class="uiWebviewHighlight" style="color: white; background-color: green;">Palenke Soultribe</span>'
-p21
-aS'Electronische muziek en Afro-Colombiaanse ritmes'
+aS'Muziek rond King Crimson'
+p20
+aa(lp21
+S'dinsdag 10 juni 2014 20:30 - Het Ultieme Natuurkunde Feestje \xe2\x80\x93 keynote Amanda Gefter'
 p22
+ag17
 aa(lp23
-S'maandag 3 november 2014 20:15 - Eefje de Visser: Waterwereldsteden - Locatie: Het Concertgebouw'
+S'dinsdag 12 augustus 2014 21:00 - Kevin Drew - Locatie: Bitterzoet'
 p24
-ag11
-aa(lp25
-S'zaterdag 27 september 2014 20:30 - A Great Big World - Locatie: Tolhuistuin (zaal)'
-p26
-aS'Hitschrijvers uit New York'
+aS'mede-oprichter Broken Social Scene solo'
+p25
+aa(lp26
+S'vrijdag 4 juli 2014 22:00 - Palenke Soultribe'
 p27
-aa(lp28
-S'zaterdag 7 juni 2014 23:00 - Benefietavond Marokkaanse Boot'
-p29
-aS'Van Amsterdam naar Tanger'
+aS'Electronische muziek en Afro-Colombiaanse ritmes'
+p28
+aa(lp29
+S'maandag 3 november 2014 20:15 - Eefje de Visser: Waterwereldsteden - Locatie: Het Concertgebouw'
 p30
+ag17
 aa(lp31
-S'donderdag 13 november 2014 19:30 - Wouter Hamel'
+S'<span class="uiWebviewHighlight" style="color: white; background-color: rgb(139, 0, 0);">zaterdag 27 september 2014</span> <span class="uiWebviewHighlight" style="color: white; background-color: red;">20:30</span> - <span class="uiWebviewHighlight" style="color: white; background-color: green;">A Great Big World</span> - Locatie: <span class="uiWebviewHighlight" style="color: white; background-color: blue;">Tolhuistuin (zaal)</span>'
 p32
-aS'Sprankelende jazzy pop'
+aS'Hitschrijvers uit New York'
 p33
 aa(lp34
-S'vrijdag 13 juni 2014 00:00 - Legends'
+S'zaterdag 7 juni 2014 23:00 - Benefietavond Marokkaanse Boot'
 p35
-ag11
-aasS'headers'
+aS'Van Amsterdam naar Tanger'
 p36
-(lp37
-sS'summarydawg'
+aa(lp37
+S'donderdag 13 november 2014 19:30 - Wouter Hamel'
 p38
-(lp39
+aS'Sprankelende jazzy pop'
+p39
+aa(lp40
+S'<span class="uiWebviewHighlight" style="color: white; background-color: rgb(139, 0, 0);">vrijdag 13 juni 2014</span> <span class="uiWebviewHighlight" style="color: white; background-color: red;">00:00</span> - <span class="uiWebviewHighlight" style="color: white; background-color: green;">Legends</span>'
+p41
+ag17
+aasS'headers'
+p42
+(lp43
+sS'summarydawg'
+p44
+(lp45
 sS'titledawg'
-p40
-(lp41
+p46
+(lp47
+S'\x01 \x02 - \x03 - Locatie: \x04'
+p48
+aS'\x01 \x02 - \x03'
+p49
+asS'freq'
+p50
+S'1d'
+p51
+sS'adress'
+p52
+S'Weteringschans 6-8, 1017 SG Amsterdam'
+p53
+ssS'example_online'
+p54
+(dp55
+S'website'
+p56
+S'www.paradiso.nl'
+p57
+sS'name'
+p58
+S'example_online'
+p59
+sS'url'
+p60
+S'http://www.paradiso.nl/rss.xml'
+p61
+sS'dloc'
+p62
+S'Zaal'
+p63
+sS'venue'
+p64
+S'Paradiso'
+p65
+sS'content'
+p66
+(lp67
+(lp68
+S'<span class="uiWebviewHighlight" style="color: white; background-color: rgb(139, 0, 0);">woensdag 8 april 2015</span> <span class="uiWebviewHighlight" style="color: white; background-color: red;">20:30</span> - <span class="uiWebviewHighlight" style="color: white; background-color: green;">Hanggai</span>   -   Locatie: <span class="uiWebviewHighlight" style="color: white; background-color: blue;">Paradiso Noord, Tolhuistuin</span>'
+p69
+ag17
+aa(lp70
+S'dinsdag 20 januari 2015 20:30 - Cymbals Eat Guitars   -   Locatie: Paradiso Noord, Tolhuistuin'
+p71
+ag17
+aa(lp72
+S'zaterdag 25 oktober 2014 12:30 - Sonic Acts presenteert: A Day of Noise - Locatie: Temporary Art Centre, Eindhoven'
+p73
+ag17
+aa(lp74
+S'zondag 19 oktober 2014 11:00 - Sonic Acts en Stedelijk Museum presenteren: Alvin Lucier masterclass - Locatie: Stedelijk Museum Amsterdam'
+p75
+ag17
+aa(lp76
+S'<span class="uiWebviewHighlight" style="color: white; background-color: rgb(139, 0, 0);">zaterdag 6 december 2014</span> <span class="uiWebviewHighlight" style="color: white; background-color: red;">22:00</span> - <span class="uiWebviewHighlight" style="color: white; background-color: green;">OCD: Moosh &amp; Twist</span>'
+p77
+ag17
+aa(lp78
+S'vrijdag 21 november 2014 00:00 - Bassline'
+p79
+ag17
+aa(lp80
+S'donderdag 20 november 2014 23:30 - Noodlanding!'
+p81
+aS'Dansnacht, alternatieve hits'
+p82
+aa(lp83
+S'donderdag 13 november 2014 23:30 - Noodlanding!'
+p84
+aS'Dansnacht, alternatieve hits'
+p85
+aa(lp86
+S'donderdag 8 januari 2015 19:00 - De Wilde Schoonzonen: Lieve Bertha, Me and Mr Jansen en Rogier Pelgrim'
+p87
+ag17
+aa(lp88
+S'donderdag 6 november 2014 22:00 - Scoop'
+p89
+aS"Paradiso's nieuwe Amsterdamse band-avond"
+p90
+aasS'headers'
+p91
+(lp92
+sS'summarydawg'
+p93
+(lp94
+sS'titledawg'
+p95
+(lp96
 S'\x01 \x02 - \x03   -   Locatie: \x04'
-p42
+p97
 aS'\x01 \x02 - \x03'
-p43
-ass.
\ No newline at end of file
+p98
+asS'freq'
+p99
+S'1d'
+p100
+sS'adress'
+p101
+S'Weteringschans 6-8, 1017 SG Amsterdam'
+p102
+ss.
\ No newline at end of file
index ae12bef..35d7154 100644 (file)
@@ -51,6 +51,8 @@ class Crawler():
         if d['name'] in self.entries and False:
             raise Exception('That name is already present')
         else:
+            if 'freq' not in d:
+                d['freq'] = '1d'
             self.entries[d['name']] = d
 
     def write(self, path='/var/www/py/crawler.db'):
@@ -180,15 +182,26 @@ class Crawler():
         return now - last_run >= time_wait
 
     def full_run(self, name):
+        log = ''
         if name not in self.entries:
-            return []
+            log += 'name not in the entries...<br/>'
+            return [], log
         results = []
         entry = self.entries[name]
-        feed = feedparser.parse('http://' + entry['url'])
-        for i in feed.entries:
-            results.append(
-                (i, self.test_entry(name, i['title'], i['summary'])))
-        return results
+        log += 'entry loaded\n<br/>'
+        if not (entry['url'].startswith('http://') or
+                entry['url'].startswith('https://')):
+            entry['url'] = 'http://' + entry['url']
+        feed = feedparser.parse(entry['url'])
+        log += 'entries parsed: {}\n<br/>'.format(len(feed.entries))
+        for enum, i in enumerate(feed.entries):
+            log += 'going to test entry: {}<br/>'.format(enum)
+            te = self.test_entry(name, i['title'], i['summary'])
+            results.append((i, te))
+            log += 'appending result: {}...}}\n<br/>'.format(str(te)[:20])
+            log += 'found fields: {}<br/>'.format(i.keys())
+        log += 'returning\n<br>'
+        return results, log
 
     def run_entry(self, name):
         edict = self.entries[name]
@@ -204,13 +217,15 @@ class Crawler():
             results = self.test_entry(name, i['title'], i['summary'])
             edict['db'][hashvalue] = {
                 'results': results,
-                'raw': (i['title'], i['summary'])
+                'raw': i
             }
-            #  print edict['db'][hashvalue]['raw']
-            #  print edict['db'][hashvalue]['results']
-            #  print hashvalue
             raw_input('Press enter for the next one')
 
+    def generate_xml(self):
+        for name, entry in self.entries.iteritems():
+            if 'db' in entry:
+                print entry['db']
+
 
 def main(argv):
     if len(argv) == 5 and argv[1] == 'test':
@@ -235,6 +250,9 @@ def main(argv):
         name, key, value = argv[2:]
         cr.entries[name][key] = value
         cr.write()
+    elif len(argv) == 2 and argv[1] == 'xml':
+        cr = Crawler()
+        print cr.generate_xml()
     elif len(argv) >= 2 and argv[1] == 'run':
         args = argv[2:]
         force = True if '-f' in args else False
@@ -268,7 +286,9 @@ def main(argv):
                '\t{0} export FILE\n'
                '\t{0} list\n'
                '\t{0} run -f {{item1 item2 ...|all}}\n'
+               '\t{0} xml\n'
                '\t{0} test crawlername title summary\n').format(argv[0])
 
+
 if __name__ == '__main__':
     main(sys.argv)
index 287730c..a74dec6 100644 (file)
@@ -74,16 +74,20 @@ def crawler_test(req, args, apok):
         if 'name' not in args or str(args['name']) not in cr.entries:
             req.write('Name not in the crawler...<br/>')
         else:
-            data = cr.full_run(args['name'])
+            data, log = cr.full_run(args['name'])
             req.write('<b>Results: </b>{}/{} got results<br/>\n'.format(
                 len(filter(None, [x[1] for x in data])), len(data)))
+            req.write('log: <div style="overflow:auto;height:5em;width:25em;bo'
+                      'rder:1px solid">{}</div>'.format(log))
             for entry, dc in data:
                 req.write(u"""<br/><hr style="background:#000000; border:1; height:2px" />
 <b>Entry: </b>
-<div style="height:2em;width:70em;border:1px solid#ccc;font-family:courier;overflow:auto;">
+<div style="height:2em;width:70em;border:1px solid#ccc;font-family:courier;ove\
+rflow:auto;">
     {title}
 </div>
-<div style="height:2em;width:70em;border:1px solid#ccc;font-family:courier;overflow:auto;">
+<div style="height:2em;width:70em;border:1px solid#ccc;font-family:courier;ove\
+rflow:auto;">
 {summary}
 </div><br/>
 """.format(**entry).encode('ascii', 'xmlcharrefreplace'))
index 8dd916f..c2685a5 100644 (file)
@@ -140,8 +140,9 @@ def to_dot(q0):
     print '}'
 
 
-def data_main(d, force=False):
-    d = {k: str(v) for k, v in dict(d).iteritems()}
+def data_main(d):
+    write = d['write']
+    d = {k: str(v) for k, v in dict(d).iteritems() if k != 'write'}
     structure_data(d)
     d['matchdata'] = []
     for line in filter(None, d['content']):
@@ -187,9 +188,11 @@ def handler(req):
                 req_pre_pos(req)
             elif req.uri.split('/')[-1] == 'preview.py':
                 args = util.FieldStorage(req)
+                cr = crawler.Crawler()
                 listing, crawl = data_main(args)
-                return index.crawler_test(req, {'name': args['name']},
-                                          apache.OK)
+                returncode = index.crawler_test(req, args, apache.OK)
+                cr.write()
+                return returncode
         else:
             req.write('Unknown case')
         return apache.OK
index 741094d..c710981 100755 (executable)
@@ -1,4 +1,4 @@
 sudo rm -rv /var/www/py/*
-sudo cp -v * /var/www/py/
+sudo cp -Rv * /var/www/py/
 sudo chown -vR mart:www-data /var/www/py
 sudo chmod -vR 770 /var/www/py
index 87c0fba..4ee9967 100644 (file)
@@ -30,7 +30,7 @@
                        <td>
                                <form method="get" action="./crawler_new.py">
                                        <table>
-                                               <tr><td><p>RSS URL:</td><td><input type="text" name="url" value="localhost/py/paradiso.rss.xml"></td></tr>
+                                               <tr><td><p>RSS URL:</td><td><input type="text" name="url" value="localhost/py/xml/paradiso.rss.xml"></td></tr>
                                                <tr><td>RSS Name:</td><td><input type="text" name="name"></td></tr>
                                                <tr><td><input type="submit" value="Submit"></p></td></tr>
                                        </table>
index 98c00df..b272eb8 100644 (file)
@@ -118,6 +118,11 @@ function post_all(num) {
     }
     var params = "content="+encodeURIComponent(document.getElementById("content-table").innerHTML);
     params += "&name="+encodeURIComponent(document.getElementById("rssname").innerHTML);
+    if(num == 1){
+        params += "&write=True";
+    } else {
+        params += "&write=False";
+    }
     var indatarray = document.getElementsByClassName('indat')
     for (var i = 0; i<indatarray.length; i++) {
         params += "&" + indatarray[i].name + "=" + indatarray[i].value;
similarity index 99%
rename from program/everything/dedoelen.rss.xml
rename to program/everything/xml/dedoelen.rss.xml
index f9e0e72..6cf5a4e 100644 (file)
@@ -1,4 +1,3 @@
-
 <?xml version="1.0" encoding="UTF-8"?>
 <rss version="2.0"><channel><title><![CDATA[de Doelen | Voorstellingen]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/]]></link><description><![CDATA[Alle voorstellingen voor de rest van het seizoen in de Doelen]]></description><copyright>2014</copyright><language>nl</language><pubDate>Fri, 08 Aug 2014 08:53:21 +0200</pubDate><item><title><![CDATA[za 16 aug, 20.15 uur - Elvis &amp; More 2014 - René Shuman &amp; Angel-Eye]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5019/Elvis_More_2014/Rene_Shuman_Angel_Eye/]]></link><description><![CDATA[<b>Ode aan 60 jaar rock-and-roll door René Shuman & Angel-Eye</b><br />In 1954 werd de song That’s allright mama door Elvis Presley, The King of Rock and Roll, opgenomen en uitgebracht. Het duo René Shuman & Angel-Eye houdt zijn muziek in ere met hun theatershows, tv-specials en opnamen. Ze trekken met hun showband volle zalen met hun Rock and Roll-vertolkingen. En jaarlijks geeft het duo een bijzonder concert op 16 augustus, de sterfdag van Elvis.<br /><br />René: ‘Dit jaar zal ons Elvis & More-concert plaatsvinden in de Doelen, de grootste klassieke concertzaal van Nederland met een prachtige akoestiek. We willen onze fans trakteren op een energieke en mooie show met subliem geluid en comfortabele zitplaatsen. Een hele avond genieten van 60 jaar Rock and Roll-geschiedenis!’<br/><br/><ul><li><a target="_blank" href="http://www.elvisandmore.com">www.elvisandmore.com</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7377_07.jpg" length="4459" type="image/jpeg"/></item><item><title><![CDATA[vr 05 sep, 20.00 uur - Night of Ziryab - Amsterdams Andalusisch Orkest i.s.m. Orchestre Temsamani (Tetuan)]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5301/Night_of_Ziryab/Amsterdams_Andalusisch_Orkest_i_s_m_Orchestre_Temsamani_Tetuan_/]]></link><description><![CDATA[]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8299_07.jpg" length="2866" type="image/jpeg"/></item><item><title><![CDATA[vr 12 sep, 13.00 uur - Rotterdam Philharmonic Gergiev Festival - Locatietheater | Niemandsland (I)]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5191/Rotterdam_Philharmonic_Gergiev_Festival/Locatietheater_Niemandsland_I_/]]></link><description><![CDATA[Rode draad door het Gergiev Festival vormt de muziektheatervoorstelling ‘Niemandsland’ van regisseur Serge van Veggel. Een veteraan haalt herinneringen op aan zijn oorlogsverleden, dat in donkere kelders opeens weer heel dichtbij lijkt te komen. Hij symboliseert de ‘Onbekende Soldaat’ in een collage van originele dagboekfragmenten en gedichten, liedjes of soms absurde oorlogsverhalen. Muziek komt van het theatrale Ragazze Kwartet: gaandeweg zal de sublieme eenheid van het klassieke strijkkwartet door de toenemende chaos steeds meer verbrokkelen.<br /><br />‘...hoe je met weinig middelen schitterende scènes kunt bouwen’ - NRC Handelsblad over het locatietheater van regisseur Serge van Veggel.<br /><br />Deze voorstelling wordt georganiseerd in samenwerking met het muziektheatergezelschap OPERA2DAY.<br /><br />Locatietheater met als startpunt de Eduard Flipse Zaal. De voorstelling bestaat uit twee gedeelten. Het tweede gedeelte is niet goed te bezoeken voor hen die slecht ter been zijn of voor rolstoelgebruikers.<br/><br/><ul><li><a target="_blank" href="http://www.gergievfestival.nl">www.gergievfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7959_07.jpg" length="4056" type="image/jpeg"/></item><item><title><![CDATA[vr 12 sep, 14.30 uur - Rotterdam Philharmonic Gergiev Festival - Locatietheater | Niemandsland (II)]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5193/Rotterdam_Philharmonic_Gergiev_Festival/Locatietheater_Niemandsland_II_/]]></link><description><![CDATA[Rode draad door het Gergiev Festival vormt de muziektheatervoorstelling ‘Niemandsland’ van regisseur Serge van Veggel. Een veteraan haalt herinneringen op aan zijn oorlogsverleden, dat in donkere kelders opeens weer heel dichtbij lijkt te komen. Hij symboliseert de ‘Onbekende Soldaat’ in een collage van originele dagboekfragmenten en gedichten, liedjes of soms absurde oorlogsverhalen. Muziek komt van het theatrale Ragazze Kwartet: gaandeweg zal de sublieme eenheid van het klassieke strijkkwartet door de toenemende chaos steeds meer verbrokkelen.<br /><br />‘...hoe je met weinig middelen schitterende scènes kunt bouwen’ - NRC Handelsblad over het locatietheater van regisseur Serge van Veggel.<br /><br />Deze voorstelling wordt georganiseerd in samenwerking met het muziektheatergezelschap OPERA2DAY.<br /><br />Locatietheater met als startpunt de Eduard Flipse Zaal. De voorstelling bestaat uit twee gedeelten. Het tweede gedeelte is niet goed te bezoeken voor hen die slecht ter been zijn of voor rolstoelgebruikers.<br/><br/><ul><li><a target="_blank" href="http://www.gergievfestival.nl">www.gergievfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7963_07.jpg" length="4056" type="image/jpeg"/></item><item><title><![CDATA[vr 12 sep, 16.00 uur - Rotterdam Philharmonic Gergiev Festival - Ensemble Calliopée | Les musiciennes dans la Grande Guerre]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5195/Rotterdam_Philharmonic_Gergiev_Festival/Ensemble_Calliopee_Les_musiciennes_dans_la_Grande_Guerre/]]></link><description><![CDATA[Vrouwen speelden tijdens de oorlog een grote rol aan het thuisfront: de oorlog bleek ook een onverwachte emancipatieslag voor de achterblijvers. Ensemble Calliopée, gespecialiseerd in repertoire uit het begin van de 20ste eeuw, verkent de rol van (Franse) vrouwen in de muziek uit die tijd.<br /><br />‘De voortreffelijke solisten van Ensemble Calliopée brengen gerechtigheid voor deze onbekende componist, en ontrukken hem aan de vergetelheid met hun precisie, hun klankkwaliteit en hun hechte samenspel’ - Classica over de muziek van Durosoir, gespeeld door Ensemble Calliopée.<br/><br/><ul><li><a target="_blank" href="http://www.gergievfestival.nl">www.gergievfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7967_07.jpg" length="4056" type="image/jpeg"/></item><item><title><![CDATA[vr 12 sep, 19.00 uur - Rotterdam Philharmonic Gergiev Festival - Lezing | Het Westfront]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5197/Rotterdam_Philharmonic_Gergiev_Festival/Lezing_Het_Westfront/]]></link><description><![CDATA[Inleiding op het symfonisch concert door historicus en publicist Paul Knevel.<br/><br/><ul><li><a target="_blank" href="http://www.gergievfestival.nl">www.gergievfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7903_07.jpg" length="4056" type="image/jpeg"/></item><item><title><![CDATA[vr 12 sep, 20.15 uur - Rotterdam Philharmonic Gergiev Festival - Openingsconcert Rotterdams Philharmonisch | Het Westfront]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5199/Rotterdam_Philharmonic_Gergiev_Festival/Openingsconcert_Rotterdams_Philharmonisch_Het_Westfront/]]></link><description><![CDATA[Is Prokofjevs verblindende Scythische Suite (1915) een luidruchtige vorm van escapisme of een symbolisch commentaar op het oorlogsgeweld? Tijdens de oorlog dook Bartók onder in zijn – zeer welluidende – balletpantomime De houten prins. Ravel, die het Westfront van nabij meemaakte, schreef zijn duistere Pianoconcert voor de linkerhand voor pianist Paul Wittgenstein die in de oorlog zijn rechterarm verloor.<br /><br />‘Raffinement, hartstocht, verzengende gloed en kleurrijke licht-effecten... een uitvoering waarin de absolute top werd bereikt’ - Trouw over Prokofjevs Scythische Suite door het Rotterdams Philharmonisch Orkest met Valery Gergiev<br /><br />Let op! Houdt u bij het kiezen van uw stoel rekening met het volgende:<br />Op de orgelring heeft u geen zicht op de korte filmfragmenten die tijdens changementen en/of voorafgaand aan het concert worden vertoond. Op de podiumring links en rechts heeft u mogelijk slecht zicht op de korte filmfragmenten die tijdens changementen en/of voorafgaand aan het concert worden vertoond.<br/><br/><ul><li><a target="_blank" href="http://www.gergievfestival.nl">www.gergievfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7907_07.jpg" length="4056" type="image/jpeg"/></item><item><title><![CDATA[vr 12 sep, 23.00 uur - Rotterdam Philharmonic Gergiev Festival - Laurens Collegium Rotterdam | Eeuwig oorlogsleed]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5201/Rotterdam_Philharmonic_Gergiev_Festival/Laurens_Collegium_Rotterdam_Eeuwig_oorlogsleed/]]></link><description><![CDATA[Na het orkestrale geweld volgt een introvert koorprogramma op de late avond. Muzikale meditaties betreuren het eeuwig oorlogsleed, het concert wordt afgesloten met een indringende hartekreet: Vrede op aarde! <br /><br />‘Om tot in het oneindige naar te luisteren!’ - Elsevier over het Laurens Collegium Rotterdam<br/><br/><ul><li><a target="_blank" href="http://www.gergievfestival.nl">www.gergievfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7911_07.jpg" length="4056" type="image/jpeg"/></item><item><title><![CDATA[za 13 sep, 11.00 uur - Rotterdam Philharmonic Gergiev Festival - Locatietheater | Niemandsland (III)]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5203/Rotterdam_Philharmonic_Gergiev_Festival/Locatietheater_Niemandsland_III_/]]></link><description><![CDATA[Rode draad door het Gergiev Festival vormt de muziektheatervoorstelling ‘Niemandsland’ van regisseur Serge van Veggel. Een veteraan haalt herinneringen op aan zijn oorlogsverleden, dat in donkere kelders opeens weer heel dichtbij lijkt te komen. Hij symboliseert de ‘Onbekende Soldaat’ in een collage van originele dagboekfragmenten en gedichten, liedjes of soms absurde oorlogsverhalen. Muziek komt van het theatrale Ragazze Kwartet: gaandeweg zal de sublieme eenheid van het klassieke strijkkwartet door de toenemende chaos steeds meer verbrokkelen.<br /><br />‘...hoe je met weinig middelen schitterende scènes kunt bouwen’ - NRC Handelsblad over het locatietheater van regisseur Serge van Veggel.<br /><br />Deze voorstelling wordt georganiseerd in samenwerking met het muziektheatergezelschap OPERA2DAY.<br /><br />Locatietheater met als startpunt de Eduard Flipse Zaal. De voorstelling bestaat uit twee gedeelten. Het tweede gedeelte is niet goed te bezoeken voor hen die slecht ter been zijn of voor rolstoelgebruikers.<br/><br/><ul><li><a target="_blank" href="http://www.gergievfestival.nl">www.gergievfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7915_07.jpg" length="4056" type="image/jpeg"/></item><item><title><![CDATA[za 13 sep, 12.30 uur - Rotterdam Philharmonic Gergiev Festival - Locatietheater | Niemandsland (IV)]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5205/Rotterdam_Philharmonic_Gergiev_Festival/Locatietheater_Niemandsland_IV_/]]></link><description><![CDATA[Rode draad door het Gergiev Festival vormt de muziektheatervoorstelling ‘Niemandsland’ van regisseur Serge van Veggel. Een veteraan haalt herinneringen op aan zijn oorlogsverleden, dat in donkere kelders opeens weer heel dichtbij lijkt te komen. Hij symboliseert de ‘Onbekende Soldaat’ in een collage van originele dagboekfragmenten en gedichten, liedjes of soms absurde oorlogsverhalen. Muziek komt van het theatrale Ragazze Kwartet: gaandeweg zal de sublieme eenheid van het klassieke strijkkwartet door de toenemende chaos steeds meer verbrokkelen.<br /><br />‘...hoe je met weinig middelen schitterende scènes kunt bouwen’ - NRC Handelsblad over het locatietheater van regisseur Serge van Veggel.<br /><br />Deze voorstelling wordt georganiseerd in samenwerking met het muziektheatergezelschap OPERA2DAY.<br /><br />Locatietheater met als startpunt de Eduard Flipse Zaal. De voorstelling bestaat uit twee gedeelten. Het tweede gedeelte is niet goed te bezoeken voor hen die slecht ter been zijn of voor rolstoelgebruikers.<br/><br/><ul><li><a target="_blank" href="http://www.gergievfestival.nl">www.gergievfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7919_07.jpg" length="4056" type="image/jpeg"/></item><item><title><![CDATA[za 13 sep, 14.30 uur - Rotterdam Philharmonic Gergiev Festival - Locatietheater | Niemandsland (V)]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5207/Rotterdam_Philharmonic_Gergiev_Festival/Locatietheater_Niemandsland_V_/]]></link><description><![CDATA[Rode draad door het Gergiev Festival vormt de muziektheatervoorstelling ‘Niemandsland’ van regisseur Serge van Veggel. Een veteraan haalt herinneringen op aan zijn oorlogsverleden, dat in donkere kelders opeens weer heel dichtbij lijkt te komen. Hij symboliseert de ‘Onbekende Soldaat’ in een collage van originele dagboekfragmenten en gedichten, liedjes of soms absurde oorlogsverhalen. Muziek komt van het theatrale Ragazze Kwartet: gaandeweg zal de sublieme eenheid van het klassieke strijkkwartet door de toenemende chaos steeds meer verbrokkelen.<br /><br />‘...hoe je met weinig middelen schitterende scènes kunt bouwen’ - NRC Handelsblad over het locatietheater van regisseur Serge van Veggel.<br /><br />Deze voorstelling wordt georganiseerd in samenwerking met het muziektheatergezelschap OPERA2DAY.<br /><br />Locatietheater met als startpunt de Eduard Flipse Zaal. De voorstelling bestaat uit twee gedeelten. Het tweede gedeelte is niet goed te bezoeken voor hen die slecht ter been zijn of voor rolstoelgebruikers.<br/><br/><ul><li><a target="_blank" href="http://www.gergievfestival.nl">www.gergievfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7923_07.jpg" length="4056" type="image/jpeg"/></item><item><title><![CDATA[za 13 sep, 16.00 uur - Rotterdam Philharmonic Gergiev Festival - Pianorecital Yeol Eum Son | De wind door de ruïnes]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5209/Rotterdam_Philharmonic_Gergiev_Festival/Pianorecital_Yeol_Eum_Son_De_wind_door_de_ruines/]]></link><description><![CDATA[Dit jaar is Yeol Eum Son de grote belofte van het Gergiev Festival: zij won prijzen in het Tsjaikovski Concours waar Valery Gergiev juryvoorzitter was. Na de openingsavond keert zij deze tweede festivaldag terug in een recital rond de Eerste Wereldoorlog. Ibert schreef zijn Le vent dans les ruines na de destructie van de kathedraal van Reims. Beethoven werd tijdens de oorlog als Duits propagandamiddel ingezet. Ravel schreef Le tombeau de Couperin als in memoriam aan gevallen vrienden.<br /><br />‘Poise and lyricism... an impressive, sparkling technique and a restrained, silky touch’ - Seattle Times over Yeol Eum Son<br/><br/><ul><li><a target="_blank" href="http://www.gergievfestival.nl">www.gergievfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7927_07.jpg" length="4056" type="image/jpeg"/></item><item><title><![CDATA[za 13 sep, 17.00 uur - 24 uur Cultuur - start cultureel seizoen]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5297/24_uur_Cultuur/start_cultureel_seizoen/]]></link><description><![CDATA[Rotterdam trapt op zaterdag 13 september 2014 het nieuwe culturele seizoen af met het festival 24 uur cultuur. Bezoekers kunnen vanaf 17.00 uur een etmaal lang genieten van verrassende voorproefjes, premières, kijkjes achter de schermen, workshops en bijzondere projecten op het gebied van theater, dans, beeldende kunst, muziek, film, architectuur en design.<br /><br />Op 1 augustus 2014 staat de programmering online op <a target=_blank href="http://www.24uurcultuur.nl/"><b>24uurcultuur.nl</b></a>.<br/><br/><ul><li><a target="_blank" href="http://www.24uurcultuur.nl">www.24uurcultuur.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8289_07.jpg" length="5000" type="image/jpeg"/></item><item><title><![CDATA[za 13 sep, 19.00 uur - Rotterdam Philharmonic Gergiev Festival - Lezing | Het Oostfront]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5211/Rotterdam_Philharmonic_Gergiev_Festival/Lezing_Het_Oostfront/]]></link><description><![CDATA[Inleiding op het symfonisch concert door historicus en publicist Paul Knevel.<br/><br/><ul><li><a target="_blank" href="http://www.gergievfestival.nl">www.gergievfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7931_07.jpg" length="4056" type="image/jpeg"/></item><item><title><![CDATA[za 13 sep, 20.15 uur - Rotterdam Philharmonic Gergiev Festival - Rotterdams Philharmonisch | Het Oostfront]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5213/Rotterdam_Philharmonic_Gergiev_Festival/Rotterdams_Philharmonisch_Het_Oostfront/]]></link><description><![CDATA[Janácek schreef het explosieve Taras Bulba in de Eerste Wereldoorlog als ode aan Rusland. Nikolaj Mjaskovski raakte als Russische soldaat aan het Oostfront gewond; niet lang daarna begon hij aan zijn Vierde Symfonie. Het is de eerste keer dat Gergiev een symfonie van Mjaskovski dirigeert. Lisa Batiashvili is de topsoliste in werk van Prokofjev.<br /><br />‘A plush, shimmering, beautifully focused sound; impeccable intonation; rhythmic integrity; a winning combination of elegance and impetuosity’ - New York Times over Lisa Batiashvili<br /><br />Let op! Houdt u bij het kiezen van uw stoel rekening met het volgende:<br />Op de orgelring heeft u geen zicht op de korte filmfragmenten die tijdens changementen en/of voorafgaand aan het concert worden vertoond. Op de podiumring links en rechts heeft u mogelijk slecht zicht op de korte filmfragmenten die tijdens changementen en/of voorafgaand aan het concert worden vertoond.<br/><br/><ul><li><a target="_blank" href="http://www.gergievfestival.nl">www.gergievfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7935_07.jpg" length="4056" type="image/jpeg"/></item><item><title><![CDATA[zo 14 sep, 00.00 uur - 24 uur Cultuur - start cultureel seizoen]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5299/24_uur_Cultuur/start_cultureel_seizoen/]]></link><description><![CDATA[Rotterdam trapt op zaterdag 13 september 2014 het nieuwe culturele seizoen af met het festival 24 uur cultuur. Bezoekers kunnen vanaf 17.00 uur een etmaal lang genieten van verrassende voorproefjes, premières, kijkjes achter de schermen, workshops en bijzondere projecten op het gebied van theater, dans, beeldende kunst, muziek, film, architectuur en design.<br /><br />Op 1 augustus 2014 staat de programmering online op <a target=_blank href="http://www.24uurcultuur.nl/"><b>24uurcultuur.nl</b></a>.<br/><br/><ul><li><a target="_blank" href="http://www.24uurcultuur.nl">www.24uurcultuur.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8291_07.jpg" length="5000" type="image/jpeg"/></item><item><title><![CDATA[zo 14 sep, 11.15 uur - Rotterdam Philharmonic Gergiev Festival - Kindervoorstelling | Het verhaal van de soldaat]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5215/Rotterdam_Philharmonic_Gergiev_Festival/Kindervoorstelling_Het_verhaal_van_de_soldaat/]]></link><description><![CDATA[Wat doet oorlog met de ziel? Die vraag stelt Het Verhaal van de Soldaat, een nieuwe hedendaagse voorstelling bij de muziek van de beroemde Suite l’Histoire du soldat van Igor Stravinsky (1920). Het sprookje voor de hele familie wordt mét humor en veel muziek gebracht door een acteur en musici van het Domestica Ensemble (musici van het Rotterdams Philharmonisch Orkest). Voor het zingen van een nieuw lied worden de kinderen zelf uitgenodigd.<br/><br/><ul><li><a target="_blank" href="http://www.gergievfestival.nl">www.gergievfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7939_07.jpg" length="4056" type="image/jpeg"/></item><item><title><![CDATA[zo 14 sep, 13.00 uur - Rotterdam Philharmonic Gergiev Festival - EnsembleCaméléon | De IJzerbrigade]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5217/Rotterdam_Philharmonic_Gergiev_Festival/EnsembleCameleon_De_IJzerbrigade/]]></link><description><![CDATA[Floris Mijnders, solocellist van het Rotterdams Philharmonisch Orkest, maakt deel uit van EnsembleCaméléon. Deze middag spelen de leden broeierig werk van de helaas onbekend gebleven, want jong gesneuvelde, Rudi Stephan. Een luchtig intermezzo is marsmuziek van Schönberg, geschreven in militaire dienst. Metamorphosen van Richard Strauss, geschreven na twee Wereldoorlogen, is een treurzang op de verwoeste cultuur.<br /><br />‘Vol overgave... vlammend, virtuoos’ - NRC Handelsblad over EnsembleCaméléon<br/><br/><ul><li><a target="_blank" href="http://www.gergievfestival.nl">www.gergievfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7943_07.jpg" length="4056" type="image/jpeg"/></item><item><title><![CDATA[zo 14 sep, 15.00 uur - Rotterdam Philharmonic Gergiev Festival - Lezing | Revolutie]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5219/Rotterdam_Philharmonic_Gergiev_Festival/Lezing_Revolutie/]]></link><description><![CDATA[Inleiding op het symfonisch concert door historicus en publicist Paul Knevel.<br/><br/><ul><li><a target="_blank" href="http://www.gergievfestival.nl">www.gergievfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7947_07.jpg" length="4056" type="image/jpeg"/></item><item><title><![CDATA[zo 14 sep, 16.00 uur - Rotterdam Philharmonic Gergiev Festival - Orkest van het Mariinsky Theater | Revolutie]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5221/Rotterdam_Philharmonic_Gergiev_Festival/Orkest_van_het_Mariinsky_Theater_Revolutie/]]></link><description><![CDATA[Hoe indringend de trauma’s van de oorlog zijn, blijkt duidelijk uit de opera Wozzeck van Alban Berg, begonnen in de oorlog: hier vermoordt een soldaat zijn vrouw. De stem van die vrouw wordt vanmiddag verklankt door specialiste Angela Denoke. In Rusland culmineerde de Eerste Wereldoorlog in de revoluties van 1917. Sjostakovitsj’ Twaalfde Symfonie is gewijd aan die grote gebeurtenissen. Het Orkest van het Mariinsky Theater blinkt zowel uit in opera als in Sjostakovitsj, dit programma is de leden dan ook op het lijf geschreven.<br /><br />‘The German soprano Angela Denoke was riveting as Marie, singing with cool, luminous tone and poignancy’ - New York Times over Angela Denoke in Wozzeck van Alban Berg<br /><br />Let op! Houdt u bij het kiezen van uw stoel rekening met het volgende:<br />Op de orgelring heeft u geen zicht op de boventiteling en op de korte filmfragmenten die tijdens changementen en/of voorafgaand aan het concert worden vertoond. Op de podiumring links en rechts heeft u mogelijk slecht zicht op de boventiteling en op de korte filmfragmenten die tijdens changementen en/of voorafgaand aan het concert worden vertoond.<br/><br/><ul><li><a target="_blank" href="http://www.gergievfestival.nl">www.gergievfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7951_07.jpg" length="4056" type="image/jpeg"/></item><item><title><![CDATA[zo 14 sep, 20.15 uur - Rotterdam Philharmonic Gergiev Festival - Kronos Quartet | Beyond Zero: 1914-1918]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5223/Rotterdam_Philharmonic_Gergiev_Festival/Kronos_Quartet_Beyond_Zero_1914_1918/]]></link><description><![CDATA[Het nieuwste project van het vermaarde Kronos Quartet krijgt de Nederlandse première in het Gergiev Festival. Beyond Zero: 1914-1918 combineert unieke, half vergane oorlogsbeelden zoals samengesteld door filmmaker Bill Morrison met de emotioneel geladen muziek van Aleksandra Vrebalov. De aangrijpende multimediavoorstelling herdenkt maar wil ook vooruitkijken. ‘In feite is elk concert dat we spelen een antioorlogsverklaring’, aldus de primarius van het kwartet.<br /><br />‘Vrebalovs muziek is bezwerend en dwingend, met een ruige klankschoonheid en een grote emotionele lading’ – NRC Handelsblad<br /><br />Prelude to a Black Hole<br />muziek van o.a. Stravinsky, Ravel, Webern en Ives<br /><br />Beyond Zero: 1914–1918<br />Aleksandra Vrebalov - muziek<br />Bill Morrison - film<br /><br />David Harrington en Drew Cameron - creative consultants<br />Janet Cowperthwaite - producer<br />Kronos Performing Arts Association - production management<br/><br/><ul><li><a target="_blank" href="http://www.gergievfestival.nl">www.gergievfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7955_07.jpg" length="4056" type="image/jpeg"/></item><item><title><![CDATA[za 20 sep, 10.30 uur - Zelf Muziek Maken (6+) - Met gamelan naar een andere wereld]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4569/Zelf_Muziek_Maken_6_/Met_gamelan_naar_een_andere_wereld/]]></link><description><![CDATA[De klanken van de gamelan nemen je mee naar de kleurrijke warme wereld van Indonesië. Speel en zing mee, en leer je eigen stukje muziek spelen op deze echte Javaanse instrumenten zoals xylofoons, trommels, gestemde gongs en de angklung. Samen vormen we dan een heus gamelanorkest. De muziekinstrumenten, die ter beschikking zijn gesteld door het Wereldmuseum Rotterdam, zien er prachtig uit.<br /><br />Het hele gezin neemt deel aan deze workshop.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6091_07.jpg" length="3876" type="image/jpeg"/></item><item><title><![CDATA[za 20 sep, 14.30 uur - Sinfonia Rotterdam - Bizet, Mozart, Tsjaikovski]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4571/Sinfonia_Rotterdam/Bizet_Mozart_Tsjaikovski/]]></link><description><![CDATA[Met Mozart kon je lachen. Daar wist zijn favoriete hoornist Joseph Leutgeb alles van. Elke keer als Mozart voor hem een hoornconcert componeerde, stond er iets grappigs in de partituur. ‘Ezel, os en sul’, kon Leutgeb lezen. Of Mozart bleek de noten te hebben genoteerd met allerlei gekke kleuren inkt. Die speelsheid hoort u terug bij Martin van der Merwe, de solohoornist van het Rotterdams Philharmonisch Orkest. Hij brengt zijn virtuositeit dit keer in stelling bij de stadsgenoten van Sinfonia Rotterdam en dirigent Conrad van Alphen. Zij openen hun programma met de Eerste Symfonie van Georges Bizet. De Fransman schreef dit bruisende werk als student aan het Parijse conservatorium. Om onbegrijpelijke redenen ging het pas zestig jaar na zijn dood in première. Met de Notenkrakersuite van Tsjaikovski danst Sinfonia Rotterdam lichtvoetig naar het slot.<br/><br/>Om 13.15 uur lezing door Leo Samama (Jurriaanse Zaal)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6093_07.jpg" length="2847" type="image/jpeg"/></item><item><title><![CDATA[zo 21 sep, 14.00 uur - Meesterproef Classic Young Masters - jonge musici leggen de meesterproef af]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5243/Meesterproef_Classic_Young_Masters/jonge_musici_leggen_de_meesterproef_af/]]></link><description><![CDATA[Classic Young Masters zet met haar ‘Leerling-, gezel-, meesterprogramma’ een traject uit waarbij aan zeer talentvolle, heel jonge musici de mogelijkheid wordt geboden om zich met maatwerkbegeleiding te ontwikkelen naar meesterschap in het vak en naar professioneel/ondernemend musicus. Het project kent twee hoofdfasen: het afleggen van ‘proeven’ en het begeleidingstraject.<br />Bij dit concert kunt u getuige zijn van de Meesterproef, dit jaar uitgeschreven voor de instrumenten fagot, gitaar, harp, viool en zang. Maak het mee! Inspirerende optredens van gedreven jonge musici die hun dromen willen realiseren. Drie deelnemers krijgen van een internationaal samengestelde commissie de titel Classic Young Master. Dit houdt in dat zij voor twee jaar een mentor toegewezen krijgen via CYM en op een unieke, individuele wijze zullen worden gecoacht. Het publiek krijgt ook een stem; aan u de keuze om een publieksfavoriet te kiezen. Die kandidaat krijgt in overleg met de docent een eigen soloconcert.<br /><br />Wij rekenen op uw komst, publiek en applaus zijn voor de musici belangrijke componenten in een geslaagd optreden!<br /><br />Het werk van CYM wordt mogelijk gemaakt door de Gemeente Rotterdam en fondsen en sponsoren.<br/><br/><ul><li><a target="_blank" href="http://www.classicyoungmasters.nl">www.classicyoungmasters.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8081_07.jpg" length="2670" type="image/jpeg"/></item><item><title><![CDATA[ma 22 sep, 20.15 uur - The Bootleg Beatles - ’s werelds beste Beatle tribute band]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4551/The_Bootleg_Beatles/_s_werelds_beste_Beatle_tribute_band/]]></link><description><![CDATA[Vijftig jaar nadat The Beatles Nederland bezochten, komen de veelgeprezen The Bootleg Beatles naar Rotterdam voor een show met vele Beatles-hits. <br /><br />In hun ruim 30-jarig bestaan hebben The Bootleg Beatles de standaard gezet voor al die honderden tribute bands die de magie van de grootste popgroep aller tijden levend houden. Ze doen dat zo goed en authentiek dat ze als enige het beeldmerk van The Beatles mogen gebruiken. The Bootleg Beatles vormen de meest succesvolle en langst bestaande tribute band ter wereld. Met hun prachtige re-creatie van het geluid en uiterlijk van The Fab Four weten zij ook de meest sceptische Beatles-fans te overtuigen. Elk klein detail is uitstekend verzorgd, van kostuums tot authentieke instrumenten.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img5829_07.jpg" length="3116" type="image/jpeg"/></item><item><title><![CDATA[ma 22 sep, 20.30 uur - Rachmaninovs Vespers - Rundfunkchor Berlin]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4573/Rachmaninovs_Vespers/Rundfunkchor_Berlin/]]></link><description><![CDATA[De Vespers van Rachmaninov behoren tot de fraaiste koormuziek die ooit is geschreven. Russisch-orthodoxe kerkmelodieën gaan er hand in hand met ritmes uit de volksmuziek; weelderige akkoorden vormen een stemmenweefsel van symfonische proporties. Rachmaninov schreef de Vespers in 1915. Hij legde zijn ziel en zaligheid in dit 15-delige koorwerk, dat altijd heeft behoord tot zijn persoonlijke favorieten. Ook al zag de componist maar zelden een kerk van binnen, de Vespers zijn wel degelijk religieus geïnspireerd. Helaas zijn veel uitvoeringen doordrenkt met ‘de Russische ziel’, of wat daarvoor moet doorgaan. In het ergste geval schemert tussen de noten zelfs een sentimentele drankneus. Die twijfelachtige sensatie zullen de specialisten van het Rundfunkchor Berlin ons besparen. Hun chef-dirigent, de gelouterde Britse koorman Simon Halsey, zal eerder aansluiten bij de karakteristieken van Rachmaninovs eigen pianospel. Dat was, bij alle romantiek, verbluffend lenig en helder.<br /><br /><b>Laurenskerk</b><br />Dit concert is een Doelenproductie op locatie in de Laurenskerk. Geregeld kiezen wij ervoor om concerten op een andere locatie te brengen. Vanwege de bijzondere akoestiek of atmosfeer. Het repertoire van dit concertprogramma leent zich bij uitstek voor de prachtige laatgotische Laurenskerk.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6095_07.jpg" length="3393" type="image/jpeg"/></item><item><title><![CDATA[di 23 sep, 20.15 uur - Fire over Water - Colin Currie &amp; DoelenKwartet]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4575/Fire_over_Water/Colin_Currie_DoelenKwartet/]]></link><description><![CDATA[De Amerikaanse componist Elliott Carter was al 100(!) toen hij in mei 2009 een van zijn laatste werken in première hoorde gaan: Figment V voor marimba. Carter schreef de solo als verjaardagscadeau voor een 17-jarige kleinzoon. Colin Currie, een seizoen lang onze Red Sofa artist in residence, selecteerde het werk voor een concert waarin hij het slagwerkrepertoire wereldwijd verkent. In Curries kielzog reizen we van Scandinavië via Frankrijk en Japan naar Amerika. Daar treffen we het pièce de résistance aan van de hedendaagse slagwerkmuziek: Drumming van Steve Reich. Hij schreef het stuk begin jaren ’70, hevig onder de indruk van de percussieklanken die hij had gehoord in Afrika. Met drie gerenommeerde Nederlandse slagwerkers stort Colin Currie zich op de bongo’s van het eerste deel. Tot slot klinkt een eresaluut aan Steve Martland, de Britse componist (en oud-leerling van Louis Andriessen) die in mei 2013 onverwachts op 53-jarige leeftijd overleed.<br /><br /><b>Red Sofa Bankpas</b><br />Voor slechts € 79 per seizoen beschikt u over de Red Sofa Bankpas, waarmee u voor <a href="http://www.dedoelen.nl/nl/concerten/agenda/?date_from=2014-9-1&date_to=2015-8-31&genre%5B%5D=red_sofa"><b>alle Red Sofa-concerten in seizoen 2014-2015</b>&nbsp;</a>een gratis kaart kunt reserveren. Klik <a href="https://dedoelen.ticketmatic.com/addloyaltycard.php?a=OUBoHS3DoSw&e=t8Y497W9JB4&s=80cswBbInpo&l=nl/"><b>hier</b></a> voor het bestellen van de Red Sofa Bankpas.<br/><br/>Om 19.30 uur Neil Wallace in gesprek met enkele artiesten]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6097_07.jpg" length="4124" type="image/jpeg"/></item><item><title><![CDATA[wo 24 sep, 21.00 uur - Human Requiem - Rundfunkchor Berlin]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4577/Human_Requiem/Rundfunkchor_Berlin/]]></link><description><![CDATA[Een Duitse recensent beschreef het na de première als een ‘ongelooflijk moment’. Zit je in de concertzaal, klinkt volkomen onverwacht het openingskoor van Ein deutsches Requiem van Johannes Brahms. Niet vanaf het podium, maar links van je, rechts van je, achter, voor en boven. In de voorstelling Human Requiem, afkomstig uit het atelier van de Duitse choreografe Sasha Waltz, vervaagt elke scheiding tussen zanger en toeschouwer. Waltz maakte een ‘gechoreografeerde verpersoonlijking’ van Brahms’ Requiem. Ze laat tekst, klank, lijf en ruimte versmelten tot een totaalervaring. Voor de muziek tekenen het fenomenale Rundfunkchor Berlin en dirigent Simon Halsey, die zijn sporen heeft verdiend als chef-dirigent van het Groot Omroepkoor. Ook de solisten, Marlis Petersen en Konrad Jarnot, zijn top. De orkestpartij klinkt in de versie voor piano vierhandig, naar de originele transcriptie van Brahms (bewerkt door Phillip Moll).<br /><br />Nieuwsgierig? Bekijk de trailer hieronder:<br /><a href="http://vimeo.com/39925032"><img hspace="3" alt="" vspace="3" width="450" align="left" height="250" src="/cms_files/Image/TrailerHumanRequiem.jpg" /></a><br /><br /><br /><a target=_blank href="http://www.dekeuze.nl"><img width="100" height="126" alt="" src="/cms_files/Image/FDK_logo_DEF_RS_260613(1).jpg"/></a>&nbsp; &nbsp; &nbsp; <a target=_blank href="http://www.goethe.de/ins/nl/ams/deindex.htm"><img width="110" height="52" alt="" src="/cms_files/Image/Goethe-Institut_logo_web.jpg" /></a>&nbsp; &nbsp; &nbsp; <a target=_blank href="http://www.fondspodiumkunsten.nl"><img width="85" height="61" alt="" src="/cms_files/Image/FPK_LOGO-ZWART.jpg" /></a><br /><br />Dit concert wordt mede mogelijk gemaakt door de Van Cappellen Stichting.<br/><br/>Om 21.00 uur gaat Neil Wallace in gesprek met Jochen Sandig<br/><br/><ul><li><a target="_blank" href="http://www.rotterdamseschouwburg.nl">www.rotterdamseschouwburg.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6099_07.jpg" length="2882" type="image/jpeg"/></item><item><title><![CDATA[do 25 sep, 20.15 uur - Rotterdams Philharmonisch - Van Beethoven tot Strauss]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5079/Rotterdams_Philharmonisch/Van_Beethoven_tot_Strauss/]]></link><description><![CDATA[Gonzende bassen, koninklijk koper, pulserende pauken, en dán: de zon die doorbreekt in het hele orkest: met Also sprach Zarathustra schreef Strauss dé openingstune voor de 20ste eeuw. Zo trad hij in de voetsporen van Beethoven, die zelf de 19de eeuw binnenstormde met zijn prachtige Derde Pianoconcert, een werk dat nu zijn gedroomde solist krijgt met Lucas Jussen, Nederlandse meesterpianist van de 21ste eeuw.<br/><br/>Om 19.15 uur inleiding door Lonneke Regter (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7855_07.jpg" length="3240" type="image/jpeg"/></item><item><title><![CDATA[do 25 sep, 21.00 uur - Human Requiem - Rundfunkchor Berlin]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4579/Human_Requiem/Rundfunkchor_Berlin/]]></link><description><![CDATA[Een Duitse recensent beschreef het na de première als een ‘ongelooflijk moment’. Zit je in de concertzaal, klinkt volkomen onverwacht het openingskoor van Ein deutsches Requiem van Johannes Brahms. Niet vanaf het podium, maar links van je, rechts van je, achter, voor en boven. In de voorstelling Human Requiem, afkomstig uit het atelier van de Duitse choreografe Sasha Waltz, vervaagt elke scheiding tussen zanger en toeschouwer. Waltz maakte een ‘gechoreografeerde verpersoonlijking’ van Brahms’ Requiem. Ze laat tekst, klank, lijf en ruimte versmelten tot een totaalervaring. Voor de muziek tekenen het fenomenale Rundfunkchor Berlin en dirigent Simon Halsey, die zijn sporen heeft verdiend als chef-dirigent van het Groot Omroepkoor. Ook de solisten, Marlis Petersen en Konrad Jarnot, zijn top. De orkestpartij klinkt in de versie voor piano vierhandig, naar de originele transcriptie van Brahms (bewerkt door Phillip Moll).<br /><br />Nieuwsgierig? Bekijk de trailer hieronder:<br /><a href="http://vimeo.com/39925032"><img hspace="3" alt="" vspace="3" width="450" align="left" height="250" src="/cms_files/Image/TrailerHumanRequiem.jpg" /></a><br /><br /><br /><a target=_blank href="http://www.dekeuze.nl"><img width="100" height="126" alt="" src="/cms_files/Image/FDK_logo_DEF_RS_260613(1).jpg"/></a>&nbsp; &nbsp; &nbsp; <a target=_blank href="http://www.goethe.de/ins/nl/ams/deindex.htm"><img width="110" height="52" alt="" src="/cms_files/Image/Goethe-Institut_logo_web.jpg" /></a>&nbsp; &nbsp; &nbsp; <a target=_blank href="http://www.fondspodiumkunsten.nl"><img width="85" height="61" alt="" src="/cms_files/Image/FPK_LOGO-ZWART.jpg" /></a><br /><br />Dit concert wordt mede mogelijk gemaakt door de Van Cappellen Stichting.<br/><br/>Om 21.00 uur gaat Neil Wallace in gesprek met Jochen Sandig<br/><br/><ul><li><a target="_blank" href="http://www.rotterdamseschouwburg.nl">www.rotterdamseschouwburg.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6101_07.jpg" length="2882" type="image/jpeg"/></item><item><title><![CDATA[vr 26 sep, 20.15 uur - DoelenKwartet - Kwartet en gitaar]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4581/DoelenKwartet/Kwartet_en_gitaar/]]></link><description><![CDATA[Gestreken en getokkelde snaren komen tot klinken in dit programma van het DoelenKwartet samen met meestergitarist Izhar Elias, winnaar van de Nederlandse Muziekprijs 2011. Voor dit programma droeg Elias zelf de meeste stukken aan, zoals het schier onspeelbare Kwintet voor strijkkwartet van Matijs de Roo (1977) en het poëtische Sola voor gitaar van de Israëlisch-Georgische componist Josef Bardanashvili. De Oekraïense componist Maxim Shalygin wint aan terrein op Nederlandse bodem met zijn spiritueel geladen en sobere composities. Speciaal voor het DoelenKwartet en Elias schrijft hij nieuw werk. Ook van de Duits-Nederlandse componist Florian Magnus Maier, tevens actief als metalgitarist en flamencogitarist, is er een nieuw werk te verwachten.<br /><br /><b>Red Sofa Bankpas</b><br />Voor slechts € 79 per seizoen beschikt u over de Red Sofa Bankpas, waarmee u voor <a href="http://www.dedoelen.nl/nl/concerten/agenda/?date_from=2014-9-1&date_to=2015-8-31&genre%5B%5D=red_sofa"><b>alle Red Sofa-concerten in seizoen 2014-2015</b>&nbsp;</a>een gratis kaart kunt reserveren. Klik <a href="https://dedoelen.ticketmatic.com/addloyaltycard.php?a=OUBoHS3DoSw&e=t8Y497W9JB4&s=80cswBbInpo&l=nl/"><b>hier</b></a> voor het bestellen van de Red Sofa Bankpas.<br/><br/>Om 19.30 uur inleiding door Izhar Elias]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6103_07.jpg" length="3346" type="image/jpeg"/></item><item><title><![CDATA[vr 26 sep, 20.15 uur - Rotterdams Philharmonisch - Van Beethoven tot Strauss]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5081/Rotterdams_Philharmonisch/Van_Beethoven_tot_Strauss/]]></link><description><![CDATA[Gonzende bassen, koninklijk koper, pulserende pauken, en dán: de zon die doorbreekt in het hele orkest: met Also sprach Zarathustra schreef Strauss dé openingstune voor de 20ste eeuw. Zo trad hij in de voetsporen van Beethoven, die zelf de 19de eeuw binnenstormde met zijn prachtige Derde Pianoconcert, een werk dat nu zijn gedroomde solist krijgt met Lucas Jussen, Nederlandse meesterpianist van de 21ste eeuw.<br/><br/>Om 19.15 uur inleiding door Lonneke Regter (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7857_07.jpg" length="3240" type="image/jpeg"/></item><item><title><![CDATA[vr 26 sep, 20.30 uur - Spinifex - Bollycore - Seizoensopening Vrijdag in de Flip]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4967/Spinifex_Bollycore/Seizoensopening_Vrijdag_in_de_Flip/]]></link><description><![CDATA[Tijdens dit even avontuurlijke als gewaagde concert deelt het illustere en eigentijdse kwintet Spinifex het podium met een van India’s meest vooraanstaande jonge zangeressen, Priya Purushotaman, evenals met de betoverende danseres Maya Sapera. De ruige jazz-core van Spinifex gaat een nooit eerder gehoorde combinatie aan met de hartverwarmende lyriek van Purushotamans zang, visueel onderstreept door de virtuoze dans van Sapera. Bollycore belooft intens genot voor zowel liefhebbers van de Indiase muziek als ook voor fans van vooruitstrevende jazz.<br /><img width="150" height="91" alt="" src="/cms_files/Image/LOGO-VRIJDAGINDEFLIP-ICON.jpg" /><br /><a target=_blank href="http://www.jazzinternationalrotterdam.nl"><img height="37" width="150" alt="" src="/cms_files/Image/SJIR_web.jpg" /></a><br/><br/><ul><li><a target="_blank" href="http://www.jazzinternational.nl">www.jazzinternational.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6903_07.jpg" length="3859" type="image/jpeg"/></item><item><title><![CDATA[za 27 sep, 09.29 uur - I CAN DO IT festival - Weekendkaart]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5227/I_CAN_DO_IT_festival/Weekendkaart/]]></link><description><![CDATA[I CAN DO IT - Laat je inspireren en verrassen <br />zaterdag 27 en zondag 28 september 2014<br /><br />I Can Do It is een tweedaags festival in het teken van inspiratie, persoonlijke ontwikkeling, levensmissies, mindfulness, liefde en energie. Ruim 15 (inter)nationale sprekers verzorgen interactieve lezingen en workshops die je in contact brengen met jezelf, je aan het denken zetten en je motiveren om van je leven het mooiste te maken dat er is.<br />Ontmoet sprekers als Lorna Byrne, Joe Dispenza en Lynne McTaggart, en natuurlijk sprekers van eigen bodem zoals Willem Glaudemans, Eline Snel, Dorien van Nieukerken en Robert Bridgeman. Tussen de optredens door is er in de foyers van alles te beleven en te proberen: signeersessies, creatieve workshops, ontmoetingen met de deelnemers en rondneuzen in het House of Happinez. <br /><br />I Can Do It-festivals zijn al jaren een succes in de VS en in Groot-Brittannië; I Can Do It Rotterdam 2014 is de eerste Nederlandse editie, met lezingen in het Nederlands en in het Engels. De organisator, inspirerendleven.nl heet je van harte welkom.<br/><br/><ul><li><a target="_blank" href="http://www.inspirerendleven.nl/agenda/i-can-do-it/">www.inspirerendleven.nl/agenda/i-can-do-it/</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8055_07.jpg" length="2625" type="image/jpeg"/></item><item><title><![CDATA[za 27 sep, 09.30 uur - I CAN DO IT festival - Laat je inspireren en verrassen]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5229/I_CAN_DO_IT_festival/Laat_je_inspireren_en_verrassen/]]></link><description><![CDATA[I CAN DO IT<br />Laat je inspireren en verrassen <br /><br />I Can Do It is een tweedaags festival in het teken van inspiratie, persoonlijke ontwikkeling, levensmissies, mindfulness, liefde en energie. Ruim 15 (inter)nationale sprekers verzorgen interactieve lezingen en workshops die je in contact brengen met jezelf, je aan het denken zetten en je motiveren om van je leven het mooiste te maken dat er is.<br />Ontmoet sprekers als Lorna Byrne, Joe Dispenza en Lynne McTaggart, en natuurlijk sprekers van eigen bodem zoals Willem Glaudemans, Eline Snel, Dorien van Nieukerken en Robert Bridgeman. Tussen de optredens door is er in de foyers van alles te beleven en te proberen: signeersessies, creatieve workshops, ontmoetingen met de deelnemers en rondneuzen in het House of Happinez. <br /><br />I Can Do It-festivals zijn al jaren een succes in de VS en in Groot-Brittannië; I Can Do It Rotterdam 2014 is de eerste Nederlandse editie, met lezingen in het Nederlands en in het Engels. De organisator, inspirerendleven.nl heet je van harte welkom.<br /><br />pauzes<br />11.30-12.00 uur<br />12.45-14.00 uur - 4 inloopworkshops door auteurs van inspirerendleven.nl<br />16.00-16.30 uur<br/><br/><ul><li><a target="_blank" href="http://www.inspirerendleven.nl/agenda/i-can-do-it/">www.inspirerendleven.nl/agenda/i-can-do-it/</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8051_07.jpg" length="2625" type="image/jpeg"/></item><item><title><![CDATA[za 27 sep, 18.00 uur - Grote Koor- en Samenzangavond - Urk en Yerseke zingen Psalmen]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5225/Grote_Koor_en_Samenzangavond/Urk_en_Yerseke_zingen_Psalmen/]]></link><description><![CDATA[t.b.v. de Theologische School Gereformeerde Gemeenten<br /><br />17.00 uur inloop<br/><br/><ul><li><a target="_blank" href="http://www.burgtours.nl">www.burgtours.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8029_07.jpg" length="3937" type="image/jpeg"/></item><item><title><![CDATA[zo 28 sep, 09.30 uur - I CAN DO IT festival - Laat je inspireren en verrassen]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5231/I_CAN_DO_IT_festival/Laat_je_inspireren_en_verrassen/]]></link><description><![CDATA[I CAN DO IT<br />Laat je inspireren en verrassen <br /><br />I Can Do It is een tweedaags festival in het teken van inspiratie, persoonlijke ontwikkeling, levensmissies, mindfulness, liefde en energie. Ruim 15 (inter)nationale sprekers verzorgen interactieve lezingen en workshops die je in contact brengen met jezelf, je aan het denken zetten en je motiveren om van je leven het mooiste te maken dat er is.<br />Ontmoet sprekers als Lorna Byrne, Joe Dispenza en Lynne McTaggart, en natuurlijk sprekers van eigen bodem zoals Willem Glaudemans, Eline Snel, Dorien van Nieukerken en Robert Bridgeman. Tussen de optredens door is er in de foyers van alles te beleven en te proberen: signeersessies, creatieve workshops, ontmoetingen met de deelnemers en rondneuzen in het House of Happinez. <br /><br />I Can Do It-festivals zijn al jaren een succes in de VS en in Groot-Brittannië; I Can Do It Rotterdam 2014 is de eerste Nederlandse editie, met lezingen in het Nederlands en in het Engels. De organisator, inspirerendleven.nl heet je van harte welkom.<br /><br />pauzes<br />11.15-11.45 uur<br />12.45-14.00 uur - 4 inloopworkshops door auteurs van inspirerendleven.nl<br />16.00-16.30 uur<br/><br/><ul><li><a target="_blank" href="http://www.inspirerendleven.nl/agenda/i-can-do-it/">www.inspirerendleven.nl/agenda/i-can-do-it/</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8047_07.jpg" length="2625" type="image/jpeg"/></item><item><title><![CDATA[zo 28 sep, 14.15 uur - Rotterdams Philharmonisch - Van Beethoven tot Strauss]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5083/Rotterdams_Philharmonisch/Van_Beethoven_tot_Strauss/]]></link><description><![CDATA[Gonzende bassen, koninklijk koper, pulserende pauken, en dán: de zon die doorbreekt in het hele orkest: met Also sprach Zarathustra schreef Strauss dé openingstune voor de 20ste eeuw. Zo trad hij in de voetsporen van Beethoven, die zelf de 19de eeuw binnenstormde met zijn prachtige Derde Pianoconcert, een werk dat nu zijn gedroomde solist krijgt met Lucas Jussen, Nederlandse meesterpianist van de 21ste eeuw.<br/><br/>Om 13.15 uur inleiding door Lonneke Regter (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7859_07.jpg" length="3240" type="image/jpeg"/></item><item><title><![CDATA[zo 28 sep, 20.15 uur - Monteverdi’s Mariavespers - Lautten Compagney Berlin]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4583/Monteverdi_s_Mariavespers/Lautten_Compagney_Berlin/]]></link><description><![CDATA[Een vlammende fanfare. IJle engelenzang. Een verschroeiend liefdeslied. Het trekt allemaal voorbij in Vespro della Beata Vergine van Claudio Monteverdi. Vermoedelijk schreef hij het stuk, ook bekend als de Mariavespers, als open sollicitatie naar een baan aan de Sixtijnse Kapel in Rome. Die poging mislukte, maar drie jaar later sleepte de componist een misschien nog wel mooiere post in de wacht. Hij werd in Venetië kapelmeester aan de San Marco. De Mariavespers vormen een staalkaart van barokke hartstocht. In alle toonaarden bejubelt Monteverdi de Heilige Maagd Maria. Dat doet hij nu eens met exuberante koren, dan weer met intieme aria’s die zonder probleem zouden passen in een opera. Bij de zangers van Ensemble Amarcord is die uitdaging in vertrouwde handen. De instrumentale ondersteuning komt voor rekening van de Lautten Compagney Berlin en hun gerenommeerde dirigent Wolfgang Katschner.<br/><br/>Om 19.30 uur inleiding door Philip Ruitenberg]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6105_07.jpg" length="2353" type="image/jpeg"/></item><item><title><![CDATA[di 30 sep, 20.15 uur - Lise de la Salle - piano - Brahms, Debussy, Ravel]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4585/Lise_de_la_Salle_piano/Brahms_Debussy_Ravel/]]></link><description><![CDATA[Sinds 2001 bouwt de jonge Franse pianiste Lise de la Salle aan een indrukwekkende internationale carrière en treedt ze op in de vooraanstaande concertzalen van Europa, de Verenigde Staten en Azië. Met haar cd ‘A Portrait’ (inclusief dvd) vierde ze in 2013 haar tienjarige samenwerking met het label Naïve. Zonder uitzondering werden haar cd’s goed ontvangen; zo werden vier ervan door Gramophone verkozen tot Editor’s Choice. Naast twee variatiesets van Brahms laat Lise de la Salle vanavond werken van twee landgenoten horen: Debussy en Ravel. Alhoewel Debussy’s Preludes allemaal een titel dragen, is deze link muzikaal vaak niet duidelijk. Wel goed hoorbaar zijn de muzikale elementen uit andere landen, zoals Spanje, Schotland, Italië en de Oriënt. Ravels Gaspard de la nuit is gebaseerd op drie gedichten van Aloysius Bertrand, die Ravel naar eigen zeggen in de nacht door de duivel, Gaspard, werden ingefluisterd. Expressieve en inventieve muziek.<br/><br/>Om 19.30 uur inleiding door Huib Ramaer]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6107_07.jpg" length="3074" type="image/jpeg"/></item><item><title><![CDATA[do 02 okt, 20.30 uur - Roel Spanjers &amp; Band - ]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4587/Roel_Spanjers_Band//]]></link><description><![CDATA[De veelzijdige pianist/organist Roel Spanjers toerde al op jonge leeftijd met Amerikaanse blues- en soulartiesten over de hele wereld. Op het Hammond-orgel is Spanjers een van Nederlands grootsten en ook zijn kennis over ‘southern soul’ is ongekend groot. Na drie succesvolle cd’s met zijn groepen The Sunset Travellers en Birdcatcher en talloze tournees met onder anderen Normaal, Ricky Koole, JW Roy en Frédérique Spigt is Roel Spanjers nu voor het eerst sinds jaren weer met zijn eigen band in de Doelen.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6111_07.JPG" length="3201" type="image/jpeg"/></item><item><title><![CDATA[vr 03 okt, 20.30 uur - Re:Freshed Presents - Pink Oculus]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4969/Re_Freshed_Presents/Pink_Oculus/]]></link><description><![CDATA[Re:Freshed Presents Pink Oculus<br />Rotterdam kent een inventieve popscene, die met een hoog hiphop- en soulgehalte ook de deuren naar andere genres opent. Middelpunt is het Re:Freshed Orchestra, dat bestaat uit zeer talentvolle musici die zich ook hebben waargemaakt bij verschillende Nederlandse bands. Een aantal van hen heeft een pop-achtergrond, anderen komen aanvliegen vanuit de jazz of klassieke muziek. Ze delen een passie voor geweldige muziek. Zo is uit gecontroleerde chaos een orkest ontstaan waar Rotterdam trots op is. <br />De Doelengeeft  leden van Re:Freshed Orchestra carte blanche om een afwisselend live muziekprogramma samen te stellen, waarbij ook visuals een rol spelen. Na elk concert is er een meet & greet en draait de musicus van dienst de muziek waar hij of zij door geïnspireerd is.<br /><br /><b>Who is Pink Oculus?</b><br />De rapper/singer-songwriter Pink Oculus(~) (Esperanzah Denswil, Re:Freshed Orchestra) releaste haar eerste solo-single ‘SWEAT’ in november 2013 en sindsdien gaat het hard voor de Amsterdamse. Zij werd genoemd door Giel Beelen (3FM) als talent om naar uit te kijken in 2014. En ze werd verkozen tot 3FM Serious Talent. Met optredens op Noorderslag en bij <a target=_blank href="http://dewerelddraaitdoor.vara.nl/media/307936"><b>DWDD</b></a> kan bijna niemand meer om Pink Oculus heen. Maar wie is zij? ‘In deze voorstelling ‘Who is Pink Oculus?’ ga ik in gesprek met mijn eigen ego’, zegt Pink Oculus. <br />Het optreden op deze unieke multidisciplinaire avond wordt aangevuld met diverse internationale visual artists, VJ’s en beeldend kunstenaars. Een audiovisueel spektakel! <br /><br />19.15 uur: inloop <br />20.30 uur: concert<br />21.45 uur: bar open en een van de musici draait<br />23.00 uur: einde<br /><br /><b>Re:Freshed Presents is onderdeel van de reeks Vrijdag in de Flip</b><br />De Flip: zo noemen de Doelenmedewerkers in de wandelgangen de Eduard Flipse Zaal. Het is echt een koosnaam: sinds precies tien jaar is de zaal, die tot dan toe een repetitielokaal was, een van onze concertzalen, en zowel musici als publiek zijn er dol op. Hij klinkt geweldig, en is met zijn 180 stoelen erg intiem.<br />Vrijdag in de Flip brengt veel nieuwe, eigentijdse, soms tegendraadse muziek in alle genres, volgens een speciale formule: geen buffet in de hal beneden, maar een intieme bar boven. Een concert zonder pauze met één lange set en na het concert wordt muziek gedraaid die is uitgekozen door de artiest van dienst, meestal met hem/haar ook als DJ om de avond feestelijk af te sluiten <br /><img width="150" height="91" alt="" src="/cms_files/Image/LOGO-VRIJDAGINDEFLIP-ICON.jpg" />]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8143_07.jpg" length="3302" type="image/jpeg"/></item><item><title><![CDATA[za 04 okt, 15.00 uur - RAUWKOST - smaaksensaties en klankwerelden]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5269/RAUWKOST/smaaksensaties_en_klankwerelden/]]></link><description><![CDATA[2 Dagen. 20 Chef-koks. Tien geïmproviseerde keukens opgebouwd uit pallets. Tongstrelende hapjes en oorstrelende muziek. Dát is Rauwkost, een tweedaags eetfestijn in Rotterdam. <br />Na de eerste editie van vorig jaar besloot de organisatie van Rauwkost de handen ineen te slaan met de Doelen. Want bij proeven op hoog niveau, hoort natuurlijk muziek van hoog niveau. De Doelen en Codarts organiseren daarom de muzikale omlijsting van deze editie van Rauwkost. Akoestische optredens, acrobatische hoogstandjes, klassieke muziek en muziek uit alle windstreken, alles komt voorbij.<br /><br />Op 4 en 5 oktober veranderen de Fenixloodsen (Rotterdam Katendrecht) in het culinaire hart van Rotterdam. Midden tussen het publiek bereiden top chef-koks gerechten die laten zien waar zij voor staan. Deelnemende chefs zijn onder anderen Marcel van Zomeren (In den Rustwat), Jim de Jong (Restaurant de Jong), Marco Somer (De Harmonie), Gert Blom (Amarone), Pepijn Schmeink en Remco van Erp (Dertien). Naast de chefs en musici is op Rauwkost alles te vinden wat met vooruitstrevende gastronomie te maken heeft. Proeverijen, debat, bijzondere producenten, films, wijnmakers, importeurs, filosofen en meer.<br /><br />Meer informatie via <a target=_blank href="https://www.facebook.com/rauwkostrotterdam"><b>www.facebook.com/rauwkostrotterdam</b></a>.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8179_07.jpg" length="2945" type="image/jpeg"/></item><item><title><![CDATA[za 04 okt, 15.00 uur - RAUWKOST Weekendkaart - smaaksensaties en klankwerelden]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5267/RAUWKOST_Weekendkaart/smaaksensaties_en_klankwerelden/]]></link><description><![CDATA[<b>WEEKENDKAART</b><br />2 Dagen. 20 Chef-koks. Tien geïmproviseerde keukens opgebouwd uit pallets. Tongstrelende hapjes en oorstrelende muziek. Dát is Rauwkost, een tweedaags eetfestijn in Rotterdam. <br />Na de eerste editie van vorig jaar besloot de organisatie van Rauwkost de handen ineen te slaan met de Doelen. Want bij proeven op hoog niveau, hoort natuurlijk muziek van hoog niveau. De Doelen en Codarts organiseren daarom de muzikale omlijsting van deze editie van Rauwkost. Akoestische optredens, acrobatische hoogstandjes, klassieke muziek en muziek uit alle windstreken, alles komt voorbij.<br /><br />Op 4 en 5 oktober veranderen de Fenixloodsen (Rotterdam Katendrecht) in het culinaire hart van Rotterdam. Midden tussen het publiek bereiden top chef-koks gerechten die laten zien waar zij voor staan. Deelnemende chefs zijn onder anderen Marcel van Zomeren (In den Rustwat), Jim de Jong (Restaurant de Jong), Marco Somer (De Harmonie), Gert Blom (Amarone), Pepijn Schmeink en Remco van Erp (Dertien). Naast de chefs en musici is op Rauwkost alles te vinden wat met vooruitstrevende gastronomie te maken heeft. Proeverijen, debat, bijzondere producenten, films, wijnmakers, importeurs, filosofen en meer.<br /><br />Meer informatie via <a target=_blank href="https://www.facebook.com/rauwkostrotterdam"><b>www.facebook.com/rauwkostrotterdam</b></a>.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8177_07.jpg" length="2974" type="image/jpeg"/></item><item><title><![CDATA[za 04 okt, 20.15 uur - 20 jaar Gran Orquesta Típica OTRA  - ]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4591/20_jaar_Gran_Orquesta_Tipica_OTRA_//]]></link><description><![CDATA[Orquesta Típica OTRA, bestaande uit conservatoriumstudenten en docenten van Codarts, viert haar twintigjarig bestaan met een speciale avond in de Doelen. Naast werk van Osvaldo Pugliese en andere oude meesters vertolkt OTRA repertoire dat speciaal voor het orkest geschreven is door hedendaagse tangocomponisten. In alle tango's en aan het genre verwante ritmen zoals milonga ciudadana, milonga campera en vals criollo zoekt OTRA – met nieuwe arrangementen en solo’s – verbindingen met de huidige tijd. <br />Het veelbelovende en energieke Piazzolla-kwintet Locos Lindos speelt na afloop dansmuziek in de foyer, met tangosalon door Cuartito Azul.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6115_07.jpg" length="4193" type="image/jpeg"/></item><item><title><![CDATA[za 04 okt, 20.15 uur - Des canyons aux étoiles... - DoelenEnsemble &amp; notabu.ensemble neue musik]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4589/Des_canyons_aux_etoiles_/DoelenEnsemble_notabu_ensemble_neue_musik/]]></link><description><![CDATA[‘De woestijn’, ‘De merels’, ‘Wat geschreven staat in de sterren’, ‘De roze oranje rotsen van Bryce Canyon’... Ziehier een greep uit de titels van het twaalfdelige werk Des canyons aux étoiles... uit 1974 van Olivier Messiaen. Deze muziek, te beschouwen als een hommage aan de goddelijke schepping, zit vol zinderende kleuren, vogelachtig gekwinkeleer en gebeeldhouwde klankblokken. Messiaen schreef het werk in opdracht van de Amerikaanse kunstmecenas Alice Tully ter ere van het 200-jarig jubileum van de United States Declaration of Independence. Inspiratie deed hij op in de onherbergzame Bryce Canyon van Utah, vermaard om zijn spectaculaire kalk- en zandsteenformaties waarop het zonlicht onaardse kleurschakeringen tovert. Het Rotterdamse DoelenEnsemble en het Duitse notabu.ensemble neue musik koesterden beiden al langer de wens om dit magistrale werk uit te voeren. Nu bundelen zij hiervoor de krachten onder leiding van Arie van Beek.<br /><br /><b>Red Sofa Bankpas</b><br />Voor slechts € 79 per seizoen beschikt u over de Red Sofa Bankpas, waarmee u voor <a href="http://www.dedoelen.nl/nl/concerten/agenda/?date_from=2014-9-1&date_to=2015-8-31&genre%5B%5D=red_sofa"><b>alle Red Sofa-concerten in seizoen 2014-2015</b>&nbsp;</a>een gratis kaart kunt reserveren. Klik <a href="https://dedoelen.ticketmatic.com/addloyaltycard.php?a=OUBoHS3DoSw&e=t8Y497W9JB4&s=80cswBbInpo&l=nl/"><b>hier</b></a> voor het bestellen van de Red Sofa Bankpas.<br/><br/>Om 19.30 uur inleiding door Maarten van Veen]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7621_07.jpg" length="3407" type="image/jpeg"/></item><item><title><![CDATA[za 04 okt, 21.00 uur - Jordy van Toornburg, Wendy Teixeira - &amp; Matiota Band]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5245/Jordy_van_Toornburg_Wendy_Teixeira/_Matiota_Band/]]></link><description><![CDATA[Matiota is een twee/driemaandelijks terugkerend concert met muziek en cultuur voor en door talentvolle Kaapverdische jongeren en gevestigde artiesten/performers uit Rotterdam en omstreken. Met een professionele en uitdagende programmering laat Matiota mensen kennismaken met de Kaapverdische cultuur. Dit gebeurt op én voor het podium. Gastvrouw Laise Sanches en DJ Arnaldo zorgen met de Matiota Huisband voor de muzikale begeleiding van de speciale gastvocalisten: Jordy van Toornburg en Wendy Teixeira.<br /><br />Programma<br />21.00 uur: zaal open; Kaapverdische lounge-muziek met DJ<br />22.30 uur: live band en solisten <br />01.15 uur: DJ<br />02.00 uur: einde<br /><br />Jordy van Toornburg (26 jaar) is opgegroeid in Rotterdam en kwam op jonge leeftijd in aanraking met pop en gospel. Hij zong in kerk- en gospelkoren en stroomde na de Havo voor Muziek en Dans door naar Codarts. Daar leerde hij Laise Sanches en Shirley Spoor kennen, met wie hij Adlicious formeerde. Als backing vocal werkte Jordy met artiesten als Glennis Grace, Trijntje Oosterhuis, Alain Clark, Lisa Lois en Berget Lewis. <br /><br />Wendy Teixeira (Rotterdam, 1989) maakt de droom waar van haar vader, die met vrienden muziek maakte op Kaapverdië. Ook haar hart ligt bij de traditionele muziek van deze archipel en ze wordt geïnspireerd door zangeressen als Cesaria Evora, Mayra Andrade, Mariana Ramos, Nancy Vieira en Sara Tavares. Naast zangeres is Wendy Teixeira ook een veelzijdig instrumentaliste, zo speelt zij piano, accordeon, saxofoon, viool en gitaar. <br /><br />Matiota wordt mede mogelijk gemaakt door de Gemeente Rotterdam, de Doelen, TACV Airlines, Eetcafé Panorama, Car-E Entertainment en de vrienden van Matiota.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8087_07.jpg" length="3351" type="image/jpeg"/></item><item><title><![CDATA[zo 05 okt, 11.00 uur - Mozart Piano Quartet - Saint-Saëns, Schumann, Fauré]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4593/Mozart_Piano_Quartet/Saint_Saens_Schumann_Faure/]]></link><description><![CDATA[De combinatie van piano en drie strijkerstimbres inspireerde al menig componist – Mozart, Brahms, Dvorák en Richard Strauss, om enkelen te noemen – tot prachtige, sonore muziek. Het Mozart Piano Quartet wijdt zich sinds 2000 met verve aan dit repertoire. Het ensemble richt zich op nauwgezette bestudering van de partituren, stilistische verscheidenheid en rijke klankkleuren. Het pianokwartet ontvangt geregeld uitnodigingen voor festivaloptredens en concerten in Europa, Zuid-Amerika, de Verenigde Staten, Canada en Australië. Ook werken de musici enthousiast mee aan educatieve schoolconcerten in Duitsland en de VS en aan masterclasses op universiteiten. Naast talloze live radioregistraties, maakt het Mozart Piano Quartet sinds 2004 exclusief opnamen voor het Duitse label MDG, waarvoor het kwartet meermalen internationale waardering kreeg.<br /><br />Na afloop een glaasje champagne en meet & greet met de musici.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6109_07.jpg" length="4371" type="image/jpeg"/></item><item><title><![CDATA[zo 05 okt, 13.00 uur - RAUWKOST - smaaksensaties en klankwerelden]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5271/RAUWKOST/smaaksensaties_en_klankwerelden/]]></link><description><![CDATA[2 Dagen. 20 Chef-koks. Tien geïmproviseerde keukens opgebouwd uit pallets. Tongstrelende hapjes en oorstrelende muziek. Dát is Rauwkost, een tweedaags eetfestijn in Rotterdam. <br />Na de eerste editie van vorig jaar besloot de organisatie van Rauwkost de handen ineen te slaan met de Doelen. Want bij proeven op hoog niveau, hoort natuurlijk muziek van hoog niveau. De Doelen en Codarts organiseren daarom de muzikale omlijsting van deze editie van Rauwkost. Akoestische optredens, acrobatische hoogstandjes, klassieke muziek en muziek uit alle windstreken, alles komt voorbij.<br /><br />Op 4 en 5 oktober veranderen de Fenixloodsen (Rotterdam Katendrecht) in het culinaire hart van Rotterdam. Midden tussen het publiek bereiden top chef-koks gerechten die laten zien waar zij voor staan. Deelnemende chefs zijn onder anderen Marcel van Zomeren (In den Rustwat), Jim de Jong (Restaurant de Jong), Marco Somer (De Harmonie), Gert Blom (Amarone), Pepijn Schmeink en Remco van Erp (Dertien). Naast de chefs en musici is op Rauwkost alles te vinden wat met vooruitstrevende gastronomie te maken heeft. Proeverijen, debat, bijzondere producenten, films, wijnmakers, importeurs, filosofen en meer.<br /><br />Meer informatie via <a target=_blank href="https://www.facebook.com/rauwkostrotterdam"><b>www.facebook.com/rauwkostrotterdam</b></a>.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8181_07.jpg" length="2598" type="image/jpeg"/></item><item><title><![CDATA[zo 05 okt, 16.00 uur - Talentfabriek - Codarts Chamber Orchestra]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4995/Talentfabriek/Codarts_Chamber_Orchestra/]]></link><description><![CDATA[In de spannende inleiding tot zijn Eerste Symfonie zet Beethoven de luisteraar op het verkeerde been en distantieert hij zich van zijn leermeester Haydn. De Kamersymfonie van Sjostakovitsj is een bewerking van het zogenaamde ‘oorlogskwartet’, door de componist beschouwd als een van zijn beste werken. Vanuit de quasi luchtig-klassieke opening ontvouwt zich een klankenrijkdom als een expressieve achtbaan. Typerend is de enorme drive, de drammerige ritmiek met felle akkoorden, maar ook de vaak desolate melodiek in treurmarsbeweging. Met zijn Valse triste verwierf Sibelius al snel grote bekendheid buiten de Finse landsgrenzen. De indringende melodie – geïnspireerd door een toneelstuk – geeft de wals een ongewone en onaardse schoonheid.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7029_07.jpg" length="2728" type="image/jpeg"/></item><item><title><![CDATA[ma 06 okt, 20.15 uur - Janine Jansen - &amp; Chamber Orchestra of Europe]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4595/Janine_Jansen/_Chamber_Orchestra_of_Europe/]]></link><description><![CDATA[Is het dirigeren wat Janine Jansen in de Doelen komt doen? Jazeker, want met de viool in de hand leidt ze het Chamber Orchestra of Europe in de solowerken van dit tintelend, neo-klassiek programma. Het theatrale hoogtepunt wordt zonder twijfel een stuk van de Rus Alfred Schnittke. Moz-Art à la Haydn begint in het donker, met musici die improviseren over een motief van Mozart. Daarna ontspoort de boel al gauw. Niet echt natuurlijk, want het Chamber Orchestra of Europa behoort tot de kanjers in het vak. Sinds het in 1981 werd opgericht door de grote Claudio Abbado biedt dit kamerorkest emplooi aan de talentvolste musici uit Europa. Dat laten ze horen in Mozarts 39ste Symfonie, een stuk dat de componist schreef in geldnood, maar waarin een tijdgenoot vooral levensvreugde hoorde. De gruwelen van de Eerste Wereldoorlog leidden tot Le tombeau de Couperin. Hierin herdenkt Maurice Ravel zijn gevallen vrienden in 18de-eeuwse stijl.<br/><br/>Om 19.30 uur inleiding door Guido van Oorschot]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8033_07.jpg" length="2486" type="image/jpeg"/></item><item><title><![CDATA[wo 08 okt, 20.30 uur - Leden van het Rotterdams Philharmonisch - Brahms en Strauss]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5085/Leden_van_het_Rotterdams_Philharmonisch/Brahms_en_Strauss/]]></link><description><![CDATA[‘Ik hou van je! Ik moet je weer zien!’, schrijft de jonge Brahms aan zijn verloofde. ‘Maar binden kan ik me niet!’ Met zijn gepassioneerde Tweede Strijksextet getuigt Brahms van zijn spijt: het openingsdeel schreeuwt de naam uit van zijn afgewezen liefde. Een kleine eeuw later probeert Richard Strauss de klok terug te draaien in zijn fijnbesnaarde Capriccio-sextet: muziek die klinkt als een teder aanzoek – alsof alles nog mogelijk is.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7841_07.jpg" length="2361" type="image/jpeg"/></item><item><title><![CDATA[do 09 okt, 20.15 uur - Rotterdams Philharmonisch - Dansen van de 20ste eeuw]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5087/Rotterdams_Philharmonisch/Dansen_van_de_20ste_eeuw/]]></link><description><![CDATA[Koortsige ritmes stuwen de hartslag van dit concert op: van de habanera in Ravels Spaanse rapsodie via Bartóks stampend-dynamische ballet van de Grote Stad tot het machismo van de malambo in Ginastera’s Estancia-suite. Middelpunt is Ligeti’s duizelingwekkende Vioolconcert: een maalstroom van Hongaarse melodieën, Bulgaarse dansen en onaardse klanken. Een programma dat u vanaf het begin beetpakt om niet meer los te laten.<br/><br/>Om 19.15 uur inleiding door Frank Kouwenhoven (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7843_07.jpg" length="2823" type="image/jpeg"/></item><item><title><![CDATA[vr 10 okt, 20.15 uur - Rotterdams Philharmonisch - Dansen van de 20ste eeuw]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5089/Rotterdams_Philharmonisch/Dansen_van_de_20ste_eeuw/]]></link><description><![CDATA[Koortsige ritmes stuwen de hartslag van dit concert op: van de habanera in Ravels Spaanse rapsodie via Bartóks stampend-dynamische ballet van de Grote Stad tot het machismo van de malambo in Ginastera’s Estancia-suite. Middelpunt is Ligeti’s duizelingwekkende Vioolconcert: een maalstroom van Hongaarse melodieën, Bulgaarse dansen en onaardse klanken. Een programma dat u vanaf het begin beetpakt om niet meer los te laten.<br/><br/>Om 19.15 uur inleiding door Frank Kouwenhoven (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7845_07.jpg" length="2823" type="image/jpeg"/></item><item><title><![CDATA[vr 10 okt, 20.30 uur - Mike del Ferro &amp; Ceumar - ]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4597/Mike_del_Ferro_Ceumar//]]></link><description><![CDATA[De Nederlandse jazzpianist en componist Mike del Ferro speelde al in meer dan 100 landen en met mensen als Toots Thielemans, Jack DeJohnette en Randy Brecker. Maar ook met minder bekende musici uit zeer diverse culturen zoekt – en vindt – hij een muzikale dialoog. Samen met vocaliste en gitariste Ceumar verkende hij de Braziliaanse muziek op de cd Impressions of Brazil. Nu gaan zij opnieuw de samenwerking aan in een avond vol afwisselend, spannend repertoire.<br /><img width="150" height="91" alt="" src="/cms_files/Image/LOGO-VRIJDAGINDEFLIP-ICON.jpg" /><br /><a target=_blank href="http://www.jazzinternationalrotterdam.nl"><img height="37" width="150" alt="" src="/cms_files/Image/SJIR_web.jpg" /></a><br/><br/><ul><li><a target="_blank" href="http://www.jazzinternational.nl">www.jazzinternational.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6725_07.jpg" length="4473" type="image/jpeg"/></item><item><title><![CDATA[za 11 okt, 10.30 uur - Zelf Muziek Maken (6+) - Overal is ritme]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4599/Zelf_Muziek_Maken_6_/Overal_is_ritme/]]></link><description><![CDATA[Alles heeft een ritme en iedereen tikt wel eens een ritme mee. Wanneer je dat samen met anderen doet, heb je zo een complete ritmesectie van slag- en percussieinstrumenten bij elkaar. Aan het eind van deze workshop vormen de deelnemers een grote, swingende slagwerkband.<br /><br />Het hele gezin neemt deel aan deze workshop.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6155_07.jpg" length="3945" type="image/jpeg"/></item><item><title><![CDATA[za 11 okt, 11.00 uur - Talentfabriek - Pianomarathon Studenten Codarts]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4971/Talentfabriek/Pianomarathon_Studenten_Codarts/]]></link><description><![CDATA[Hinkende ritmes en hoekige melodieën vormen de vitale karakteristieken van Boheemse volksmuziek. Tegenwoordig beslaat Bohemen tweederde van Tsjechië, vroeger maakte het deel uit van de gigantische dubbelmonarchie Oostenrijk-Hongarije. Vooral in de decennia rond 1900 hebben componisten het Boheemse platteland afgespeurd, op zoek naar inspiratie voor hun eigen kunstmuziek. Op hun beurt gaan pianostudenten van Codarts op zoek naar sporen van volksmuziek in het pianowerk van Boheemse (en Moravische) componisten als Smetana, Dvorák, Suk en Janácek. Waar ze op zullen stuiten is nog een verrassing, maar houd alvast rekening met opzwepende dansen en melancholieke dromerijen!]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6887_07.jpg" length="3837" type="image/jpeg"/></item><item><title><![CDATA[za 11 okt, 20.15 uur - Calefax - African Roots]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4601/Calefax/African_Roots/]]></link><description><![CDATA[Tijdens een tournee door Zuid-Afrika begonnen de plannen voor het programma African Roots bij de vijf rietblazers van Calefax te borrelen. De mensen, de natuur en de lokale muziek brachten hen op het idee om een concert samen te stellen met onder andere muziek van de Zuid-Afrikaanse componist Kevin Volans, de minimalist Steve Reich en met eigen bewerkingen van traditionele Afrikaanse muziek.<br />Kevin Volans vatte het ooit krachtig samen: ‘met mijn muziek wil ik een Afrikaans computervirus loslaten op de harde schijf van de westerse gecomponeerde muziek’. Hiermee doelde hij onder andere op hiërarchie-loze muziekvormen, de repeterende ritmische patronen en vooral de energie en het plezier waarmee er op Afrikaanse bodem wordt gemusiceerd. Ook een componist als Steve Reich mag graag zijn oor te luisteren leggen bij Afrikaanse tribale muziek, waar hij verrassende overeenkomsten aantrof met zijn eigen gelaagde en repetitieve composities.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6697_07.jpg" length="3736" type="image/jpeg"/></item><item><title><![CDATA[zo 12 okt, 12.00 uur - Leden van het Rotterdams Philharmonisch - Brahms en Strauss]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5091/Leden_van_het_Rotterdams_Philharmonisch/Brahms_en_Strauss/]]></link><description><![CDATA[‘Ik hou van je! Ik moet je weer zien!’, schrijft de jonge Brahms aan zijn verloofde. ‘Maar binden kan ik me niet!’ Met zijn gepassioneerde Tweede Strijksextet getuigt Brahms van zijn spijt: het openingsdeel schreeuwt de naam uit van zijn afgewezen liefde. Een kleine eeuw later probeert Richard Strauss de klok terug te draaien in zijn fijnbesnaarde Capriccio-sextet: muziek die klinkt als een teder aanzoek – alsof alles nog mogelijk is.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7847_07.jpg" length="2361" type="image/jpeg"/></item><item><title><![CDATA[zo 12 okt, 14.15 uur - Rotterdams Philharmonisch - Feest (4+)]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5093/Rotterdams_Philharmonisch/Feest_4_/]]></link><description><![CDATA[De Kinderboekenweek bestaat 60 jaar en dat wordt groots gevierd! Het thema van dit jubeljaar is ‘Feest!’. In kinderboeken wordt ook volop gefeest: verjaardagen, Sinterklaas, Suikerfeest, schoolfeestjes, enz. En bij feest hoort muziek, dus wat past er beter dan een spetterend familieconcert met zang en dans, waar je ook nog je favoriete kinderboekenschrijvers kunt ontmoeten?<br /><br />Na afloop feestje ter ere van de boekpresentatie van het nieuwe boek van Koos Meinderts.<br /><br />Voorstelling in het kader van de Kinderboekenweek 2014.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7849_07.jpg" length="2721" type="image/jpeg"/></item><item><title><![CDATA[zo 12 okt, 15.00 uur - Colin Andrews - Laurensorgel - America!]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4603/Colin_Andrews_Laurensorgel/America_/]]></link><description><![CDATA[De Amerikaanse orgelvirtuoos Colin Andrews brengt een programma met muziek van Amerikaanse bodem.<br /><br />Colin Andrews studeerde orgel en piano aan de Royal Academy of Music in Londen. Daarna had hij les van enkele vooraanstaande orgeldocenten/organisten, zoals Lionel Rogg en Dame Gillian Weir. Sinds zijn debuut op 18-jarige leeftijd wordt hij wereldwijd erkend als een veelzijdig en vaardig musicus. Ook als orgelleraar en lector geldt hij als een autoriteit; momenteel is hij verbonden aan de Jacobs School of Music (Indiana University). Vanmiddag neemt Colin Andrews muziek uit eigen land mee, de Verenigde Staten.<br /><br />Dit concert komt tot stand i.s.m. Stichting Laurenskerk <br /><a target=_blank href="http://www.laurenskerkrotterdam.nl"><img height="71" width="60" alt="" src="/cms_files/Image/Laurenskerk_RGB_op_wit_webversie.jpg" /></a>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6157_07.jpg" length="3479" type="image/jpeg"/></item><item><title><![CDATA[zo 12 okt, 18.30 uur - De vrolijke Franz - met een zweem van melancholie: Liedsalon met Lex Bohlmeijer en Omroep MAX]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4605/De_vrolijke_Franz/met_een_zweem_van_melancholie_Liedsalon_met_Lex_Bohlmeijer_en_Omroep_MAX/]]></link><description><![CDATA[Er wacht u vanavond een veelomvattend programma! Meteen bij binnenkomst in de foyer van de Jurriaanse Zaal wordt u verwelkomd met optredens door zangstudenten van het Koninklijk Conservatorium. In het hoofdprogramma vindt u niet één uitzonderlijke liedzanger op het podium, maar wel vier – plus een gerenommeerd pianobegeleider natuurlijk – en staat een van de voornaamste liedcomponisten centraal: Franz Schubert. De gevierde bas Robert Holl en de zijnen laten hun licht schijnen op ‘de vrolijke Franz’, alhoewel deze romantische componist ook vaak een zweem van melancholie over zich had. Als intermezzo biedt Fons Hosman u de mogelijkheid om wijnen te proeven, muzikaal omlijst door een optreden van de zangstudenten uit Den Haag. Radiopresentator Lex Bohlmeijer is uw gastheer bij het concert en aan het eind van de avond is er een meet & greet met de musici!<br /><br />Dit concert komt tot stand i.s.m. de Vrienden van het Lied<br /><img width="200" height="99" alt="" src="/cms_files/Image/VriendenvanhetLied_web.jpg"/><br />en Omroep MAX &nbsp;&nbsp;<img width="50" height="32" alt="" src="/cms_files/Image/Omroep-MAX-logo-web.jpg" />]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6159_07.jpg" length="1964" type="image/jpeg"/></item><item><title><![CDATA[zo 12 okt, 20.15 uur - Ivo Pogorelich - piano - Liszt, Schumann, Stravinsky, Brahms]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4607/Ivo_Pogorelich_piano/Liszt_Schumann_Stravinsky_Brahms/]]></link><description><![CDATA[In zijn jongere jaren leek Ivo Pogorelich misschien wel een beetje op Franz Liszt, in de zin dat hij werd aanbeden als een popster. Met zijn wilde haren en intrigerende blik deed hij menig vrouwenhart sneller kloppen. Wat belangrijker is: zijn zeggingskracht op het podium was wellicht even groot als die van Liszt. En nog steeds wordt Pogorelich geroemd om zijn ongewone uitvoeringen en wordt hij omschreven als een ‘magiër met klankkleuren’. Het eerste werk op het concertprogramma is een tour de force voor pianisten: Après une lecture du Dante portretteert de angstaanjagende taferelen in Dantes Inferno (‘Hel’) en is dan ook een wervelwind van geweld en wanorde, alhoewel eindigend in paradijselijk geluk. De Fantasie in C is een van Schumanns pianomeesterwerken, groots in diepgang en structuur. Na de briljante pianistiek in Stravinsky’s Petroesjka besluit Pogorelich zijn recital met de Paganini-variaties, Brahms’ politieke statement tegenover Liszt(aanhangers).<br/><br/>Om 19.30 uur inleiding door Huib Ramaer]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6743_07.jpg" length="2915" type="image/jpeg"/></item><item><title><![CDATA[di 14 okt, 20.15 uur - Schumann Quartett - Haydn, Bartók, Puccini, Verdi]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4609/Schumann_Quartett/Haydn_Bart_k_Puccini_Verdi/]]></link><description><![CDATA[De naam van het Schumann Quartett is niet alleen een hommage aan een van de grote 19de-eeuwse componisten, maar is vooral de achternaam van de drie broers Erik, Ken en Mark in het kwartet, naast Liisa Randalu. Vanavond spelen ze behalve kwartetten van Haydn en Bartók weinig uitgevoerde Italiaanse kamermuziek. Giacomo Puccini en Giuseppe Verdi zijn beiden voornamelijk bekend vanwege hun opera’s, maar componeerden wel degelijk ook andere werken. Crisantemi, dat Puccini naar eigen zeggen in één nacht voltooide, is een donker getinte elegie, beter bekend in de georkestreerde versie. Het Strijkkwartet in e is Verdi’s enige kwartet. Hij schreef het in 1873 aanvankelijk als een studiewerk voor zichzelf, maar toen hij zich realiseerde dat het een behoorlijk werk was geworden, liet hij het drie jaar later toch publiceren. Merkwaardig eigenlijk, dat dit melodierijke en gedreven strijkkwartet niet vaker wordt uitgevoerd.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6173_07.jpg" length="2708" type="image/jpeg"/></item><item><title><![CDATA[do 16 okt, 20.15 uur - Rotterdams Philharmonisch - Brahms en de Vier letzte Lieder]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5095/Rotterdams_Philharmonisch/Brahms_en_de_Vier_letzte_Lieder/]]></link><description><![CDATA[‘Brahms, met zijn grandioze akkoorden, imposante koper en meeslepende gevoelens, toont ook altijd zijn kwetsbaarheid’, zegt Yannick Nézet-Séguin, ‘en juist daarom is hij mijn nummer één.’ Zo begon Yannick aan zijn ‘magistrale’ (NRC) Brahms-cyclus met ons orkest, waarvan u nu de bekroning kunt meemaken in de warmbloedige Derde. Als opmaat klinken Strauss’ Vier letzte Lieder, die Brahms in een gouden strijklicht plaatsen.<br/><br/>Om 19.15 uur inleiding door Marien van Staalen (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7851_07.jpg" length="2733" type="image/jpeg"/></item><item><title><![CDATA[vr 17 okt, 12.30 uur - Codarts Symphony Orchestra - lunchconcert]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5247/Codarts_Symphony_Orchestra/lunchconcert/]]></link><description><![CDATA[]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8109_07.jpg" length="3507" type="image/jpeg"/></item><item><title><![CDATA[vr 17 okt, 20.15 uur - Rotterdams Philharmonisch - Brahms en de Vier letzte Lieder]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5097/Rotterdams_Philharmonisch/Brahms_en_de_Vier_letzte_Lieder/]]></link><description><![CDATA[‘Brahms, met zijn grandioze akkoorden, imposante koper en meeslepende gevoelens, toont ook altijd zijn kwetsbaarheid’, zegt Yannick Nézet-Séguin, ‘en juist daarom is hij mijn nummer één.’ Zo begon Yannick aan zijn ‘magistrale’ (NRC) Brahms-cyclus met ons orkest, waarvan u nu de bekroning kunt meemaken in de warmbloedige Derde. Als opmaat klinken Strauss’ Vier letzte Lieder, die Brahms in een gouden strijklicht plaatsen.<br/><br/>Om 19.15 uur inleiding door Marien van Staalen (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7853_07.jpg" length="2733" type="image/jpeg"/></item><item><title><![CDATA[vr 17 okt, 20.30 uur - Cuadro Flamenco Irene Álvarez - ZarZamora]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4613/Cuadro_Flamenco_Irene_Alvarez/ZarZamora/]]></link><description><![CDATA[Zarzamora betekent braamstruik en is in de poëzie van de flamenco een metafoor voor het alsmaar voortvloeiende leven met daarin het samengaan van liefde en pijn – het zoete fruit in het midden van de pijnlijke doorns. In dit programma brengt Cuadro Flamenco Irene Álvarez pure, eenvoudige flamenco. Zij vertellen over hun liefdes en de rare, soms pijnlijke bochten die de weg van het leven plotseling kan maken. Centraal in dit programma staat de ongeremde, vaak moderne expressie en de vrouwelijke elegantie van danseres Irene Álvarez. <br />Na afloop meet & greet met de musici.<br /><img width="150" height="91" alt="" src="/cms_files/Image/LOGO-VRIJDAGINDEFLIP-ICON.jpg" />]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8279_07.jpg" length="2941" type="image/jpeg"/></item><item><title><![CDATA[vr 17 okt, 21.00 uur - Ralph van Raat en Maarten van Veen - De terreur van The Black Page]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4611/Ralph_van_Raat_en_Maarten_van_Veen/De_terreur_van_The_Black_Page/]]></link><description><![CDATA[Voor sommige pianisten is het een nachtmerrie, voor anderen de ultieme uitdaging: The Black Page, de pagina die zwart ziet van de noten. Meesterpianist Ralph van Raat weet er wel raad mee. In dit concert zet hij samen met zijn medemusici de tanden in de krankzinnigste virtuoze pianomuziek uit de 20ste en 21ste eeuw. Daarbij mag The Black Page, het in ritmisch opzicht helsmoeilijke stuk van Frank Zappa, natuurlijk niet ontbreken. Het indrukwekkende Celestial Mechanics voor versterkte piano vierhandig van de Amerikaanse componist George Crumb maakt deel uit van Makrokosmos, een cyclus van karakterstukken, geïnspireerd door astrologische en astronomische krachten. In deze lijn past ook het bezwerende en ritualiserende Rebonds voor solo percussie van Iannis Xenakis.<br /><br /><b>Red Sofa Bankpas</b><br />Voor slechts € 79 per seizoen beschikt u over de Red Sofa Bankpas, waarmee u voor <a href="http://www.dedoelen.nl/nl/concerten/agenda/?date_from=2014-9-1&date_to=2015-8-31&genre%5B%5D=red_sofa"><b>alle Red Sofa-concerten in seizoen 2014-2015</b>&nbsp;</a>een gratis kaart kunt reserveren. Klik <a href="https://dedoelen.ticketmatic.com/addloyaltycard.php?a=OUBoHS3DoSw&e=t8Y497W9JB4&s=80cswBbInpo&l=nl/"><b>hier</b></a> voor het bestellen van de Red Sofa Bankpas.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6175_07.jpg" length="2209" type="image/jpeg"/></item><item><title><![CDATA[za 18 okt, 15.00 uur - Geert Bierling - Doelenorgel en drukwindharmonium - Hommage à César Franck]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4615/Geert_Bierling_Doelenorgel_en_drukwindharmonium/Hommage_a_Cesar_Franck/]]></link><description><![CDATA[Geert Bierling, stadsorganist van Rotterdam<br /><br />Op uitnodiging van de Parijse uitgever Auguste Durand componeerde César Franck (1822-1890) ‘Trois Chorals pour grand orgue’ en voltooide deze werken in 1890, het laatste jaar van zijn leven. Dat deze monumentale orgelwerken de geschiedenis in zouden gaan als zijn zwanenzang konden Franck en de Parijse orgelwereld niet vermoeden. In het jaar 1890 was Franck ook bezig met het componeren van liturgische werken voor harmonium, het ‘Orgue expressif’. Uit deze door zijn plotseling overlijden onvoltooide bundel worden als intermezzi enkele stukken uitgevoerd op een historisch Parijs’ drukwindharmonium uit de tijd van Franck, begeleid met 19de-eeuwse zwijgende filmbeelden van Parijs.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6183_07.jpg" length="3178" type="image/jpeg"/></item><item><title><![CDATA[zo 19 okt, 14.00 uur - Dag zon, dag zee! (2+) - Ageeth de Haan]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4617/Dag_zon_dag_zee_2_/Ageeth_de_Haan/]]></link><description><![CDATA[‘Ik zit hier zo lekker’ is een zin uit een van de liedjes en vertelt meteen iets over de sfeer van dit programma. Meedoen of lekker zitten luisteren; alles is goed, het publiek kiest zelf. In dit sprankelende, interactieve liedjesprogramma neemt Ageeth het publiek mee naar allerlei herkenbare en fantasievolle situaties. Een programma vol liedjes in verschillende muziekstijlen, die Ageeth met korte teksten met elkaar verbindt. Over een eindje vliegen, wilde dieren, limonade met taart, over papa’s en mama’s en het strand.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6185_07.jpg" length="3577" type="image/jpeg"/></item><item><title><![CDATA[zo 19 okt, 14.00 uur - Druk Werk (6+) - Brisk]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4619/Druk_Werk_6_/Brisk/]]></link><description><![CDATA[Druk, druk, druk, haasten, haasten, haasten, snel nog even iets afmaken. Ping, een mail. Tring, de telefoon. BRISK heeft het druk op kantoor. Opschieten, anders wordt de directeur nog boos! <br />Maar de directeur is met hele andere dingen bezig. Hij fantaseert erover hoe het op zijn kantoor zou zijn als iedereen muziek zou maken in plaats van de hele dag te vergaderen, te telefoneren en te typen.<br />Druk Werk is een fascinerende mix van computers, mails, ringtones, een printer, een enorme berg blokfluiten en prachtige muziek van een bonte verzameling van componisten.<br /><br />Deze productie komt tot stand met financiële steun van het Fonds Podiumkunsten, het Prins Bernhard Cultuurfonds, Het SNS Reaal Fonds en het VSB Fonds.<br /><br />Aansluitend (van ca.15.00-16.00 uur) is er een knutselworkshop met Villa Zebra! Daarnaast is er een ‘Maan Roos Muziek Podium’ in de Jurriaanse Foyer. Wie wil mag zijn of haar instrument meebrengen en zelf een kort optreden geven!]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6189_07.jpg" length="3906" type="image/jpeg"/></item><item><title><![CDATA[zo 19 okt, 14.15 uur - Rotterdams Philharmonisch - Brahms en de Vier letzte Lieder]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5099/Rotterdams_Philharmonisch/Brahms_en_de_Vier_letzte_Lieder/]]></link><description><![CDATA[‘Brahms, met zijn grandioze akkoorden, imposante koper en meeslepende gevoelens, toont ook altijd zijn kwetsbaarheid’, zegt Yannick Nézet-Séguin, ‘en juist daarom is hij mijn nummer één.’ Zo begon Yannick aan zijn ‘magistrale’ (NRC) Brahms-cyclus met ons orkest, waarvan u nu de bekroning kunt meemaken in de warmbloedige Derde. Als opmaat klinken Strauss’ Vier letzte Lieder, die Brahms in een gouden strijklicht plaatsen.<br/><br/>Om 13.15 uur inleiding door Marien van Staalen (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7835_07.jpg" length="2733" type="image/jpeg"/></item><item><title><![CDATA[zo 19 okt, 16.00 uur - Dag zon, dag zee! (2+) - Ageeth de Haan]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4621/Dag_zon_dag_zee_2_/Ageeth_de_Haan/]]></link><description><![CDATA[‘Ik zit hier zo lekker’ is een zin uit een van de liedjes en vertelt meteen iets over de sfeer van dit programma. Meedoen of lekker zitten luisteren; alles is goed, het publiek kiest zelf. In dit sprankelende, interactieve liedjesprogramma neemt Ageeth het publiek mee naar allerlei herkenbare en fantasievolle situaties. Een programma vol liedjes in verschillende muziekstijlen, die Ageeth met korte teksten met elkaar verbindt. Over een eindje vliegen, wilde dieren, limonade met taart, over papa’s en mama’s en het strand.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6187_07.jpg" length="3577" type="image/jpeg"/></item><item><title><![CDATA[ma 20 okt, 12.00 uur - Yannick Nézet-Séguin dirigeert - Codarts Symphony Orchestra]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5249/Yannick_Nezet_Seguin_dirigeert/Codarts_Symphony_Orchestra/]]></link><description><![CDATA[Openbare repetitie]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8107_07.jpg" length="3080" type="image/jpeg"/></item><item><title><![CDATA[ma 20 okt, 20.15 uur - Orkest van de Achttiende Eeuw - Wenen - Warschau v.v.]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4623/Orkest_van_de_Achttiende_Eeuw/Wenen_Warschau_v_v_/]]></link><description><![CDATA[Als het Orkest van de Achttiende Eeuw Haydn en Mozart speelt, stap je in een tijdmachine. Je bevindt je in Wenen, waar de 26-jarige Mozart een mis componeert die mogelijk is bestemd voor zijn huwelijk met Constanze. Of je reist van Wenen naar Parijs, waar Haydns symfonieën werden gespeeld door muzikanten die gekleed gingen in blauwe livrei. Saillant detail: ze droegen ook allemaal een degen. Het Orkest van de Achttiende Eeuw voert deze werken uit op historische instrumenten, zodat je verrassend dicht bij de klanken komt die de muziekliefhebbers destijds hebben gehoord. Het concert maakt een tussenstop in Warschau 1830. Daar openbaart de Poolse meesterpianist Janusz Olejniczak de authentieke poëzie van zijn beroemde landgenoot Frédéric Chopin.<br/><br/>Om 19.30 uur Neil Wallace in gesprek met Sieuwert Verster, zakelijk leider Orkest van de Achttiende Eeuw]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6195_07.jpg" length="2986" type="image/jpeg"/></item><item><title><![CDATA[do 23 okt, 20.15 uur - Ntjam Rosie - ]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4625/Ntjam_Rosie//]]></link><description><![CDATA[Sinds ze in 2008 twee grote muziekprijzen ontving, was Ntjam Rosie te zien bij De Wereld Draait Door, stond ze op nummer 1 bij iTunes en speelde ze op prestigieuze festivals als North Sea Jazz. Haar eerste cd Atouba omvatte een mengeling van soul en Afrikaanse roots; de tweede, Elle, had een jazzy, soulvolle seventies-vibe en op het nieuwste album, At the back of beyond, lijkt ze haar eigen sound helemaal gevonden te hebben: met de inbreng van gitaren en een reflectiever, intiemer geluid laat Ntjam Rosie de luisteraar nu heel dichtbij komen.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6191_07.JPG" length="3998" type="image/jpeg"/></item><item><title><![CDATA[vr 24 okt, 20.15 uur - Alexander Melnikov - piano - Schubert, Brahms, Sjostakovitsj]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4627/Alexander_Melnikov_piano/Schubert_Brahms_Sjostakovitsj/]]></link><description><![CDATA[De Russische pianist Alexander Melnikov wordt geroemd om zijn verbeeldingskracht en zijn vermogen om lange verhaallijnen te creëren. The New York Times noemde zijn uitvoeringen ‘boeiend en zinderend’. Vanavond kan Alexander Melnikov zijn kwaliteiten ten volle tentoonspreiden. Na vernuftige fantasieën van Schubert en Brahms is de tweede helft van het concertprogramma gereserveerd voor Sjostakovitsj’ meesterwerk voor de piano: zijn (24) Preludes en Fuga’s (waarvan Melnikov de eerste twaalf uitvoert). Melnikovs opname van de Sjostakovitsj-cyclus, door Harmonia Mundi uitgebracht in 2010, werd beloond met de BBC Music Magazine Award 2011 in de categorie Instrumentaal, een ‘Choc de classica’ voor de beste geluidsregistratie in 2010 en de Preis der Deutschen Schallplattenkritik 2010. BBC Music Magazine voegde de opname zelfs toe aan zijn ‘50 Greatest Recordings of All Time’. Oftewel: er staat u een bijzondere avond te wachten!<br/><br/>Om 19.30 uur inleiding door Huib Ramaer]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6193_07.jpg" length="2612" type="image/jpeg"/></item><item><title><![CDATA[vr 24 okt, 20.30 uur - Estafest - Eno Supo]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4629/Estafest/Eno_Supo/]]></link><description><![CDATA[Estafest bestaat uit vier eigenzinnige improvisatoren onder wie twee Boy Edgarprijswinnaars (gitarist Anton Goudsmit en violist Oene van Geel). Het jazzkwartet creëert de meest waanzinnige composities waarmee het, in ongebruikelijke kamermuziekbezetting, verwarring en vervoering veroorzaakt. Mingus meets Schönberg meets Bach meets Radiohead, gespeeld door een bassende sax, een drummende viool en een zingende piano, op een ondergrond van Afrikaans gitaargetokkel. Na lovende recensies voor hun live-cd presenteerde Estafest in 2014 het bejubelde studio-album Eno Supo. ‘Intens en reflectief, met noten die lijken te ademen’, schreef NRC lovend en de Volkskrant schreef wat goed dat rietblazer Mete Erker, violist Oene van Geel, gitarist Anton Goudsmit en pianist Jeroen van Vliet hun drie jaar geleden verschenen plaat Live! eindelijk een vervolg hebben gegeven’.<br /><img width="150" height="91" alt="" src="/cms_files/Image/LOGO-VRIJDAGINDEFLIP-ICON.jpg" /><br /><a target=_blank href="http://www.jazzinternationalrotterdam.nl"><img height="37" width="150" alt="" src="/cms_files/Image/SJIR_web.jpg" /></a><br/><br/><ul><li><a target="_blank" href="http://www.jazzinternational.nl">www.jazzinternational.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7641_07.jpg" length="4167" type="image/jpeg"/></item><item><title><![CDATA[zo 26 okt, 11.00 uur - Daniel Kwartet - Van 4 tot 23 solostrijkers]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4631/Daniel_Kwartet/Van_4_tot_23_solostrijkers/]]></link><description><![CDATA[Het Daniel Kwartet werd in 1974 in Israël opgericht door vier musici die elkaar tijdens hun studie aan de Rubin Academie in Tel Aviv hadden leren kennen. In 1976 vestigde het Daniel Kwartet zich in Nederland, vanwaaruit het naam maakte dankzij tournees binnen en buiten Europa. Ook trad het ensemble op tijdens verschillende festivals, waaronder het Gergiev Festival. De kwartetleden zijn als docent verbonden aan Codarts. Het Daniel Kwartet voert u mee in de muziek van Richard Strauss: eerst met zijn vieren, daarna delen ze het podium met altviolist Mikhail Zemtsov en strijkers van het Utrechts Conservatorium om Metamorphosen uit te voeren. Strauss componeerde deze ‘studie voor 23 solostrijkers’ met als ondertitel ‘In memoriam’ aan het eind van de Tweede Wereldoorlog. Aangenomen wordt dat het een lamento is over Duitslands oorlogsleed en -schade, in het bijzonder de vernietiging van het operagebouw van München, voor Strauss het symbool van het eens bloeiende muziekleven.<br /><br />Na afloop een glaasje champagne en meet & greet met de musici.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6213_07.jpg" length="3884" type="image/jpeg"/></item><item><title><![CDATA[wo 29 okt, 20.15 uur - Irish Super Night - met Iarla O’Lionáird, Lúnasa en Martin Hayes &amp; Dennis Cahill]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4633/Irish_Super_Night/met_Iarla_O_Lionaird_Lunasa_en_Martin_Hayes_Dennis_Cahill/]]></link><description><![CDATA[Onder leiding van de briljante en aanstekelijke accordeonist Mairtin O’Connor is de swingende instrumentale band Lúnasa al jaren een begrip in de Ierse muziek. Evenals violist Martin Hayes en zijn Amerikaanse tegenhanger, gitarist Dennis Cahill, die zo’n symbiose vormen dat het lijkt alsof ze samen één instrument bespelen. Derde zwaargewicht is zanger en producer Iarla Ó Lionáird, een centrale figuur in de Keltische muziek en bekend van zijn baanbrekende project Afro Celt Sound System. Samen laten zij de magie van de Ierse traditie versmelten met jazz, klassieke muziek en moderne stijlen.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6215_07.jpg" length="2311" type="image/jpeg"/></item><item><title><![CDATA[vr 31 okt, 20.15 uur - The Artist - Zwijgende film met live orkestbegeleiding]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4635/The_Artist/Zwijgende_film_met_live_orkestbegeleiding/]]></link><description><![CDATA[<b>Thomas Langmann presenteert: The Artist</b><br />Vertoning van de zwijgende film met orkest op het podium<br /><br />The Artist won in 2011 meer prijzen dan welke andere film ook, en dat voor een Franse, zwijgende film in zwart-wit. Behalve voor beste film, regie en acteur waren er ook Oscars en Golden Globes voor de geweldige muziek van Ludovic Bource. Zijn score werd in de film gedirigeerd door Ernst van Tiel, die ooit zijn carrière begon als assistent-dirigent van ons orkest. Nu keert hij weer bij ons terug in deze oog- en oorstrelende productie.<br /><br />Een film van Michel Hazanavicius met Jean Dujardin en Bérénice Bejo.<br /><br />‘Ongehoord slim, grappig en ontroerend…’ (NRC Handelsblad over The Artist)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6871_07.jpg" length="3331" type="image/jpeg"/></item><item><title><![CDATA[vr 31 okt, 20.30 uur - Lunatree (v/h Lunapark) - o.l.v. Arnold Marinissen]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4973/Lunatree_v_h_Lunapark_/o_l_v_Arnold_Marinissen/]]></link><description><![CDATA[Lunatree koppelt het recente Double Sextet van Steve Reich aan werk van drie componisten die elk op hun eigen manier met een voet in de minimal music staan. Dennehy’s Bulb is een wilde dans rond het boventoonspectrum van een heel lage G. Dessners werk is geënt op duistere Amerikaanse volksvertellingen. En in Marinissens Eight Songs for Oneglia implodeert een compleet popalbum tot een stuk van welgeteld tien minuten. <br />De muziek van Lunatree is warmbloedig en een tikje obsessief, en komt tot stand in nauwe samenwerking met een aantal componisten om hen heen. Daarnaast is Lunatree voortdurend op zoek naar muziek van zielsverwanten, voegt die aan het repertoire toe, bewerkt haar wanneer het nodig is.<br /><br />In de afgelopen vijf jaar stond Lunatree op alle belangrijke podia in Nederland, toerde onder meer naar Duitsland, Italië, Frankrijk en België, en bracht twee cd’s uit: Flim en A beautiful bed to lie down in. Lunatree maakt deel uit van het pan-Europese project New Music: New Audiences, en wordt ondersteund door Buma Cultuur and MuziekLab Brabant/BKKC.<br /><img width="150" height="91" alt="" src="/cms_files/Image/LOGO-VRIJDAGINDEFLIP-ICON.jpg" />]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6895_07.jpg" length="3666" type="image/jpeg"/></item><item><title><![CDATA[za 01 nov, 00.00 uur - Symfonieorkest Rijnmond - Lunchconcert]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5263/Symfonieorkest_Rijnmond/Lunchconcert/]]></link><description><![CDATA[Symfonieorkest Rijnmond is een jong ambitieus orkest in de regio Rotterdam Rijnmond, dat in juni 2007 is opgericht. Onder leiding van Cor van der Linden (1e violist van het Rotterdams Philharmonisch Orkest) is het orkest uitgegroeid tot een volwaardig symfonieorkest, dat bestaat uit circa 60 gevorderde amateur- en beroepsmusici.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8207_07.jpg" length="3462" type="image/jpeg"/></item><item><title><![CDATA[za 01 nov, 19.30 uur - Tsjaikovski zingt - Philharmonie Zuidnederland]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4637/Tsjaikovski_zingt/Philharmonie_Zuidnederland/]]></link><description><![CDATA[Na een losbandig leven melancholiek rondreizen: ziedaar de Byronische held. Hij dankt zijn naam aan Lord Byron, de Britse schrijver en dichter die met zijn teksten grote invloed heeft uitgeoefend op 19de-eeuwse componisten. Zoals Hector Berlioz, de Franse romanticus die aan Byrons gedicht The Corsaire de titel ontleende voor een ouverture. En Pjotr Iljitsj Tsjaikovski, de Rus die een complete symfonie heeft geschreven rond Byrons gedicht Manfred. Daarin volgen we de hoofdpersoon op zijn tocht door de Alpen, hij is gekwetst door de liefde en levensmoe. Manfreds avonturen geven Tsjaikovski alle gelegenheid om het symfonieorkest eens flink te laten baden in kleur. Ook Tsjaikovski’s Rococo-variaties kennen een held: de cellist die dapper over de snaren jaagt. Die rol is István Várdai prima toevertrouwd, de jeugdige Hongaar die enkele toonaangevende concoursen heeft gewonnen. Hij krijgt uitmuntende ondersteuning van de Philharmonie Zuidnederland en dirigent Kees Bakels.<br/><br/>Om 18.45 uur inleiding door Neil Wallace]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8271_07.jpg" length="3225" type="image/jpeg"/></item><item><title><![CDATA[zo 02 nov, 10.59 uur - Zondagochtendconcerten - passe-partout najaar 2014]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4949/Zondagochtendconcerten/passe_partout_najaar_2014/]]></link><description><![CDATA[02-11-2014 - <a href="http://www.dedoelen.nl/nl/concerten/agenda/4951/carel_kraayenhof_lavina_meijer/zondagochtendconcert/"><b>Carel Kraayenhof & Lavina Meijer</b></a><br />09-11-2014 - <a href="http://www.dedoelen.nl/nl/concerten/agenda/4953/bill_and_his_hawaiians/zondagochtendconcert/"><b>Bill and his Hawaiians</b></a><br />16-11-2014 - <a href="http://www.dedoelen.nl/nl/concerten/agenda/4955/ernst_daniel_coosje_smid/zondagochtendconcert/"><b>Ernst Daniël & Coosje Smid</b></a><br />07-12-2014 - <a href="http://www.dedoelen.nl/nl/concerten/agenda/4957/ein_morgen_in_wien_operette_wensconcert/zondagochtendconcert/"><b>Ein Morgen in Wien - Operette Wensconcert</b></a><br />14-12-2014 - <a href="http://www.dedoelen.nl/nl/concerten/agenda/4959/laura_fygi_meets_trio_malando/zondagochtendconcert/"><b>Laura Fygi meets Trio Malando</b></a><br />21-12-2014 - <a href="http://www.dedoelen.nl/nl/concerten/agenda/4961/a_meezing_christmas_/zondagochtendconcert/"><b>A-Meezing Christmas!</b></a><br />(Hanson)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6503_07.jpg" length="2835" type="image/jpeg"/></item><item><title><![CDATA[zo 02 nov, 11.00 uur - Zondagochtendconcert - Carel Kraayenhof &amp; Lavinia Meijer]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4951/Zondagochtendconcert/Carel_Kraayenhof_Lavinia_Meijer/]]></link><description><![CDATA[Vorig jaar trad Carel Kraayenhof in het Zondagochtendconcert op met Juan Pablo Dobal. Deze keer neemt hij harpiste Lavinia Meijer mee.<br />De fascinerende en veelzijdige bandoneonist Carel Kraayenhof is al vele jaren de Hollandse ster van de Argentijnse tango. Met zijn grote kennis van de Argentijnse tango en zijn fraaie spel weet hij wereldwijd elk publiek te betoveren.<br />Lavinia Meijer demonstreert vol overgave de veelzijdigheid én de kracht van de harp. Als jong talent won zij alle belangrijke concoursen en awards, en als ‘rising star’ trok zij de wereld over. Het bracht haar al tot Carnegie Hall, New York en in Nederland stond niet eerder in Carré een zo jonge klassieke artiest solo op het podium. Lavinia geldt als een van de beste harpisten ter wereld.<br />Twee bijzonder gepassioneerde, virtuoze rasmuzikanten, samengebracht in dit Zondagochtendconcert.<br />(Hanson)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7585_07.jpg" length="2858" type="image/jpeg"/></item><item><title><![CDATA[zo 02 nov, 14.00 uur - Melles Classical Music Foundation - Orchester Solingen/Recklinghausen]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5259/Melles_Classical_Music_Foundation/Orchester_Solingen_Recklinghausen/]]></link><description><![CDATA[Het kamerorkest van MCMF (Orchester Solingen/Recklinghausen) brengt deze middag zowel Beethoven ten gehore als nieuwe composities van Gerrit Melles, oogarts én amateurcomponist. Het werk van Melles kan omschreven worden als 18de-eeuws klassiek met moderne accenten.<br />Gerrit Melles verzorgt ook de inleiding bij het concert. Hij is initiatiefnemer en oprichter van MCMF, waarmee hij <br />jonge musici een podium biedt om hun talenten aan het grote publiek te tonen.<br /><br />Programma<br />13.30-14.00 uur - Ontvangst<br />14.00-14.10 uur - Inleiding door Gerrit Melles<br />14.10-14.45 uur - Concert (deel I)<br />15.05-15.30 uur - Concert (deel II)<br />Aangeklede borrel na afloop is inbegrepen<br/><br/><ul><li><a target="_blank" href="http://www.mellesclassicalmusicfoundation.com">www.mellesclassicalmusicfoundation.com</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8141_07.jpg" length="2932" type="image/jpeg"/></item><item><title><![CDATA[zo 02 nov, 20.15 uur - Ferhat Göçer live on stage - presented by Mystiek Productions]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5053/Ferhat_Gocer_live_on_stage/presented_by_Mystiek_Productions/]]></link><description><![CDATA[Sinds zijn doorbraak in 2005 is Ferhat Göçer een van de meest geliefde artiesten in Turkije. Zijn repertoire is gebaseerd op volksmuziek en klassieke muziek. Met een flinke dosis pop en een scheut nostalgie. Ook in Nederland trekt deze zanger volle zalen met zijn klassiek geschoolde stem, romantische teksten en sympathieke uitstraling. Momenteel levert zijn nieuwe album Kalbe kiral k asklar hit na hit op. Met name de single Git met bijbehorende videoclip slaat alle records en prijkt bovenaan de hitlijsten. <br />Op veler verzoek komt Ferhat Göçer weer naar Rotterdam.<br/><br/><ul><li><a target="_blank" href="http://www.mystiekproductions.nl">www.mystiekproductions.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7529_07.jpg" length="2923" type="image/jpeg"/></item><item><title><![CDATA[ma 03 nov, 20.15 uur - Slagwerk Den Haag - Words &amp; Beyond II: Huh Nansulhun]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4639/Slagwerk_Den_Haag/Words_Beyond_II_Huh_Nansulhun/]]></link><description><![CDATA[De van oorsprong Koreaanse componiste Seung-Ah Oh, woonachtig in Nederland, werkt aan een Words & Beyond-trilogie. ‘Words & Beyond vat samen wie en wat ik ben: niet alleen een componist, ook een theatermaker.’ De afgelopen jaren zette Slagwerk Den Haag deel I – Words & Beyond: Hwang Jin-Yi uit 2008, geïnspireerd op het leven en de gedichten van een vooraanstaande courtisane uit het 16de-eeuwse Korea – meermalen op het programma. ‘Intrigerende Aziatische sfeer en zeer beheerste emoties’, kopte de Volkskrant in 2008 over de voorstelling. In haar nieuwe werk Huh Nansulhun laat Seung-Ah Oh u kennismaken met de poëzie van een 16de-eeuwse Koreaanse ‘feministe’, ook een ongelukkige vrouw, maar iemand uit de hoogste aristocratische kringen. Net als bij haar eerste Words & Beyond kunt u weer een ontmoeting tussen verschillende kunstvormen verwachten, geïnspireerd door Koreaanse tradities en symboliek.<br /><br /><b>Red Sofa Bankpas</b><br />Voor slechts € 79 per seizoen beschikt u over de Red Sofa Bankpas, waarmee u voor <a href="http://www.dedoelen.nl/nl/concerten/agenda/?date_from=2014-9-1&date_to=2015-8-31&genre%5B%5D=red_sofa"><b>alle Red Sofa-concerten in seizoen 2014-2015</b>&nbsp;</a>een gratis kaart kunt reserveren. Klik <a href="https://dedoelen.ticketmatic.com/addloyaltycard.php?a=OUBoHS3DoSw&e=t8Y497W9JB4&s=80cswBbInpo&l=nl/"><b>hier</b></a> voor het bestellen van de Red Sofa Bankpas.<br/><br/>Om 19.30 uur Neil Wallace in gesprek met enkele artiesten]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6219_07.jpg" length="2486" type="image/jpeg"/></item><item><title><![CDATA[di 04 nov, 20.15 uur - Mozarts Zwanezang - Amsterdam Sinfonietta &amp; Cappella Amsterdam]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4641/Mozarts_Zwanezang/Amsterdam_Sinfonietta_Cappella_Amsterdam/]]></link><description><![CDATA[Het verhaal is natuurlijk mooi. Mozart zou zijn Requiem hebben gecomponeerd omdat hij zijn eigen vroege dood heeft voorvoeld. Helaas klopt het niet. Het Requiem was een opdracht van ene graaf Von Walsegg, die er zijn jonggestorven vrouw mee wilde gedenken. Tijdens het werk eraan kreeg de 35-jarige componist wel een fatale ziekte. Wat hem mankeerde is nooit opgehelderd. Na Mozarts dood zette zijn leerling Franz Xaver Süssmayr in het onvoltooide manuscript de puntjes op de i. Sindsdien geldt het Requiem als een van de prachtigste rouwzangen ooit geschreven. U krijgt het gepresenteerd door de beste Nederlandse krachten: Amsterdam Sinfonietta en Cappella Amsterdam. Ook de vocale solisten zijn eersteklas. Dirigent Daniel Reuss plaatst het Requiem in een originele bedding. Hij combineert het stuk met delen uit Kanon pokajanen van Arvo Pärt. Deze hedendaagse mijmeringen over berouw passen wonderwel bij Mozarts 18de-eeuwse klanken.<br/><br/>Om 19.30 uur inleiding door Neil Wallace]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6223_07.jpg" length="3406" type="image/jpeg"/></item><item><title><![CDATA[do 06 nov, 20.15 uur - Rotterdams Philharmonisch - Plasson dirigeert Ravel en Franck]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5101/Rotterdams_Philharmonisch/Plasson_dirigeert_Ravel_en_Franck/]]></link><description><![CDATA[Wie aan Franse muziek denkt, denkt aan de verfijnde poëzie van Saint-Saëns en aan Ravels oogverblindende gevoel voor klankkleur. Aan die typisch Franse kwaliteiten voegt César Franck in zijn meeslepende Symfonie nog een zeldzame grandeur toe: de apotheose van dit concert, dat onder leiding van grootmeester Michel Plasson een van dé belevenissen van dit seizoen belooft te worden.<br/><br/>Om 19.15 uur inleiding door Gijsbert Kok (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7837_07.jpg" length="2498" type="image/jpeg"/></item><item><title><![CDATA[do 06 nov, 20.30 uur - Esther Groenenberg Band - GEANNULEERD]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4643/Esther_Groenenberg_Band/GEANNULEERD/]]></link><description><![CDATA[Haar verrassende YouTube-hit Oh Meisje, een vrolijke maar geëngageerde aanklacht tegen het huidige schoonheidsideaal, werd door bijna anderhalf miljoen mensen bekeken. Ook was ze al te zien bij Mooi! Weer de Leeuw maar na haar indrukwekkende optreden bij De Wereld Draait Door ging het hard met de Zwolse zangeres en liedjesschrijfster Esther Groenenberg: ze bracht twee platen uit en tourde langs de Nederlandse theaters en poppodia. In haar vierkoppige band speelt ze zelf toetsen, maar net zo lief een loopstation, orgeltjes of percussie-instrumenten.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6225_07.jpg" length="3653" type="image/jpeg"/></item><item><title><![CDATA[vr 07 nov, 20.15 uur - Rotterdams Philharmonisch - Plasson dirigeert Ravel en Franck]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5103/Rotterdams_Philharmonisch/Plasson_dirigeert_Ravel_en_Franck/]]></link><description><![CDATA[Wie aan Franse muziek denkt, denkt aan de verfijnde poëzie van Saint-Saëns en aan Ravels oogverblindende gevoel voor klankkleur. Aan die typisch Franse kwaliteiten voegt César Franck in zijn meeslepende Symfonie nog een zeldzame grandeur toe: de apotheose van dit concert, dat onder leiding van grootmeester Michel Plasson een van dé belevenissen van dit seizoen belooft te worden.<br/><br/>Om 19.15 uur inleiding door Gijsbert Kok (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7839_07.jpg" length="2498" type="image/jpeg"/></item><item><title><![CDATA[vr 07 nov, 20.30 uur - Artvark Saxophone Quartet - 10 jaar &amp; album release party]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4645/Artvark_Saxophone_Quartet/10_jaar_album_release_party/]]></link><description><![CDATA[De leden van het vernieuwende en grensverleggende Artvark Saxophone Quartet komen met hun verschillende achtergronden tot een origineel geluid. Tijdens dit feestelijke jubileumconcert – tevens ter ere van de 200ste geboortedag van Adolphe Sax, uitvinder van de saxofoon – presenteert Artvark zijn eerste compilatie-cd en verwelkomt het kwartet een hele bijzondere gast: choreografe Sanne van der Put. Zij zal met het kwartet en met een viertal dansers een bijzondere draai geven aan dit concert. Sanne van der Put werkte in het verleden met onder meer Calefax, Zapp4 en het DoelenKwartet.<br /><img width="150" height="91" alt="" src="/cms_files/Image/LOGO-VRIJDAGINDEFLIP-ICON.jpg" /><br /><a target=_blank href="http://www.jazzinternationalrotterdam.nl"><img height="37" width="150" alt="" src="/cms_files/Image/SJIR_web.jpg" /></a><br/><br/><ul><li><a target="_blank" href="http://www.jazzinternational.nl">www.jazzinternational.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6211_07.jpg" length="4173" type="image/jpeg"/></item><item><title><![CDATA[za 08 nov, 20.00 uur - De Nacht van NRC 2014 - ]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5261/De_Nacht_van_NRC_2014//]]></link><description><![CDATA[Na het grote succes van voorgaande edities organiseert NRC Handelsblad voor de 5de keer ‘De Nacht van NRC’, voor de eerste keer in de Doelen. De beste journalisten, columnisten en vele bekenden van de krant geven op deze speciale avond acte de présence. Met scherpe debatten, spraakmakende interviews, leerzame lezingen, de must sees van 2014, cabaret-optredens en een grandioze slotact. <br />Alles komt tijdens ‘De Nacht van NRC’ aan bod. Politiek, wetenschap, cultuur, boeken, economie, sport, muziek en nog veel meer. Met Wilfried de Jong, de uitreiking van de Heldringprijs voor beste columnist en traditiegetrouw een slotoptreden door Youp van ’t Hek.<br />Kortom een avond die u niet mag missen als u houdt van alles wat NRC te bieden heeft!<br/><br/><ul><li><a target="_blank" href="http://www.nrc.nl/nachtnrc">www.nrc.nl/nachtnrc</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8209_07.jpg" length="3347" type="image/jpeg"/></item><item><title><![CDATA[zo 09 nov, 11.00 uur - Zondagochtendconcert - Bill and his Hawaiians]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4953/Zondagochtendconcert/Bill_and_his_Hawaiians/]]></link><description><![CDATA[Het wordt tropisch warm in de Doelen met Bill and his Hawaiians. Zij brengen Hawaiiaanse muziek, zoals ooit de Kilima Hawaiians (met Bill en Mary Buysman) dat deden met hun show ‘Onder wuivende palmen’. Uiteraard zult u de bekende succesnummers van de Kilima’s herkennen en misschien wel meezingen!<br />Iedereen luisterde vroeger naar de radio, waar de Kilima’s tot in de jaren tachtig vele uitzendingen verzorgden. Zo ook Wim Zweekhorst, die onder de naam Bill Baker leiding gaf aan de Bill Baker’s Big Band. Enthousiast over de klanken van deze Hawaiiaanse band heeft hij eenzelfde formatie samengesteld met ervaren muzikanten uit de Nederlandse Hawaiian-wereld.<br />Natuurlijk hoort daar ook een Hula danseres bij. Diana Peters heeft Hawaii vele keren bezocht en daar de huladans bestudeerd. Zij beeldt de tekst van de liedjes uit. U waant zich terug in de tijd en kunt opnieuw, of alsnog, van de Hawaiiaanse muziek komen genieten.<br />(Hanson)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7587_07.jpg" length="4685" type="image/jpeg"/></item><item><title><![CDATA[zo 09 nov, 15.00 uur - Ute Gremmel-Geuchen - Laurensorgel - Bach door Bachkenner]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4649/Ute_Gremmel_Geuchen_Laurensorgel/Bach_door_Bachkenner/]]></link><description><![CDATA[De Duitse organiste Ute Gremmel-Geuchen studeerde onder anderen bij Ewald Kooiman aan het toenmalige Sweelinck Conservatorium in Amsterdam. Kooiman startte in 2008 de cd-opname van de complete orgelwerken van Johann Sebastian Bach op Silbermann-orgels, maar overleed onverwacht in 2009. Drie voormalige leerlingen van Kooiman – Ute Gremmel-Geuchen, Gerhard Gnann en Bernhard Klapprott – voltooiden het cd-project en werden ervoor beloond met de prestigieuze ECHO Klassik-prijs. Een programma met louter muziek van Bach door een Bach-kenner – beter kan het niet!<br /><br />Dit concert komt tot stand i.s.m. Stichting Laurenskerk <br /><a target=_blank href="http://www.laurenskerkrotterdam.nl"><img height="71" width="60" alt="" src="/cms_files/Image/Laurenskerk_RGB_op_wit_webversie.jpg" /></a>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6231_07.jpg" length="2964" type="image/jpeg"/></item><item><title><![CDATA[zo 09 nov, 20.15 uur - Trijntje Oosterhuis - &amp; Clayton Hamilton Jazz Orchestra]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4999/Trijntje_Oosterhuis/_Clayton_Hamilton_Jazz_Orchestra/]]></link><description><![CDATA[North Sea Jazz presents<br />Trijntje Oosterhuis & The Clayton Hamilton Jazz Orchestra<br />‘Sundays in New York’<br /><br />Trijntje Oosterhuis werkte samen met The Clayton Hamilton Jazz Orchestra aan haar album ‘Sundays in New York’ (2010). Het jaar daarna zong zij, begeleid door dit orkest, een aantal nummers van dit album op het North Sea Jazz Festival. Deze unieke samenwerking kent eindelijk een vervolg met drie concerten in Nederland. De optredens staan in het teken van dit album, daarnaast zal The Clayton Hamilton Jazz Orchestra een aantal eigen stukken spelen.<br /><br />The Clayton Hamilton Jazz Orchestra staat bekend als een van de beste big bands in de wereld. In 1985 formeren drummer Jeff Hamilton, bassist John Clayton en diens broer Jeff Clayton een big band uit een all star line-up van muzikanten uit Los Angeles. Dat levert prachtige muzikale samenwerkingen op én de nodige Grammy-nominaties en -awards. <br /><br />Trijntje Oosterhuis is een van de meest geprezen en veelzijdige zangeressen die Nederland kent. Zij zong met internationale grootheden als Lionel Richie, Al Jarreau, Queen, Andrea Bocelli, Herbie Hancock en Solomon Burke. Ook heeft Trijntje met jazzmuzikanten- en orkesten samengewerkt als Toots Thielemans, New Cool Collective, het Jazz Orchestra of the Concertgebouw en Amsterdam Sinfonietta.<br /><br />Dit concert wordt georganiseerd in samenwerking met<br /><br /><a target=_blank href="http://www.lantarenvenster.nl"><img height="20" width="150" alt="" src="/cms_files/Image/LantarenVenster_logo_web(1).jpg" /></a><br /><br /><a target=_blank href="http://www.northseajazz.com"><img width="100" height="66" alt="" src="/cms_files/Image/NSJ-presents_logo.jpg" /></a>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7001_07.jpg" length="3931" type="image/jpeg"/></item><item><title><![CDATA[zo 09 nov, 20.15 uur - DoelenKwartet - Dichter bij de componist]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4651/DoelenKwartet/Dichter_bij_de_componist/]]></link><description><![CDATA[‘Ik heb besloten om mijzelf als componist niet zo belangrijk te maken, maar mij te verschuilen achter een veelheid aan stemmen’, zo betoogde Micha Hamel in 2012. Als componist en als dichter bezit hij een breed scala aan stemmen die in woord en klank van zich laten horen. In dit programma draagt Micha Hamel eigen poëzie voor bij nieuw geschreven muziek van de jonge Grieks-Nederlandse componiste Aspasia Nasopoulou. Hamels eigen noten klinken in een nieuw werk voor strijkkwartet en sopraan op tekst van de surrealistische dichter Paul Eluard. Van de Belg Philippe Boesmans, autodidact en internationaal gelauwerd componist, vertolkt het DoelenKwartet zijn weinig gespeelde Fly and Driving.<br /><br /><p><iframe src="//player.vimeo.com/video/99539289?title=0&amp;byline=0&amp;portrait=0" width="450" height="253" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe></p><br /><b>Red Sofa Bankpas</b><br />Voor slechts € 79 per seizoen beschikt u over de Red Sofa Bankpas, waarmee u voor <a href="http://www.dedoelen.nl/nl/concerten/agenda/?date_from=2014-9-1&date_to=2015-8-31&genre%5B%5D=red_sofa"><b>alle Red Sofa-concerten in seizoen 2014-2015</b>&nbsp;</a>een gratis kaart kunt reserveren. Klik <a href="https://dedoelen.ticketmatic.com/addloyaltycard.php?a=OUBoHS3DoSw&e=t8Y497W9JB4&s=80cswBbInpo&l=nl/"><b>hier</b></a> voor het bestellen van de Red Sofa Bankpas.<br/><br/>Om 19.30 uur inleiding door o.a. Micha Hamel]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8239_07.jpg" length="3156" type="image/jpeg"/></item><item><title><![CDATA[di 11 nov, 20.15 uur - Eggner Trio - Mozart, Schubert, Arenski]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4653/Eggner_Trio/Mozart_Schubert_Arenski/]]></link><description><![CDATA[Wat een geluk als je als broers een pianotrio kunt vormen: van jongs af aan kun je samen de prachtigste muziek spelen! De Oostenrijkse gebroeders Eggner richtten in 1997 het Eggner Trio op en kregen in 2003 internationale bekendheid door de Melbourne International Chamber Music Competition te winnen. Sindsdien gaven ze concerten in Europa, Japan, Noord- en Zuid-Amerika, Australië en Nieuw-Zeeland. Bij Mozart en tijdgenoten is het pianotrio in feite een pianosonate waarin de cello de baslijn van de piano verdubbelt en de viool commentaar geeft op de melodielijn van de piano, maar vanaf de tijd van Beethoven is het een conversatie van drie volwaardige instrumenten. Schuberts Eerste Pianotrio is er een magnifiek, hartverwarmend voorbeeld van. Ook Anton Arenski – tegenwoordig weinig bekend, maar in zijn tijd een van de grootste Russische muzikale sterren – leverde met zijn Tweede Pianotrio een flinke, emotioneel geladen bijdrage aan het genre.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6235_07.jpg" length="3383" type="image/jpeg"/></item><item><title><![CDATA[wo 12 nov, 20.00 uur - Korpsconcert Marinierskapel - Marinierskapel der Koninklijke Marine]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5273/Korpsconcert_Marinierskapel/Marinierskapel_der_Koninklijke_Marine/]]></link><description><![CDATA[Het Korps Mariniers viert haar 349-jarig bestaan met een concert door de Marinierskapel en de Tamboers & Pijpers. Natuurlijk in Rotterdam, de dynamische, maritieme stad met moderne architectuur, cultuur, sport én de Van Ghentkazerne.<br />De muzikale specialisten en ambassadeurs van de Koninklijke Marine staan garant voor kwaliteit, variatie en verrassing. Jaarlijks worden duizenden kilometers afgelegd om in binnen- en buitenland optredens te verzorgen voor onder meer het Koninklijk Huis, Defensie en Goede Doelen-organisaties. In juni speelden ze nog voor Queen Elizabeth in Londen op uitnodiging van de Britse Royal Marines.<br />Met het behoud van de Van Ghentkazerne blijven gelukkig ook de muzikanten in de vertrouwde thuishaven Rotterdam. In dit feestelijke programma met verrassende solisten en aanstekelijke muziek staat de nauwe band tussen het Korps Mariniers en Rotterdam centraal.<br/><br/><ul><li><a target="_blank" href="http://www.facebook.com/marinierskapel">www.facebook.com/marinierskapel</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8233_07.jpg" length="4629" type="image/jpeg"/></item><item><title><![CDATA[do 13 nov, 20.15 uur - Rotterdams Philharmonisch - Beethoven en Sjostakovitsj]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5105/Rotterdams_Philharmonisch/Beethoven_en_Sjostakovitsj/]]></link><description><![CDATA[‘Wat een vernielzuchtig woest leven om me heen’, verzuchtte Beethoven tijdens het beleg van Wenen, om vervolgens in zijn Vijfde Pianoconcert het kanongebulder tot pure schoonheid te transformeren. Een radicaal ander geluid hoort u na de pauze in Sjostakovitsj’ Achtste Symfonie uit het oorlogsjaar 1943. ‘Wat een zeldzaam indringende ervaring’, schreef De Telegraaf over de uitvoering van dat werk door het Rotterdams Philharmonisch.<br/><br/>Om 19.15 uur inleiding door Michel Khalifa (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7827_07.jpg" length="3195" type="image/jpeg"/></item><item><title><![CDATA[vr 14 nov, 20.15 uur - DoelenEnsemble - ‘Jetzt wage ich nichts mehr’]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4655/DoelenEnsemble/_Jetzt_wage_ich_nichts_mehr_/]]></link><description><![CDATA[‘Jetzt wage ich nichts mehr’ (Nu heb ik de moed niet meer), zo schreef Arnold Schönberg bij zijn Fragment eines Klavierstücks uit 1901, een miniatuurcompositie die zomaar in het niets ophoudt. Wat was er gebeurd? Schönberg, altijd op zoek naar onontgonnen expressiemogelijkheden, realiseerde zich dat de functionele harmonie voor hem was uitgeput. Met zijn strijksextet Verklärte Nacht uit 1899 was hij al tot in de verste uithoeken van de harmonische taal doorgedrongen. Later zette Schönberg zich over zijn composer’s block heen en betrad hij met zijn Tweede Strijkkwartet maagdelijk terrein, wat uiteindelijk zou resulteren in zijn twaalftoonsmuziek. Interessant is dat een collegacomponist, Franz Liszt, al eerder in zijn late pianowerken muzikale profetieën liet horen die vooruitblikten op de twaalftoonsmuziek van Schönberg en diens leerlingen. Met dit programma betreedt het DoelenEnsemble het muzikale terra incognita van rond 1900 en laat de Rotterdamse componist Patrick van Deurzen met een nieuw werk horen waar de moed van Schönberg zoal toe heeft geleid.<br /><br /><b>Red Sofa Bankpas</b><br />Voor slechts € 79 per seizoen beschikt u over de Red Sofa Bankpas, waarmee u voor <a href="http://www.dedoelen.nl/nl/concerten/agenda/?date_from=2014-9-1&date_to=2015-8-31&genre%5B%5D=red_sofa"><b>alle Red Sofa-concerten in seizoen 2014-2015</b>&nbsp;</a>een gratis kaart kunt reserveren. Klik <a href="https://dedoelen.ticketmatic.com/addloyaltycard.php?a=OUBoHS3DoSw&e=t8Y497W9JB4&s=80cswBbInpo&l=nl/"><b>hier</b></a> voor het bestellen van de Red Sofa Bankpas.<br/><br/>Om 19.30 uur inleiding door Maarten van Veen]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6237_07.jpg" length="2216" type="image/jpeg"/></item><item><title><![CDATA[vr 14 nov, 20.15 uur - Rotterdams Philharmonisch - Beethoven en Sjostakovitsj]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5107/Rotterdams_Philharmonisch/Beethoven_en_Sjostakovitsj/]]></link><description><![CDATA[‘Wat een vernielzuchtig woest leven om me heen’, verzuchtte Beethoven tijdens het beleg van Wenen, om vervolgens in zijn Vijfde Pianoconcert het kanongebulder tot pure schoonheid te transformeren. Een radicaal ander geluid hoort u na de pauze in Sjostakovitsj’ Achtste Symfonie uit het oorlogsjaar 1943. ‘Wat een zeldzaam indringende ervaring’, schreef De Telegraaf over de uitvoering van dat werk door het Rotterdams Philharmonisch.<br/><br/>Om 19.15 uur inleiding door Michel Khalifa (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7829_07.jpg" length="3195" type="image/jpeg"/></item><item><title><![CDATA[vr 14 nov, 20.30 uur - Music Matters Presents - ]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4975/Music_Matters_Presents//]]></link><description><![CDATA[Onder de noemer ‘Music Matters Presents’ brengt Music Matters jong Rotterdams muzikaal talent naar de Doelen. In de levendige Rotterdamse muziekscene stappen ieder jaar weer nieuwe interessante artiesten naar voren. Music Matters geeft hen een podium en presenteert ze aan een breder publiek. Music Matters zoekt naar talenten die momenteel een interessante ontwikkeling doormaken; het talent van morgen. De line-up van dit concert wordt bekendgemaakt via <a target=_blank href="http://www.musicmatters.nu/"><b>www.musicmatters.nu</b></a>.<br /><img width="150" height="91" alt="" src="/cms_files/Image/LOGO-VRIJDAGINDEFLIP-ICON.jpg" /><br/><br/><ul><li><a target="_blank" href="http://www.musicmatters.nu">www.musicmatters.nu</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6907_07.jpg" length="3546" type="image/jpeg"/></item><item><title><![CDATA[za 15 nov, 14.30 uur - Flamenco Special Alvaro Paños - ]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4567/Flamenco_Special_Alvaro_Pa_os//]]></link><description><![CDATA[Deze jonge bailaor uit Córdoba is een van de meest opvallende jonge Andalusische danstalenten. Al heel vroeg ontwikkelde hij een persoonlijke en boeiende dansstijl, boordevol inspiratie en energie. Paños kan perfect uitdrukking geven aan elke individuele flamencostijl. Hij werkte met Enrique Morente en Joaquin Grilo, onderhoudt nauwe banden met danser en choreograaf Javier Latorre en danste de afgelopen jaren in de multimediale flamencoshow Flamenco Hoy van de Spaanse filmmaker Carlos Saura. Paños komt nu voor het eerst met zijn eigen gezelschap naar Nederland. De Doelen, de flamenco-afdeling van Codarts, Dansschool Rosa de Compas en Mundo Flamenco slaan de handen ineen om rondom de show van Alvaro Paños een uitgebreid programma te presenteren met concerten, films, een masterclass en een dansworkshop.<br /><br /><b>WORKSHOPS</b><br />14.30-16.30 uur (Willem Burger Zaal)<br /><b>Workshop flamencodans</b> door Alvaro Paños<br />Flamencodanser Alvaro Paños geeft een workshop aan dansers en danseressen met minimaal 3 tot 6 jaar les en workshopervaring. Vragen over het niveau kunnen worden gericht aan <a href="mailto:info@rosadecompas.nl"><b>Mirjam Bloem</b></a> van dansschool Flamenco Rosa de Compás. Aan deze workshop kunnen 15 dansers deelnemen, de voertaal is Spaans. <br />Wilt u meedoen aan deze workshop, koop dan een toegangskaart ‘workshop Flamenco’ (zonder meerprijs). Wilt u alleen naar deze workshop kijken dan volstaat een normale toegangskaart.<br /><br />14.30-16.30 uur (Van Beuningen Zaal)<br /><b>Workshop flamencogitaar</b> door José Manuel León <br />m.m.v. Alicia Carrasco<br />In deze workshop komt onder meer het begeleiden van flamencozang aan bod en biedt plaats aan maximaal 15 studenten van Codarts. De voertaal is Spaans. Deelnemers kunnen zich aanmelden bij <a href="mailto:ricardo.mendeville@gmail.com"><b>Ricardo Mendeville</b></a> van de Flamenco-afdeling van Codarts. Wilt u meemaken hoe masters hun kennis al spelende overdragen op jonge talenten, dan volstaat een normale toegangskaart.<br /><br />14.30-16.30 uur (Hudig Zaal)<br /><b>Workshop flamencozang</b> door Antonio Campos<br />Deze workshop is bestemd voor maximaal 15 studenten van Codarts. De voertaal is Spaans. Deelnemers kunnen zich aanmelden bij <a href="mailto:ricardo.mendeville@gmail.com"><b>Ricardo Mendeville</b></a> van de Flamenco-afdeling van Codarts. Wilt u meemaken hoe masters hun kennis al spelende overdragen op jonge talenten, dan volstaat een normale toegangskaart.<br /><br />15.30-16.30 uur (Fortisbank Zaal)<br /><b>Beginnersworkshop Cajon</b> door Ruven Ruppik<br />Tijdens deze workshop kan men de eerste beginselen van het cajonspel bij flamencomuziek leren. Er zijn cajons beschikbaar voor 30 deelnemers. De voertaal is Engels. Om 18.00 uur speelt u mee tijdens de presentatie van de cajongroep. <br />Wilt u meedoen aan deze workshop, koop dan een toegangskaart ‘workshop Cajon’ (zonder meerprijs). <br /><br />16.30-17.30 uur (Willem Burger Foyer)<br /><b>Beginnersworkshop Sevillanas dansen</b> <br />door dansschool SpaanseDans.nl<br />Sevillanas zijn ook voor beginnende dansers en danseressen snel te leren. SpaanseDans.nl stoomt u klaar om later op de avond bij Rodolfo y Maño Los Fantásticos voluit mee te kunnen dansen. De workshop is in het Nederlands en een normale toegangskaart volstaat om mee te kunnen doen. (Studenten van Codarts zijn deelnemers behulpzaam die het Spaans of Engels niet machtig zijn.)<br/><br/><ul><li><a target="_blank" href="http://www.rosadecompas.nl">www.rosadecompas.nl</a></li><li><a target="_blank" href="http://www.SpaanseDans.nl">www.SpaanseDans.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6733_07.jpg" length="2645" type="image/jpeg"/></item><item><title><![CDATA[zo 16 nov, 11.00 uur - Glimp (2+) - Lotte van Dijck]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4657/Glimp_2_/Lotte_van_Dijck/]]></link><description><![CDATA[Hoe klinkt kleur?<br />Wie kan de maan verstaan? Wat zegt de zon?<br />Wat klinkt lager, een bas of een trom? Hoe speel je een flits? Hoe zing je een boom?<br />Hoeveel kleuren heeft een droom?<br /><br />Glimp neemt je mee naar een betoverende droomwereld, waarin klanken en beelden een spannend spel met elkaar en met jou spelen. Een muziekvoorstelling voor peuters en hun (groot)ouders, waarin musici, muziek, beeld, techniek en publiek een bijzondere vriendschap aangaan.<br /><br />In Glimp wordt het kleine en grote publiek meegenomen naar een betoverende droomwereld, waarin klanken en beelden met elkaar en met het publiek spelen.<br /><br />Een productie van Oorkaan i.s.m. Maplab (Media and Performance Lab van de HKU), met dank aan Ingrid Wolff/Festival 2 Turven Hoog.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6245_07.jpg" length="3256" type="image/jpeg"/></item><item><title><![CDATA[zo 16 nov, 11.00 uur - Zondagochtendconcert - Ernst Daniël &amp; Coosje Smid]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4955/Zondagochtendconcert/Ernst_Daniel_Coosje_Smid/]]></link><description><![CDATA[Een vader, een dochter en mooie songs, begeleid door een pianist. Dat kunt u verwachten tijdens dit speciale Zondagochtendconcert. Coosje Smid is bekend van The Voice of Holland en won in 2010 een Gouden Kalf. Ze is singer-songwriter en actrice. Ambitieus en met een platencontract op zak, zet ze samen met haar vader Ernst Daniël Smid een prachtige voorstelling neer. Ernst Daniël heeft warme herinneringen aan zijn eerdere Zondagochtendconcerten in de Doelen en komt graag terug voor dit bijzondere en intieme concert.<br />(Hanson)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7589_07.jpg" length="3388" type="image/jpeg"/></item><item><title><![CDATA[zo 16 nov, 14.00 uur - Naar de haaien? (5+) - Wëreldbänd]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4661/Naar_de_haaien_5_/Wereldband/]]></link><description><![CDATA[Ze hebben een moeder, maar geen liefde. Ze hebben een bord, maar geen eten. Ze hebben een bed, maar geen deken. Maar ze hebben elkaar. En ze vertellen elkaar verhalen en dromen dat ze koning zijn, of ontdekkingsreiziger of... zeerover. En zo kan het gebeuren dat Zeerover Zwarte Jan samen met bootsman Hassan, Lange Arie, Bange Joost en Matroos Rob het ruime sop kiest en over de zeeën vaart, van noord naar zuid, van west naar oost. Op zoek naar eeuwige roem en goud.<br /><br />Een muziekvoorstelling door de Wëreldbänd met veel humor, fantasie, een snufje melancholie, veel muziek en nog meer muziekinstrumenten.<br /><br />Een productie van Oorkaan.<br /><br />Aansluitend (van ca.15.00-16.00 uur) is er een knutselworkshop met Villa Zebra! Daarnaast is er een ‘Maan Roos Muziek Podium’ in de Jurriaanse Foyer. Wie wil mag zijn of haar instrument meebrengen en zelf een kort optreden geven!<br /><br /><br /><br />Hoe klinkt stoer?<br />Ze hebben een vader, maar geen liefde. Ze hebben een bord, maar geen eten. Ze hebben een bed, maar geen deken. Maar ze hebben elkaar. En ze vertellen elkaar verhalen en dromen dat ze koning zijn, of ontdekkingsreiziger, prinses of… zeerover. En zo kan het gebeuren dat zeerover Zwarte Jan samen met bootsman Hassan, Lange Arie, Bange Joost en Matroos Rob het ruime sop kiest en over de zeeën vaart, van noord naar zuid, van west naar oost. Op zoek naar eeuwige roem en goud.<br /><br />Muzikanten Ro Krauss, Willem van Baarsen, Rogier Bosman, Sanne van Delft en Jon Bittman bespelen samen meer dan 100 instrumenten. Voeg daar een groot gevoel voor humor aan toe, een grenzeloze fantasie en een snufje melancholie en je hebt: de Wëreldbänd.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6247_07.jpg" length="4250" type="image/jpeg"/></item><item><title><![CDATA[zo 16 nov, 14.00 uur - Glimp (2+) - Lotte van Dijck]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4659/Glimp_2_/Lotte_van_Dijck/]]></link><description><![CDATA[Hoe klinkt kleur?<br />Wie kan de maan verstaan? Wat zegt de zon?<br />Wat klinkt lager, een bas of een trom? Hoe speel je een flits? Hoe zing je een boom?<br />Hoeveel kleuren heeft een droom?<br /><br />Glimp neemt je mee naar een betoverende droomwereld, waarin klanken en beelden een spannend spel met elkaar en met jou spelen. Een muziekvoorstelling voor peuters en hun (groot)ouders, waarin musici, muziek, beeld, techniek en publiek een bijzondere vriendschap aangaan.<br /><br />In Glimp wordt het kleine en grote publiek meegenomen naar een betoverende droomwereld, waarin klanken en beelden met elkaar en met het publiek spelen.<br /><br />Een productie van Oorkaan i.s.m. Maplab (Media and Performance Lab van de HKU), met dank aan Ingrid Wolff/Festival 2 Turven Hoog.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6243_07.jpg" length="3256" type="image/jpeg"/></item><item><title><![CDATA[zo 16 nov, 15.00 uur - De Groote Oorlog - Seminar &amp; concert - Sarajevo - Het startschot &amp; ‘Ils ne passeront pas’]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5287/De_Groote_Oorlog_Seminar_concert/Sarajevo_Het_startschot_Ils_ne_passeront_pas_/]]></link><description><![CDATA[<b>Sarajevo - Het startschot</b><br />Met gebruik van historisch en hedendaags beeldmateriaal duiken we de duistere en noodlottig weken tussen 28 juni en tweede helft augustus 1914 in. Door middel van brieven en dagboeken schetsen we de eerste ervaringen van componisten en musici in de loopgraven, en werpen we een blik in de levens van musici die tijdens de oorlog sneuvelden.<br />Aansluitend een tweegangendiner* en een bezoek aan het concert ‘Ils ne passeront pas’ met componist en begeleider Elmer Schönberger.<br /><br />* Eventuele dieetwensen kunt u aan de kassa doorgeven via 010 2171717.<br /><br /><b>‘Ils ne passeront pas’</b><br />Jurriaanse Zaal 20.15 uur<br /><br />Doris Hochscheid - cello<br />Frans van Ruth - piano<br />Barbara Kozelj - mezzosopraan<br />Elmer Schönberger - compositie, tekst en voordracht<br />Stravinsky - Souvenir d’un marche boche<br />Vermeulen - Cellosonate nr.1<br />Vermeulen - La veille<br />Schönberger - Nieuw werk (wereldpremière) <br />en werken van o.a. Ives, Debussy en Ravel<br /><br />Tijdens de Eerste Wereldoorlog was het patriottisme fel aan Franse zijde. In september 1914 schrijft Ravel over ‘cette lutte splendide’ (deze prachtige strijd). Twee kilo te licht wordt de frêle componist (1.65m, 48kg) afgekeurd voor Verdun. ‘Ils ne passeront pas’ was er de strijdkreet van de frontsoldaten. Debussy maakt op 14 oktober 1915 de balans op vanachter zijn schrijftafel: ‘Het is me duidelijk geworden hoe nutteloos het is het aantal hinkepoten te vergroten’. Hij riposteert met een saluut aan Rameau en Couperin. Matthijs Vermeulen deed ‘ten diepste geschokt’ verslag van ‘de gebrandschatte bekoorlijkheid’ van België. Zijn bewogen lied La veille is op verzen van dichtersoldaat François Porché. Vliegpionier Roland Garros schoot vijf Duitse kisten uit de lucht in twee weken. Hij noemde het ‘een ace’. Ravel droomde van zo’n heldenrol als vliegenier: ‘Het hart en de longen zijn nog goed. Laten we hopen dat het eerste flexibel genoeg is om zich in de buik te nestelen als het goede moment daar is’. Elmer Schönberger is uw gids en neemt Ravels droom tot vertrekpunt voor zijn nieuwe compositie.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8257_07.jpg" length="3841" type="image/jpeg"/></item><item><title><![CDATA[zo 16 nov, 16.00 uur - Glimp (2+) - Lotte van Dijck]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4663/Glimp_2_/Lotte_van_Dijck/]]></link><description><![CDATA[Hoe klinkt kleur?<br />Wie kan de maan verstaan? Wat zegt de zon?<br />Wat klinkt lager, een bas of een trom? Hoe speel je een flits? Hoe zing je een boom?<br />Hoeveel kleuren heeft een droom?<br /><br />Glimp neemt je mee naar een betoverende droomwereld, waarin klanken en beelden een spannend spel met elkaar en met jou spelen. Een muziekvoorstelling voor peuters en hun (groot)ouders, waarin musici, muziek, beeld, techniek en publiek een bijzondere vriendschap aangaan.<br /><br />In Glimp wordt het kleine en grote publiek meegenomen naar een betoverende droomwereld, waarin klanken en beelden met elkaar en met het publiek spelen.<br /><br />Een productie van Oorkaan i.s.m. Maplab (Media and Performance Lab van de HKU), met dank aan Ingrid Wolff/Festival 2 Turven Hoog.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6241_07.jpg" length="3256" type="image/jpeg"/></item><item><title><![CDATA[zo 16 nov, 20.15 uur - De Groote Oorlog - ‘Ils ne passeront pas’ - Doris Hochscheid, Elmer Schönberger, Frans van Ruth en Barbara Kozelj]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4647/De_Groote_Oorlog_Ils_ne_passeront_pas_/Doris_Hochscheid_Elmer_Schonberger_Frans_van_Ruth_en_Barbara_Kozelj/]]></link><description><![CDATA[Tijdens de Eerste Wereldoorlog was het patriottisme fel aan Franse zijde. In september 1914 schrijft Ravel over ‘cette lutte splendide’ (deze prachtige strijd). Twee kilo te licht wordt de frêle componist (1.65m, 48kg) afgekeurd voor Verdun. ‘Ils ne passeront pas’ was er de strijdkreet van de frontsoldaten. Debussy maakt op 14 oktober 1915 de balans op vanachter zijn schrijftafel: ‘Het is me duidelijk geworden hoe nutteloos het is het aantal hinkepoten te vergroten’. Hij riposteert met een saluut aan Rameau en Couperin. Matthijs Vermeulen deed ‘ten diepste geschokt’ verslag van ‘de gebrandschatte bekoorlijkheid’ van België. Zijn bewogen lied La veille is op verzen van dichtersoldaat François Porché. Vliegpionier Roland Garros schoot vijf Duitse kisten uit de lucht in twee weken. Hij noemde het ‘een ace’. Ravel droomde van zo’n heldenrol als vliegenier: ‘Het hart en de longen zijn nog goed. Laten we hopen dat het eerste flexibel genoeg is om zich in de buik te nestelen als het goede moment daar is’. Elmer Schönberger is uw gids en neemt Ravels droom tot vertrekpunt voor zijn nieuwe compositie.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7483_07.jpg" length="3469" type="image/jpeg"/></item><item><title><![CDATA[do 20 nov, 20.30 uur - Paul Van Nevel - dirigeert Nederlands Kamerkoor]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4665/Paul_Van_Nevel/dirigeert_Nederlands_Kamerkoor/]]></link><description><![CDATA[De Europese adel liet het in de 15de en 16de eeuw breed hangen. Vooral in Italië tastten hertogen en prinsen diep in de buidel om zich te omringen met pracht en praal. Daarbij hoorde natuurlijk een eigen koor, dat dagelijks klaarstond in de hofkapel of bij het diner. De Italiaanse behoefte aan professionele koormuziek was zo immens, dat talentscouts tot in Noord-Europa joegen op zangers en componisten. Vooral de Lage Landen vormden een dankbaar reservoir. Neem Gaspar van Weerbeke: hij werd opgeleid in het Vlaamse Oudenaerde en kwam in Milaan terecht aan de hofkapel van de Sforza’s. Later schoof hij al zingend en componerend door naar de Sixtijnse Kapel in Rome. De Vlaamse oude-muziekvorser Paul Van Nevel heeft er zijn levenswerk van gemaakt deze koormuziek uit de Renaissance te schoeien op authentieke leest. Met de alleskunners van het Nederlands Kamerkoor maakt hij een strooptocht langs kerk, kroeg en kasteel.<br /><br /><b>Laurenskerk</b><br />Dit concert is een Doelenproductie op locatie in de Laurenskerk. Geregeld kiezen wij ervoor om concerten op een andere locatie te brengen. Vanwege de bijzondere akoestiek of atmosfeer. Het repertoire van dit concertprogramma leent zich bij uitstek voor de prachtige laatgotische Laurenskerk.<br /><br />Dit concert komt tot stand i.s.m. Stichting Laurenskerk <br /><a target=_blank href="http://www.laurenskerkrotterdam.nl"><img height="71" width="60" alt="" src="/cms_files/Image/Laurenskerk_RGB_op_wit_webversie.jpg" /></a><br/><br/>Om 19.45 uur inleiding door Saskia Törnqvist]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6249_07.jpg" length="4002" type="image/jpeg"/></item><item><title><![CDATA[vr 21 nov, 20.15 uur - Rotterdams Philharmonisch - De Boléro en het Concierto de Aranjuez]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5109/Rotterdams_Philharmonisch/De_Bolero_en_het_Concierto_de_Aranjuez/]]></link><description><![CDATA['Het moet klinken als het briesje dat zich schuilhoudt in de bomen van de parken, sterk als een vlinder, sierlijk als de beweging van een toreador’, zei Rodrígo over zijn Concierto de Aranjuez. Dit poëtische meesterstuk – zonder twijfel het ultieme gitaarconcert – schildert Spanje in haar betoverende kleurenpracht en vormt zo de verbindende schakel tussen het vlammende Capriccio espagnol en Ravels woest-aantrekkelijke Boléro.<br/><br/>Om 19.15 uur inleiding door Caecilia Andriessen (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7831_07.jpg" length="3596" type="image/jpeg"/></item><item><title><![CDATA[vr 21 nov, 20.15 uur - Venice - ‘European Fall Tour 2014’]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5285/Venice/_European_Fall_Tour_2014_/]]></link><description><![CDATA[Na de succesvolle theatertour van 2013 komt de Amerikaanse band opnieuw naar Nederland. De band bestaat uit Michael en Mark Lennon en Kipp en Pat Lennon, twee aan twee broers en daarnaast neven van elkaar.<br />Ze zijn geboren en getogen in Venice Beach, Californië en worden wereldwijd geroemd om hun ‘West Coast harmonies’. David Crosby noemt hen dat ook niet voor niets ‘the best vocal group in the country’. De Lennons beschouwen Nederland als hun ‘home away from home’ met als resultaat onder meer een gouden album en een Edison voor Beste Internationale Artiest.<br />De band verwierf door de jaren heen een grote en trouwe aanhang op basis van zowel hun intieme, akoestische optredens als bij hun ‘full band’ elektrische shows. Van rocksongs als ‘Think Again’ tot de oprechte ballad ‘The Family Tree’, songs welke inmiddels zijn uitgegroeid tot ware klassiekers en jaarlijks zijn terug te vinden in de hoogste regionen van onze Radio 2 Top 2000.<br /><br />Zaal open om 19.00 uur. De show wordt afgesloten met een ‘meet & greet’.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8217_07.jpg" length="3876" type="image/jpeg"/></item><item><title><![CDATA[vr 21 nov, 20.30 uur - Codarts &amp; Royal Conservatory Large Ensemble - Sketches of Spain]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4667/Codarts_Royal_Conservatory_Large_Ensemble/Sketches_of_Spain/]]></link><description><![CDATA[De balans tussen jazz, klassiek, Spaanse volksmuziek en flamenco is uniek in het tijdloze, sfeervolle Sketches of Spain, meesterwerk uit 1959 van trompettist Miles Davis en componist arrangeur Gil Evans. De vermaarde tenorsaxofonist David Liebman, die in de jaren zeventig lid was van de Miles Davis Group, brengt dit werk nu opnieuw tot leven. De Codarts & Royal Conservatory Bigband wordt voor dit project eenmalig uitgebreid tot een Large Ensemble.<br /><img width="150" height="91" alt="" src="/cms_files/Image/LOGO-VRIJDAGINDEFLIP-ICON.jpg" /><br /><a target=_blank href="http://www.jazzinternationalrotterdam.nl"><img height="37" width="150" alt="" src="/cms_files/Image/SJIR_web.jpg" /></a><br/><br/><ul><li><a target="_blank" href="http://www.jazzinternational.nl">www.jazzinternational.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6251_07.jpg" length="2959" type="image/jpeg"/></item><item><title><![CDATA[vr 21 nov, 21.45 uur - Allen Ginsberg in Nederland - 1983 Revisited]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5291/Allen_Ginsberg_in_Nederland/1983_Revisited/]]></link><description><![CDATA[Een muzikaal-literaire manifestatie<br />De internationaal gevierde Amerikaanse beat-dichter Allen Ginsberg (1926-1997) was rond nieuwjaar 1983 op tournee door Nederland, waar hij onder meer Vlissingen aandeed. Hij verbleef er nauwelijks 24 uur en gaf een kleurrijk optreden in Hotel Britannia. De volgende dag schreef hij een gedicht op het Badstrand en bereidde hij zich voor op een opnamesessie met het Mondriaan Kwartet. Dat resulteerde in een album met het ontroerende ‘September On Jessore Road’ als zwaartepunt. En met het gedicht ‘What the sea throws up at Flushing’, waartoe zijn verblijf in Vlissingen hem had geïnspireerd.<br /><br />Deze legendarische tour krijgt een eigentijdse muzikaal-literaire versie, met Joep Bremmers (de huidige vertaler van Ginsberg) en met componist Jacq Palinckx. Natuurlijk klinkt de Ginsberg-klassieker ‘September On Jessore Road’. Zijn beroemdste werk, ‘Howl’, krijgt een Nederlandstalige vertolking met vocalist Han Buhrs. En uiteraard mag ‘Wat de zee uitbraakt in Vlissingen’ niet ontbreken. Speciaal voor dit project heeft Jacques Palinckx nieuwe muziek geschreven op het grensvlak van nieuwe muziek, jazz en geluidskunst.<br /><br />Voor de pauze Spinvis in de Rotterdamse Schouwburg, dan oversteken naar de Doelen voor dit programma...]]></description></item><item><title><![CDATA[za 22 nov, 17.45 uur - Songbird Festival 2014 - Tweedaags festival singer/songwriters]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5293/Songbird_Festival_2014/Tweedaags_festival_singer_songwriters/]]></link><description><![CDATA[Op 22 en 23 november 2014 verandert de Doelen in een intiem indoor festival voor Songbird 2014. Net als in 2013 vindt Songbird op twee dagen plaats: de zaterdag een compacte opzet met programma’s in drie zalen, de zondag biedt een muzikale ontdekkingstocht in zes zalen. Op beide dagen spelen de artiesten een volledige set. De meesten met band, maar sommigen in speciale samenstelling.<br /><br />De eerste namen zijn bekend: o.a. Racoon, Dotan en Boy & Bear, Josh Record, Eaves en de winnaar van De Beste Singer-Songwriter van Nederland spelen op Songbird 2014.<br /><br />Kijk op <a target=_blank href="http://www.songbirdfestival.nl/"><b>Songbird Festival</b></a> voor de meest actuele informatie.<br/><br/><ul><li><a target="_blank" href="http://www.songbirdfestival.nl">www.songbirdfestival.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8267_07.jpg" length="3563" type="image/jpeg"/></item><item><title><![CDATA[zo 23 nov, 16.00 uur - Songbird Festival 2014 - Tweedaags festival singer/songwriters]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5295/Songbird_Festival_2014/Tweedaags_festival_singer_songwriters/]]></link><description><![CDATA[Op 22 en 23 november 2014 verandert de Doelen in een intiem indoor festival voor Songbird 2014. Net als in 2013 vindt Songbird op twee dagen plaats: de zaterdag een compacte opzet met programma’s in drie zalen, de zondag biedt een muzikale ontdekkingstocht in zes zalen. Op beide dagen spelen de artiesten een volledige set. De meesten met band, maar sommigen in speciale samenstelling.<br /><br />De eerste namen zijn bekend: o.a. Racoon, Dotan en Boy & Bear, Josh Record, Eaves en de winnaar van De Beste Singer-Songwriter van Nederland spelen op Songbird 2014.<br /><br />Kijk op <a target=_blank href="http://www.songbirdfestival.nl/"><b>Songbird Festival</b></a> voor de meest actuele informatie.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8269_07.jpg" length="3563" type="image/jpeg"/></item><item><title><![CDATA[ma 24 nov, 20.15 uur - Tommy Emmanuel - ]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5031/Tommy_Emmanuel//]]></link><description><![CDATA[De wereldberoemde Australische gitarist Tommy Emmanuel komt in november 2014 naar Nederland. Al op zijn tiende toerde hij met zijn familie rond onder de naam ‘The Emmanuel Quartet’, en eigenlijk is hij nooit meer gestopt met gitaar spelen. Zo speelde hij veel als sessiemuzikant en werkte hij met artiesten als Michael Bolton, Eric Clapton, John Denver en Stevie Wonder. <br />Rond zijn dertigste startte de samenwerking met zijn idool en held Chet Atkins. Samen maakten zij het album ‘The Day The Finger Pickers Took Over The World’. Daarmee haalde hij zijn eerste Grammy nominatie binnen. Het album ‘The Mystery’ leverde hem zijn tweede nominatie op.<br />Tommy Emmanuel groeide uit tot een virtuoze, succesvolle soloartiest en toert nu de hele wereld over.<br/><br/><ul><li><a target="_blank" href="http://www.tommyemmanuel.com">www.tommyemmanuel.com</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7433_07.jpg" length="2471" type="image/jpeg"/></item><item><title><![CDATA[wo 26 nov, 20.15 uur - Orkest van de Achttiende Eeuw - Vorstelijk vuurwerk]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4669/Orkest_van_de_Achttiende_Eeuw/Vorstelijk_vuurwerk/]]></link><description><![CDATA[Wie in 1749 wilde aanschuiven bij de generale repetitie van Music for the Royal Fireworks, stond met z’n koets drie uur in de file. Liefst twaalfduizend Londenaren stroomden naar Vauxhall Gardens, waar Georg Friedrich Händel zijn muziekspektakel uitprobeerde. Zes dagen later zaten de musici in bootjes op de Theems, terwijl een grandioos vuurwerk het einde van de Oostenrijkse Successieoorlog vierde. Het Orkest van de Achttiende Eeuw zet z’n schouders onder een programma met een zwaar Angelsaksisch accent. Zo klinkt van Haydn een van de symfonieën die hij schreef voor zijn Londense fans. Onder de aria’s die Lenneke Ruiten zingt, zit er een die Mozart componeerde op de stembanden van de Britse sopraan Nancy Storace. De Noord-Ier Kenneth Montgomery dirigeert een pianoconcert van de Ier John Field, waarin de jonge Ierse virtuoos Finghin Collins laat horen hoe Field het pad effende voor de Pool Chopin.<br/><br/>Om 19.30 uur Neil Wallace in gesprek met Sieuwert Verster, zakelijk leider Orkest van de Achttiende Eeuw]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6253_07.jpg" length="3595" type="image/jpeg"/></item><item><title><![CDATA[do 27 nov, 20.15 uur - Wolfe, Reich, Carter, Xenakis - Colin Currie &amp; Codarts Ensemble]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4671/Wolfe_Reich_Carter_Xenakis/Colin_Currie_Codarts_Ensemble/]]></link><description><![CDATA[De jonge Schotse slagwerker Colin Currie is dit seizoen onze Red Sofa artist in residence. In dit programma stort hij zich op de percussiemuziek van de Amerikaanse componisten Julia Wolfe (Bang on a Can), Steve Reich (mister minimal) en Elliott Carter (onverwoestbaar, componeer-de nog op 100-jarige leeftijd) en van Iannis Xenakis (Grieks-Franse componist/architect). Stuk voor stuk interessante muziekpioniers. <br />Colin Currie treedt op met de aanstormende professionals van Codarts, onder leiding van Hans Leenders, zelf ook slagwerker.<br /><br /><b>Red Sofa Bankpas</b><br />Voor slechts € 79 per seizoen beschikt u over de Red Sofa Bankpas, waarmee u voor <a href="http://www.dedoelen.nl/nl/concerten/agenda/?date_from=2014-9-1&date_to=2015-8-31&genre%5B%5D=red_sofa"><b>alle Red Sofa-concerten in seizoen 2014-2015</b>&nbsp;</a>een gratis kaart kunt reserveren. Klik <a href="https://dedoelen.ticketmatic.com/addloyaltycard.php?a=OUBoHS3DoSw&e=t8Y497W9JB4&s=80cswBbInpo&l=nl/"><b>hier</b></a> voor het bestellen van de Red Sofa Bankpas.<br/><br/>Om 19.30 uur Neil Wallace in gesprek met enkele artiesten]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8063_07.jpg" length="3935" type="image/jpeg"/></item><item><title><![CDATA[vr 28 nov, 20.15 uur - Rotterdams Philharmonisch - Penderecki en Lutoslawski]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5111/Rotterdams_Philharmonisch/Penderecki_en_Lutoslawski/]]></link><description><![CDATA[Zelden werd de pijn van de oorlog schrijnender verklankt dan in Threnody, zoals Penderecki het stuk ná de première doopte, waarna het al snel de wereld veroverde. Was zijn landgenoot Lutoslawski ook maar zo goed geweest met titels. Zijn sprookjesachtige Concert voor orkest is zó krachtig en kleurrijk, dat het met een sprekender naam zonder twijfel als een van dé grote werken van de twintigste eeuw zou zijn herkend.<br/><br/>Om 19.15 uur inleiding door Patrick van Deurzen (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img8011_07.jpg" length="3469" type="image/jpeg"/></item><item><title><![CDATA[vr 28 nov, 20.30 uur - Made in Rotterdam - AKOM Ensemble]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4977/Made_in_Rotterdam/AKOM_Ensemble/]]></link><description><![CDATA[Het AKOM Ensemble is een internationaal ensemble met musici van Codarts, die hun grenzen verleggen met optredens buiten het conservatorium. Aanvankelijk wilde het ensemble musici een kans bieden binnen het kader van hun opleiding. Dit jaar heeft het AKOM Ensemble de deuren geopend naar het publiek, om zo inzicht te geven in de componisten van morgen. Hedendaagse klassieke muziek is geen geïsoleerde, intellectuele kunst. Het ensemble wil laten zien dat het juist de vrijheid van vorm en geluidsbron is die de muziek dichter bij ieders beleving kan brengen.<br /><br />Verrassende optredens van de talenten van Codarts. Van klassiek tot jazz, van dans tot acrobatiek: elke editie van Made in Rotterdam biedt iets nieuws.<br /><img width="150" height="91" alt="" src="/cms_files/Image/LOGO-VRIJDAGINDEFLIP-ICON.jpg" /><br/><br/><ul><li><a target="_blank" href="http://http://www.newmusic-ensemble.com/#!info/c161y">http://www.newmusic-ensemble.com/#!info/c161y</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6909_07.jpg" length="3546" type="image/jpeg"/></item><item><title><![CDATA[za 29 nov, 10.30 uur - Zelf Muziek Maken (6+) - Je stem]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4673/Zelf_Muziek_Maken_6_/Je_stem/]]></link><description><![CDATA[Iedereen kan (liedjes) zingen, je hebt je muziekinstrument – de stem – eigenlijk altijd bij je. Bovendien kun je nog veel meer met je stem dan een liedje zingen. In deze workshop (waar we ook nieuwe onbekende sinterklaasliedjes zingen) ontdek je hoeveel muziek er zit in je eigen stem.<br /><br />Het hele gezin neemt deel aan deze workshop.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6083_07.jpg" length="3772" type="image/jpeg"/></item><item><title><![CDATA[za 29 nov, 14.30 uur - Tango Special Orquesta El Arranque - met Fleurs Noires, Música Campera, Los Profs, Orquesta Atipica en OTRA]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4675/Tango_Special_Orquesta_El_Arranque/met_Fleurs_Noires_Musica_Campera_Los_Profs_Orquesta_Atipica_en_OTRA/]]></link><description><![CDATA[Al vrij snel na hun oprichting in 1996 hadden de acht leden van het jonge tango-orkest El Arranque – ‘Het Begin’ – een excellente reputatie. In 2001 werkten ze samen met Wynton Marsalis in het prestigieuze New Yorkse Lincoln Centre en niet veel later speelden ze op de grootste tangofestivals in Europa, Brazilië, China en Japan. Niet alleen internationaal oogst Orquesta El Arranque veel lof, ook in Buenos Aires maakt de groep deel uit van de vibrerende tangoscene. Nu, na zeventien jaar en zeven albums, is dit achtkoppige ensemble sterker dan ooit. <br /><br />De komst van dit befaamde orkest, een wereldberoemde Tango-afdeling bij Codarts, florerende tangodansscholen, verrassend aanstormend talent en prachtige nieuwe bandoneons, dit alles vormt de aanleiding voor een bijzondere Tango Special met een middag en avond vol concerten, films, een masterclass, dansworkshop en tango-informatiemarkt. Deze Tango Special komt tot stand door samenwerking tussen Codarts/Wereldmuziek, de tangoschool Cuartito Azul en de Doelen.<br /><br /><b>PROGRAMMA</b><br />14.00 uur: deur open; muziek door DJ Hugo; start tango-informatiemarkt<br /><br />14.30-16.00 uur (Jurriaanse Zaal)<br /><b>Masterclass</b> aan studenten van Codarts door Orquesta El Arranque<br /><br />14.30-15.45 uur (Van Cappellen Zaal)<br /><b>Film ‘El sonído del bandoneón’</b>: Een muzikale roadmovie over de bandoneon, een melancholische ode aan het instrument dat het kloppend hart van de tango vormt. Regie: Jiska Rickels (Nederlands ondertiteld) - <a target=_blank href="http://www.youtube.com/watch?v=vVlLDfBGndI"><b>trailer</b></a><br /><br />16.00-17.00 uur (Jurriaanse Foyer)<br /><b>Dansworkshop</b> door tangoschool Cuartito Azul <br /><br />16.00-17.00 uur (Van Cappellen Zaal)<br /><b>Tango Intiem</b> Akoestisch – zonder tussenkomst van microfoon – genieten van de pure klanken van bandoneon, piano en gitaar, bespeeld door topstudenten van Codarts.<br /><br />17.00-18.15 uur (Jurriaanse Zaal)<br /><b>Fleurs Noires Orchestre de Tango</b><br />Alleen mannen spelen tango? Daar komt langzaamaan verandering in, met als voorloper het Frans-Argentijnse tango-orkest <a target=_blank href="http://www.fleursnoires.com"><b>Fleurs Noires</b></a>. Deze charmante muzikantes brengen met gemak ook het rauwe tangogevoel over.<br /><br />17.00-18.15 en 18.45-19.45 uur (Van Cappellen Zaal)<br /><b>Filmloop</b> met historische tangofragmenten. Aan de hand van 100 fragmenten (1 per jaar) wordt de geschiedenis van het genre toegelicht (Spaanstalig, Engels ondertiteld)<br /><br />18.15-18.45 uur (Jurriaanse Foyer)<br /><b>Tangosalon met Música Campera</b><br />In de muziek en de ritmes van het Argentijnse platteland liggen de roots van de tango. Prachtige milonga’s, chacarera’s en zamba’s door studenten van de tangovakgroep en de latinvakgroep van Codarts.<br /><br />18.15-18.45 uur (Van Cappellen Zaal)<br /><b>Lezing</b> over de geschiedenis van de tangodans van Buenos Aires tot Rotterdam door Hugo Buiten, docent tangodans en zakelijk leider tangoschool <a target=_blank href="http://www.cuartitoazul.nl"><b>Cuartito Azul</b></a>.<br /><br />18.45-19.30 uur (Jurriaanse Zaal)<br /><b>Los Profs</b><br />Dansbare tango’s, maar ook lyrische luistertango’s door docenten  van de vakgroep Argentijnse Tango van Codarts: Micha Molthoff (viool), Wim Warman (piano), Kay Sleking (gitaar), Matthew Midgley (contrabas) en Leo Vervelde (bandoneon).<br /><br />19.30-20.00 uur (Jurriaanse Foyer)<br /><b>Tangosalon met Orquesta Atípica</b><br />Naast de bekende tangoinstrumenten klinken ook tabla (Indiase gestemde trommels) en bansuri (Indiase bamboefluit). Deze voegen aan de tango een bijna meditatief element toe. Met onder anderen de grote tablaspeler Niti Ranjan Biswas (docent en Heads of Studies van de Indiase vakgroep van Codarts).<br /><br />19.45-20.15 uur (Van Cappellen Zaal)<br /><b>Lezing/inleiding</b> door Leo Vervelde, bandoneondocent, leider van OTRA en Hoofd Afdeling World Music van Codarts.<br /><br />20.15-21.30 uur (Jurriaanse Zaal)<br /><b>Orquesta El Arranque</b><br /><a target=_blank href="http://www.orquestaelarranque.com.ar/"><b>El Arranque</b></a> is een van de topensembles van de generatie veertigers in Buenos Aires. Eigenzinnige arrangementen van het bekende repertoire worden afgewisseld met eigen werk. De bezetting is het klassieke tangosextet (2 bandoneons, 2 violen, piano en contrabas) waaraan een gitaar is toegevoegd. Ook dat maakt het geluid van dit ensemble uniek. Het merendeel van de leden van El Arranque geeft les aan de ‘Orquesta Escuela Emilio Balcárse’, dé tango-orkestschool van Buenos Aires, en bouwt zo aan een nieuwe generatie Argentijnse tangueros.<br /><br />21.30-21.45 uur (Jurriaanse Foyer)<br /><b>DJ Hugo</b><br /><br />21.45-22.45 uur (Jurriaanse Foyer)<br /><b>Tangosalon met Gran Orquesta Típica OTRA</b><br />Het tango-orkest <a target=_blank href="http://www.otra-rotterdam.nl/"><b>OTRA</b></a> vormt de spil van de studierichting Argentijnse Tango van Codarts (Rotterdams Conservatorium). Het orkest speelt traditionele tango’s, aan het genre verwante ritmes (milonga ciudadana, milonga campera, vals criollo) en muziek die verbinding zoekt met deze tijd. <br /><br />22.45-23.15 uur (Jurriaanse Foyer)<br /><b>DJ Hugo</b><br /><br />En verder<br />14.00-20.15 uur (Jurriaanse Hal)<br /><b>Tango Informatiemarkt</b><br />Kom alles te weten over tangomuziek, tangodans, tango-instrumenten en tangoboeken; er zijn verschillende bandoneonbouwers, zo toont Anja Rockstroh de Arnold Alfred Bandoneons; met Jan Dirk van Abshoven van tangoblad La Cadena; een bibliotheek met boeken over tango, historische posters en foto’s, tangoschoenen bij Team Lisadore, etc..   <br /><br /><b>Expositie</b><br />Zelf noemt de kunstenares Slavica het boeken, maar deze boeken lijken verdacht veel op vreemde bandoneons. Mooi om naar te kijken maar ook om aan te raken en er zelf mee te spelen.  <br />http://tipicaslavica.jimdo.com/<br /><br /><b>Culinair</b><br />18.00-20.15 uur (Jurriaanse Foyer)<br />Tangomaaltijden en tangosnacks<br/><br/><ul><li><a target="_blank" href="http://www.orquestaelarranque.com.ar">www.orquestaelarranque.com.ar</a></li><li><a target="_blank" href="http://www.fleursnoires.com">www.fleursnoires.com</a></li><li><a target="_blank" href="http://www.cuartitoazul.nl">www.cuartitoazul.nl</a></li><li><a target="_blank" href="http://www.codarts.nl">www.codarts.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6277_07.jpg" length="3944" type="image/jpeg"/></item><item><title><![CDATA[za 29 nov, 15.00 uur - Jos van der Kooy - Doelenorgel - Gelauwerde orgelmeester]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4677/Jos_van_der_Kooy_Doelenorgel/Gelauwerde_orgelmeester/]]></link><description><![CDATA[Jos van der Kooy is stadsorganist van Haarlem en daarmee de vaste organist van de Grote of St. Bavokerk en de Philharmonie. Daarnaast is hij cantor-organist van de Westerkerk in Amsterdam, concertorganist van de Raad van State in Den Haag, docent aan diverse instellingen en koordirigent. Van der Kooy geeft talrijke orgelconcerten in binnen- en buitenland en geldt als een propagandist voor de orgelkunst, meer in het bijzonder voor hedendaagse orgelmuziek. Zijn concertprogramma’s bestaan steevast uit een rijk geschakeerd repertoire.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6279_07.jpg" length="3555" type="image/jpeg"/></item><item><title><![CDATA[za 29 nov, 19.30 uur - Le Concert Olympique - speelt Beethoven en Mozart]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4679/Le_Concert_Olympique/speelt_Beethoven_en_Mozart/]]></link><description><![CDATA[Een betere Beethovengids dan Jan Caeyers is amper denkbaar. Deze Vlaamse dirigent schreef niet alleen een bejubelde biografie, hij richtte in 2010 ook Le Concert Olympique op. Met dit authentieke orkest probeert hij Beethoven zo dicht mogelijk te benaderen. Hoewel, niet altijd, want vermoedelijk zal dirigent Caeyers niet willen imiteren hoe Beethoven zelf in 1814 zijn Achtste Symfonie in première bracht. Een ooggetuige zag hoe de dirigent ‘allerlei vreemde lichaamsbewegingen’ maakte. Hurken, springen, schreeuwen: het ging er onstuimig aan toe. We moeten het de componist vergeven, want hij was op dat moment al nagenoeg doof. Net zo sensationeel verliep in 1791 de première van Mozarts Klarinetconcert, dat sindsdien behoort tot de meest gespeelde stukken in de concertzaal. De Israëlische klarinettiste Sharon Kam laat horen waarom. Een tevreden recensent roemde haar ‘warme, elegante, verfijnde en ontroerende interpretatie’.<br/><br/>Om 18.45 uur inleiding door Guido van Oorschot]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6281_07.jpg" length="2193" type="image/jpeg"/></item><item><title><![CDATA[zo 30 nov, 11.00 uur - Vesko Eschkenazy &amp; Marietta Petkova - Beethoven, Debussy, Franck]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4681/Vesko_Eschkenazy_Marietta_Petkova/Beethoven_Debussy_Franck/]]></link><description><![CDATA[Deze zondagochtend kunt u kennismaken met twee Bulgaarse rasmusici die al jaren in Nederland wonen. Vesko Eschkenazy wordt internationaal beschouwd als ‘een meesterviolist met een perfecte techniek en een glorieuze toon’ (Mundo Classico) en is al jaren de gewaardeerde concertmeester van het Koninklijk Concertgebouworkest. Pianiste Marietta Petkova bespeelt de vleugel ‘met een indrukwekkende virtuositeit, maar uiteindelijk draait alles bij haar om veel méér dan de noten. [...] Het resultaat is even bedwelmend als onontkoombaar’ (NRC Handelsblad). Laat u aan de vooravond van de winter verwarmen door hun uitvoering van meesterwerken voor viool en piano, die ongetwijfeld intens en meeslepend zal zijn. De Achtste Vioolsonate zit vol humor ondanks Beethovens wanhoop over zijn groeiende doofheid in die tijd. Debussy’s zwanenzang, zijn (enige) Vioolsonate, is een fantasievolle mix van klassiek en zigeunermuziek. En de Vioolsonate in A – lyrisch, sonoor en virtuoos – is terecht een van Francks meest geliefde werken.<br /><br />Na afloop een glaasje champagne en meet & greet met de musici.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6283_07.jpg" length="3238" type="image/jpeg"/></item><item><title><![CDATA[zo 30 nov, 14.15 uur - Rotterdams Philharmonisch - Midzomernachtsdroom (6+)]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5113/Rotterdams_Philharmonisch/Midzomernachtsdroom_6_/]]></link><description><![CDATA[Na het grote succes van het muzikale sprookje De Vuurvogel keert Theater Terra bij het Rotterdams Philharmonisch terug voor een nieuwe kindervoorstelling: Midzomernachtsdroom. Het is een warme zomeravond in een land waar de bossen nog bewoond worden door elfen en feeën. In de maneschijn zien we hoe de elf Puck bezig is een liefdesdrankje te maken, een toverbrouwsel dat diezelfde nacht nog voor heel veel verwarring zal zorgen…]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7817_07.jpg" length="2721" type="image/jpeg"/></item><item><title><![CDATA[zo 30 nov, 20.15 uur - Slagwerkhemel - Residentie Orkest &amp; So Percussion]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4683/Slagwerkhemel/Residentie_Orkest_So_Percussion/]]></link><description><![CDATA[Met iedere nieuwe compositie stelt de Amerikaanse componist David Lang een filosofisch of conceptueel vraagstuk aan de orde. Zo zijn de stukken pierced en man made te beschouwen als een onderzoek naar communicatie tussen musici, metafoor voor hoe mensen met elkaar en vaak langs elkaar heen praten. In pierced (2007), door Lang speciaal voor dit concert bewerkt voor de solisten van Ensemble Klang, worden de solisten gescheiden van het orkest. Alleen het publiek is getuige van het gezamenlijk gespeelde resultaat. In man made (2013) zijn het de slagwerkers van de New Yorkse groep So Percussion die op deels zelfgemaakte instrumenten en gevonden voorwerpen hun eigen theatrale klanktaal creëren. De percussionisten van het orkest werpen zich op als tolk tussen de So-slagwerkers en de orkestmusici, met een muzikaal lingua franca als gevolg. Een muzikale geestverwant van Lang is de IJslander Daníel Bjarnason, een snel rijzende Poolster aan het internationale componistenfirmament. Van hem klinkt Emergence voor orkest; onheilspellende muziek die onder je huid gaat zitten.<br /><br /><b>Red Sofa Bankpas</b><br />Voor slechts € 79 per seizoen beschikt u over de Red Sofa Bankpas, waarmee u voor <a href="http://www.dedoelen.nl/nl/concerten/agenda/?date_from=2014-9-1&date_to=2015-8-31&genre%5B%5D=red_sofa"><b>alle Red Sofa-concerten in seizoen 2014-2015</b>&nbsp;</a>een gratis kaart kunt reserveren. Klik <a href="https://dedoelen.ticketmatic.com/addloyaltycard.php?a=OUBoHS3DoSw&e=t8Y497W9JB4&s=80cswBbInpo&l=nl/"><b>hier</b></a> voor het bestellen van de Red Sofa Bankpas.<br/><br/>Om 19.30 uur Neil Wallace in gesprek met enkele musici]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6285_07.jpg" length="2145" type="image/jpeg"/></item><item><title><![CDATA[wo 03 dec, 15.00 uur - Geert Bierling &amp; Willem de Vries - Sinterklaasconcert (6+)]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4685/Geert_Bierling_Willem_de_Vries/Sinterklaasconcert_6_/]]></link><description><![CDATA[Sinterklaas en zijn Zwarte Pieten zijn weer in het land en slaan natuurlijk een bezoek aan de Doelen niet over! Geert Bierling, de stadsorganist/-beiaardier van Rotterdam, verwelkomt Sinterklaas met zijn orgelklanken en natuurlijk mag ook de Hoofdpiet niet ontbreken. Die rol kun je wel toevertrouwen aan de gevierde operazanger Willem de Vries. Het Sinterklaasconcert in de Grote Zaal van de Doelen is een feest voor jong en oud!]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6287_07.jpg" length="3321" type="image/jpeg"/></item><item><title><![CDATA[do 04 dec, 20.15 uur - Rotterdams Philharmonisch - Mahler 9 met Van Zweden]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5115/Rotterdams_Philharmonisch/Mahler_9_met_Van_Zweden/]]></link><description><![CDATA[De wereld in klank vangen: dat was voor Mahler de essentie van het componeren. Nadat hij in zijn allesovertreffende Achtste naar eigen zeggen het universum tot resoneren had gebracht, stelde hij zijn late werk in het teken van de verstilling. Zijn Negende Symfonie – de laatste die hij wist te voltooien – werd zo een lofzang op het leven, uitmondend in een ongrijpbaar verklinkend afscheid: de muziek van het ultieme.<br/><br/>Om 19.15 uur inleiding door Emanuel Overbeeke (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7819_07.jpg" length="3111" type="image/jpeg"/></item><item><title><![CDATA[do 04 dec, 20.30 uur - June Noa - ]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4755/June_Noa//]]></link><description><![CDATA[Ze werkte met de geluidsmensen van Joss Stone, kent in Fugees-rapper Pras een groot fan, zong een commercial in voor KFC, werd door Leo Blokhuis gepresenteerd in Bitterzoet en zong al in De Wereld Draait Door. Met haar donkere, rauwe en krachtige stemgeluid past June Noa precies bij de Motown- en gospelsound waar ze naar op zoek is. Op haar debuutalbum Not Guilty, een prettige mix van zware soul en luchtigere pop, laat Noa de luisteraar kennismaken met haar karakter: charmant, bijdehand, cynisch, provocerend, maar altijd met een knipoog.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6325_07.jpg" length="3007" type="image/jpeg"/></item><item><title><![CDATA[vr 05 dec, 20.15 uur - Carminho - ]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4687/Carminho//]]></link><description><![CDATA[Hoewel Carminho, die opgroeide in het fadohuis van haar moeder, al op twaalfjarige leeftijd debuteerde in het Coliseo van Lissabon, duurde het tot 2009 voordat haar debuutplaat Fado verscheen. Vanaf dat moment ging het snel: zowel Fado als de opvolger Alma behaalden een platina status, ze trad op over de hele wereld en had een nummer 1-hit in Spanje met Pablo Alborán: inmiddels is de dertigjarige artieste een van de meest gevraagde fadozangeressen ter wereld. En niet voor niks: ook op de bühne komen haar rauwe talent en intense stem imponerend over.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6289_07.jpg" length="3370" type="image/jpeg"/></item><item><title><![CDATA[vr 05 dec, 20.30 uur - Dominic J. Marshall Trio - ]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4689/Dominic_J_Marshall_Trio//]]></link><description><![CDATA[Dit jonge trio van de Britse pianist Dominic J. Marshall werd al geprezen door Jamie Cullum en ook hun cd Icaros (geïnspireerd op de helende songs die sjamanen zingen in het regenwoud in de Amazone) werd binnen jazzkringen lovend ontvangen. Bij Marshall vormen invloeden van Duke Ellington, Thelonious Monk, Keith Jarrett en de mathematische werkwijze van Bach, maar ook hip hop-, soul- en folkelementen een coherent geheel.<br /><img width="150" height="91" alt="" src="/cms_files/Image/LOGO-VRIJDAGINDEFLIP-ICON.jpg" /><br /><a target=_blank href="http://www.jazzinternationalrotterdam.nl"><img height="37" width="150" alt="" src="/cms_files/Image/SJIR_web.jpg" /></a><br/><br/><ul><li><a target="_blank" href="http://www.jazzinternational.nl">www.jazzinternational.nl</a></li></ul>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6291_07.jpg" length="4131" type="image/jpeg"/></item><item><title><![CDATA[za 06 dec, 00.00 uur - Nederlands Kampioenschap Turks Volksdansen - ]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5023/Nederlands_Kampioenschap_Turks_Volksdansen//]]></link><description><![CDATA[]]></description></item><item><title><![CDATA[za 06 dec, 20.15 uur - Op reis door Europa - Renate Arends &amp; Maria Fiselier]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4691/Op_reis_door_Europa/Renate_Arends_Maria_Fiselier/]]></link><description><![CDATA[Nederlandse zangeressen om trots op te zijn: sopraan Renate Arends is een gevestigde naam op opera-, oratorium- en recitalgebied in binnen- en buitenland. Mezzosopraan Maria Fiselier won in 2012 op het Internationale Vocalisten Concours in ’s-Hertogenbosch maar liefst zes prijzen. Vanavond worden ze begeleid door Roger Vignoles, een kei in zijn vak: als pianobegeleider verstaat hij de kunst om aan de zang nog een extra dimensie toe te voegen, waardoor de hele uitvoering op een hoger plan wordt getild. In het concertprogramma staan diverse 19de- en 20ste-eeuwse componisten schouder aan schouder, waardoor er een boeiende reis door Europa ontstaat. Sterker nog, een deel van de liederen zelf gaat over reizen – of dat nu fysiek, in verbeelding of emotioneel is. Voorafgaand zijn er foyeroptredens door zangstudenten van het Koninklijk Conservatorium, Lex Bohlmeijer van Radio4 presenteert de avond en na afloop kunt u de musici persoonlijk ontmoeten!<br /><br />Vanaf 19.30 uur foyeroptredens door zangstudenten van het Koninklijk Conservatorium.<br />Na afloop van het concert meet & greet met Renate Arends, Maria Fiselier en Roger Vignoles.<br /><br />Dit concert komt tot stand i.s.m. Omroep MAX<br /><img width="50" height="32" alt="" src="/cms_files/Image/Omroep-MAX-logo-web.jpg"/>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6293_07.jpg" length="3372" type="image/jpeg"/></item><item><title><![CDATA[zo 07 dec, 11.00 uur - Zondagochtendconcert - Ein Morgen in Wien - Operette Wensconcert]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4957/Zondagochtendconcert/Ein_Morgen_in_Wien_Operette_Wensconcert/]]></link><description><![CDATA[In 2012 en 2013 waren de Ein Morgen in Wien-concerten een enorm succes! Een bomvolle zaal genoot van de Weense Wensen die het publiek vooraf had mogen inleveren. En u gaf aan méér te willen. Dus kent u een romantische wegdroom-aria, een verrukkelijke meezinger of een exclusief pareltje uit de operetteliteratuur? Laat uw hart spreken. Wij staan te popelen om met een selectie van uw ideeën een heerlijke zondagochtend te vullen. En we hebben een aantal theatrale verrassingen voor u, zodat u nog meer zult genieten van deze ochtend.<br /><br />U kunt uw wensen kenbaar maken door ze per e-mail te sturen aan <a href="mailto:info@hanson.eu"><b>info@hanson.eu</b></a> of plaats op de Facebook-pagina van de Zondagochtendconcerten de door u gewenste titel(s): <a target=_blank href="http://www.facebook.com/Dezondagochtendconcerten"><b>www.facebook.com/Dezondagochtendconcerten</b></a><br /><br />Uw vertrouwde Rotterdamse sopraan Waldin Roes, de Braziliaanse tenor Augusto Valença en de befaamde Brabantse bariton Johan van Oorschot willen bijzonder graag uw muzikale dromen vervullen. Zij worden begeleid door blaaskwintet Hi-Five en pianist/arrangeur Bert Nicodem.<br />(Hanson)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6515_07.jpg" length="2969" type="image/jpeg"/></item><item><title><![CDATA[zo 07 dec, 14.00 uur - Il Giardino Armonico - Het Venetië van Vivaldi]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4693/Il_Giardino_Armonico/Het_Venetie_van_Vivaldi/]]></link><description><![CDATA[Het Venetië van Vivaldi, hoe zou dat er uitgezien hebben? Gedeeltelijk anders dan nu natuurlijk, maar vooral: met andere mensen, geluiden en muziek! Laat u vanmiddag op de klanken van Vivaldi en tijdgenoten door de bevlogen musici van Il Giardino Armonico meevoeren naar deze heerlijke Italiaanse lagunestad. Het welbekende Italiaanse oude-muziekgezelschap werkt daarvoor samen met het Codarts Kamerkoor en solisten van het Koninklijk Conservatorium in Den Haag. Tessa Joosse, die al eerder films en video-installaties voor muziektheaterproducties maakte, verzorgt het beeld bij deze muzikale reis. En last but not least: ook de virtuoze Italiaanse cellist Giovanni Sollima is van de partij. Deze avontuurlijke musicus speelt barokmuziek alsof ze gisteren is geschreven en laat in zijn eigen muziek graag de grenzen tussen verschillende genres en stijlen verdwijnen. Laat u verkwikken door de Italiaanse levendigheid, en na afloop kunt u nog wat drinken met de musici ook!]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6297_07.jpg" length="3048" type="image/jpeg"/></item><item><title><![CDATA[zo 07 dec, 14.15 uur - Rotterdams Philharmonisch - Mahler 9 met Van Zweden]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5117/Rotterdams_Philharmonisch/Mahler_9_met_Van_Zweden/]]></link><description><![CDATA[De wereld in klank vangen: dat was voor Mahler de essentie van het componeren. Nadat hij in zijn allesovertreffende Achtste naar eigen zeggen het universum tot resoneren had gebracht, stelde hij zijn late werk in het teken van de verstilling. Zijn Negende Symfonie – de laatste die hij wist te voltooien – werd zo een lofzang op het leven, uitmondend in een ongrijpbaar verklinkend afscheid: de muziek van het ultieme.<br/><br/>Om 13.15 uur inleiding door Emanuel Overbeeke (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7821_07.jpg" length="3111" type="image/jpeg"/></item><item><title><![CDATA[di 09 dec, 20.15 uur - Belcea Quartet - Beethoven, Schubert, Turnage]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4697/Belcea_Quartet/Beethoven_Schubert_Turnage/]]></link><description><![CDATA[Het Belcea Quartet bracht in 2012 en 2013 het gehele strijkkwartetoeuvre van Beethoven op cd uit, waarvoor het prijzen als de ECHO Klassik Award en vele lofbetuigingen kreeg toebedeeld. In zijn inleiding tot het cd-project schreef het kwartet: ‘Wat de belangrijkste drijfveer tot deze muziek lijkt te zijn is ’s mans zucht naar vrijheid, het onblusbare verlangen om zijn grenzen te verruimen en onderwijl zichzelf te leren kennen’. Het had evenzeer het artistieke credo van de kwartetleden kunnen zijn; ze worden geroemd om hun dynamische en grensverleggende interpretaties. Hun focus op moderne composities toont dat ze geen repertoiregrenzen kennen. Het Belcea Quartet bracht al eerder met succes een nieuw kwartet (Twisted Blues with Twisted Ballad) van Mark-Anthony Turnage in première en zal dat in december opnieuw doen. Het kwartet besluit zijn concert met een klassieker van Schubert.]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6299_07.jpg" length="3631" type="image/jpeg"/></item><item><title><![CDATA[di 09 dec, 20.15 uur - Vivaldi &amp; Sollima - Il Giardino Armonico]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4695/Vivaldi_Sollima/Il_Giardino_Armonico/]]></link><description><![CDATA[Cellospelen, componeren, improviseren: de Italiaan Giovanni Sollima beheerst het allemaal. Zet hem een celloconcert van Vivaldi voor en het klinkt fris en fruitig alsof hij de noten zojuist heeft opgehaald bij de componist. Dat barokmuziek een flinke portie improvisatie wel kan gebruiken, blijkt ook uit concerti grossi van Geminiani en Händel. In deze vroege orkeststukken spant een clubje solisten samen tegen de groep. De altijd wakkere Telemann voegde er een noviteit aan toe: de chalumeau, een kleurrijke voorloper van de klarinet. Door Telemanns Concert voor 2 chalumeaus en strijkers liet Giovanni Sollima zich op zijn beurt inspireren tot een gloednieuw stuk voor dezelfde bezetting. Oude klanken en nieuwe klanken: je kunt ze toevertrouwen aan het Italiaanse topensemble Il Giardino Armonico. Hun dirigent, Giovanni Antonini, heeft succesvolle projecten ondernomen met de sterzangeres Cecilia Bartoli. Bij het Koninklijk Concertgebouworkest is hij een graag geziene gast.<br/><br/>Om 19.30 uur inleiding door Philip Ruitenberg]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6295_07.jpg" length="3594" type="image/jpeg"/></item><item><title><![CDATA[do 11 dec, 20.15 uur - Rotterdams Philharmonisch - Schuberts Onvoltooide]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5119/Rotterdams_Philharmonisch/Schuberts_Onvoltooide/]]></link><description><![CDATA[Met de Onvoltooide, volgens velen zijn indrukwekkendste symfonie, liet Schubert een hartstochtelijk Allegro na, een ontroerend Andante én de grote vraag hoe het hierna nog verder had kunnen gaan. In dit concert zorgen Debussy en Poulenc voor de koorfinale waarvan Schubert zelf niet had durven dromen. De ‘ontzagwekkende intensiteit en kracht’ van Collegium Vocale Gent staat garant voor ‘kippenvel’, aldus The Telegraph.<br/><br/>Om 19.15 uur inleiding door Kees Wisse (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7823_07.jpg" length="2877" type="image/jpeg"/></item><item><title><![CDATA[vr 12 dec, 20.15 uur - Rotterdams Philharmonisch - Schuberts Onvoltooide]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5121/Rotterdams_Philharmonisch/Schuberts_Onvoltooide/]]></link><description><![CDATA[Met de Onvoltooide, volgens velen zijn indrukwekkendste symfonie, liet Schubert een hartstochtelijk Allegro na, een ontroerend Andante én de grote vraag hoe het hierna nog verder had kunnen gaan. In dit concert zorgen Debussy en Poulenc voor de koorfinale waarvan Schubert zelf niet had durven dromen. De ‘ontzagwekkende intensiteit en kracht’ van Collegium Vocale Gent staat garant voor ‘kippenvel’, aldus The Telegraph.<br/><br/>Om 19.15 uur inleiding door Kees Wisse (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7825_07.jpg" length="2877" type="image/jpeg"/></item><item><title><![CDATA[vr 12 dec, 20.30 uur - Stevie Ann - ]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4699/Stevie_Ann//]]></link><description><![CDATA[Als je in Los Angeles werkt met de bassist en drummer van John Mayer, de geluidstechnicus van Ben Harper en de gitarist van de Counting Crows, dan heb je het als Nederlandse singer-songwriter niet slecht gedaan. Maar ook voordat Stevie Ann naar Amerika vertrok had de nu bijna achtentwintigjarige zangeres al een eigen fanclub, speelde ze op Pinkpop en won ze een Essent Award en een Zilveren Harp. Na een akoestische liveplaat in 2010 presenteerde deze vrouw-met-gitaar onlangs haar internationale debuut California Sounds, met een warme Americana-sound.<br /><img width="150" height="91" alt="" src="/cms_files/Image/LOGO-VRIJDAGINDEFLIP-ICON.jpg" />]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6301_07.jpg" length="3539" type="image/jpeg"/></item><item><title><![CDATA[za 13 dec, 14.00 uur - Deo Cantemus - Kerstconcert (A)]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5275/Deo_Cantemus/Kerstconcert_A_/]]></link><description><![CDATA[Deo Cantemus is vooral bekend geworden door de kerstconcerten die sinds 1966 jaarlijks in de Doelen plaatsvinden. Deze worden bezocht door duizenden mensen uit het hele land. De Kerst-Doelenconcerten staan in een lange traditie, maar zijn allerminst traditioneel te noemen! In 2014 worden vier Kerst-Doelenconcerten georganiseerd. Het gevarieerde programma is toegankelijk en herkenbaar, maar tegelijk vernieuwend en verrassend. Nieuwe kerstbewerkingen worden ten gehore gebracht en oude, vertrouwde melodieën klinken in een vernieuwde uitvoering. Het geheel wordt gelardeerd met een ‘vleugje’ klassiek! Breed en majestueus worden afgewisseld door kleine en breekbare momenten. <br />De uitvoerenden brengen het programma met een passie die het publiek niet onbewogen laat en creëren een sfeer die wordt betiteld als ‘warm, overweldigend en indrukwekkend’.<br/><br/><ul><li><a target="_blank" href="http://www.deocantemus.nl">www.deocantemus.nl</a></li></ul>]]></description></item><item><title><![CDATA[zo 14 dec, 11.00 uur - Zondagochtendconcert - Laura Fygi meets Trio Malando]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4959/Zondagochtendconcert/Laura_Fygi_meets_Trio_Malando/]]></link><description><![CDATA[In dit zeer gevarieerde programma wordt jazz-diva Laura Fygi begeleid door drie multitalenten, allen bekend bij het publiek van de Zondagochtendconcerten. Met deze bezetting ontstaat een bijzondere cross-over. Het repertoire bestaat dan ook uit een beetje jazz, een beetje latin en een beetje Hongaars. Een programma vol humor, waarbij het publiek nauw wordt betrokken.<br />(Hanson)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7591_07.jpg" length="3043" type="image/jpeg"/></item><item><title><![CDATA[zo 14 dec, 14.15 uur - Rotterdams Philharmonisch - Schuberts Onvoltooide]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/5123/Rotterdams_Philharmonisch/Schuberts_Onvoltooide/]]></link><description><![CDATA[Met de Onvoltooide, volgens velen zijn indrukwekkendste symfonie, liet Schubert een hartstochtelijk Allegro na, een ontroerend Andante én de grote vraag hoe het hierna nog verder had kunnen gaan. In dit concert zorgen Debussy en Poulenc voor de koorfinale waarvan Schubert zelf niet had durven dromen. De ‘ontzagwekkende intensiteit en kracht’ van Collegium Vocale Gent staat garant voor ‘kippenvel’, aldus The Telegraph.<br/><br/>Om 13.15 uur inleiding door Kees Wisse (entree € 4 via Vriendenbalie Hal Grote Zaal; vrij entree voor Vrienden RPhO)]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img7811_07.jpg" length="2877" type="image/jpeg"/></item><item><title><![CDATA[zo 14 dec, 15.00 uur - Hayo Boerema - Laurensorgel - ‘La Nativité’  in woord, toon en beeld]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4701/Hayo_Boerema_Laurensorgel/_La_Nativite_in_woord_toon_en_beeld/]]></link><description><![CDATA[Hayo Boerema, organist van de Grote of St. Laurenskerk in Rotterdam, geeft een kerstconcert op ‘zijn’ machtige Marcussen-orgel. Op het programma staat een van de onbetwiste hoogtepunten uit de orgelliteratuur: La nativité du Seigneur (De geboorte van de Heer) van Olivier Messiaen. Voor de componist was dit negendelige orgelwerk een uiting van diepe geloofsbeleving en een grote stap op weg naar zijn eigen muzikale taal. De kleurrijke, expressieve muziek zal worden omlijst door tekst en beeld.<br /><br />Dit concert komt tot stand i.s.m. Stichting Laurenskerk <br /><a target=_blank href="http://www.laurenskerkrotterdam.nl"><img height="71" width="60" alt="" src="/cms_files/Image/Laurenskerk_RGB_op_wit_webversie.jpg" /></a>]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6305_07.jpg" length="2209" type="image/jpeg"/></item><item><title><![CDATA[zo 14 dec, 16.00 uur - Licht op De Vries - Honderd nachten, honderd jaren]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4943/Licht_op_De_Vries/Honderd_nachten_honderd_jaren/]]></link><description><![CDATA[Honderd nachten, honderd jaren gaat over gekmakende liefde en ongenaakbare schoonheid, gekoesterde dromen en verloren illusies, jong zijn en ouder worden en het eeuwige mysterie van de tijd, het leven en de dood. Componist Klaas de Vries maakte dit nieuwe muziektheaterstuk over de legendarische Japanse dichteres Komachi samen met zijn vrouw, mezzosopraan Gerrie de Vries, en choreografe-regisseuse Dunja Jocic. Zij lieten zich voor Honderd nachten, honderd jaren inspireren door het eeuwenoude Japanse Noh-theater, dat zijn oorsprong vond in religieuze rituelen waarin het boeddhisme werd gecombineerd met oudere vormen van voorouder- en geestenverering. In deze raadselachtige theaterkunst vormen tekst, spel, zang, muziek, dans, kostuums, maskers en de theatrale setting van de ruimte een werkelijke eenheid. De Volkskrant schreef na de première: ‘Met een geraffineerd gevoel voor kleur en timing zuigt Klaas de Vries je los van tijd en ruimte. [...] Oost en west grijpen in elkaar, oude muziek transformeert in nieuwe.’<br /><br /><b>Red Sofa Bankpas</b><br />Voor slechts € 79 per seizoen beschikt u over de Red Sofa Bankpas, waarmee u voor <a href="http://www.dedoelen.nl/nl/concerten/agenda/?date_from=2014-9-1&date_to=2015-8-31&genre%5B%5D=red_sofa"><b>alle Red Sofa-concerten in seizoen 2014-2015</b>&nbsp;</a>een gratis kaart kunt reserveren. Klik <a href="https://dedoelen.ticketmatic.com/addloyaltycard.php?a=OUBoHS3DoSw&e=t8Y497W9JB4&s=80cswBbInpo&l=nl/"><b>hier</b></a> voor het bestellen van de Red Sofa Bankpas.<br/><br/>Van 17.30 tot 18.15 uur nabespreking met Neil Wallace; van 19.30 tot 20.00 uur Neil Wallace in gesprek met wedstrijddeelnemers]]></description><enclosure url="http://www.dedoelen.nl/cms_files/system/images/img6737_07.jpg" length="3129" type="image/jpeg"/></item><item><title><![CDATA[zo 14 dec, 20.15 uur - DoelenEnsemble - Compositieprijs Rotterdamse School]]></title><link><![CDATA[http://www.dedoelen.nl/nl/concerten/agenda/4703/DoelenEnsemble/Compositieprijs_Rotterdamse_School/]]></link><description><![CDATA[<p>Nieuwe werken van studenten van Codarts Compositie-afdeling in premi&egrave;re.<br />
 
similarity index 89%
rename from program/everything/scheme.xml
rename to program/everything/xml/scheme.xml
index 24d7753..50c7620 100644 (file)
                        <full_summary></full_summary>
                        <link>http://www.paradiso.nl/web/Agenda-Item/Lentekabinet-Festival-Afterparty-Locatie-Tolhuistuin-zaal.htm</link>
                        <pub_date>wo, 07 mei 2014 14:46:00 GMT</pub_date>
+                       <extracted_uris>
+                               <url>http://martlubbers.net</url>
+                               <url>http://martlubbers2.net</url>
+                       </extracted_uris>
                </entry>
        </data>
 </crawler_output>
diff --git a/program/everything/xml/scheme.xsd b/program/everything/xml/scheme.xsd
new file mode 100644 (file)
index 0000000..56834a0
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet type="text/xsl" href="xs3p.xsl"?>
+<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+<!--This is the main element, required. It contains crawler and/data entries-->
+  <xs:element name="crawler_output">
+    <xs:complexType>
+      <xs:sequence>
+<!--Crawler entries contain the information of the crawler, there can be multiple-->
+        <xs:element name="crawler" maxOccurs="unbounded" minOccurs="0">
+          <xs:complexType>
+            <xs:simpleContent>
+              <xs:extension base="xs:string">
+                <xs:attribute type="xs:string" name="name" use="optional"/>
+                <xs:attribute type="xs:string" name="venue" use="optional"/>
+                <xs:attribute type="xs:string" name="freq" use="optional"/>
+                <xs:attribute type="xs:string" name="def_loc" use="optional"/>
+                <xs:attribute type="xs:string" name="adress" use="optional"/>
+                <xs:attribute type="xs:anyURI" name="website" use="optional"/>
+                <xs:attribute type="xs:anyURI" name="url" use="optional"/>
+              </xs:extension>
+            </xs:simpleContent>
+          </xs:complexType>
+        </xs:element>
+<!--Data entries contain the information of a single crawled entry, there can be multiple-->
+        <xs:element name="data" maxOccurs="unbounded" minOccurs="0">
+          <xs:complexType>
+            <xs:sequence>
+              <xs:element name="entry">
+                <xs:complexType>
+                  <xs:sequence>
+<!--These four fields contain the user data-->
+                    <xs:element type="xs:string" name="where"/>
+                    <xs:element type="xs:string" name="what"/>
+                    <xs:element type="xs:string" name="date"/>
+                    <xs:element type="xs:string" name="time"/>
+<!--These fields contain the raw original title and summary-->
+                    <xs:element type="xs:string" name="full_title"/>
+                    <xs:element type="xs:string" name="full_summary"/>
+<!--These fields contain some other information from the rss-->
+                    <xs:element type="xs:anyURI" name="link" maxOccurs="unbounded" minOccurs="0"/>
+                    <xs:element type="xs:string" name="pub_date" maxOccurs="unbounded" minOccurs="0"/>
+<!--Extracted URIs is a list of urls, this can be empty-->
+                    <xs:element name="extracted_uris" maxOccurs="unbounded" minOccurs="0">
+                      <xs:complexType>
+                        <xs:sequence>
+                          <xs:element type="xs:anyURI" name="url" maxOccurs="unbounded" minOccurs="0"/>
+                        </xs:sequence>
+                      </xs:complexType>
+                    </xs:element>
+                  </xs:sequence>
+                </xs:complexType>
+              </xs:element>
+            </xs:sequence>
+<!--These fields specify the crawler name and the date crawled-->
+            <xs:attribute type="xs:string" name="from"/>
+            <xs:attribute type="xs:dateTime" name="date"/>
+          </xs:complexType>
+        </xs:element>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
diff --git a/program/everything/xml/xs3p.xsl b/program/everything/xml/xs3p.xsl
new file mode 100644 (file)
index 0000000..047b1f7
--- /dev/null
@@ -0,0 +1,8520 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
+<!--\r
+  Copyright (C) DSTC Pty Ltd (ACN 052 372 577) 2002\r
\r
+  The software contained on this media is the property of the\r
+  DSTC Pty Ltd.  Use of this software is strictly in accordance\r
+  with the license agreement in the accompanying LICENSE file.\r
+  If your distribution of this software does not contain a\r
+  LICENSE file then you have no rights to use this software\r
+  in any manner and should contact DSTC at the address below\r
+  to determine an appropriate licensing arrangement.\r
\r
+      DSTC Pty Ltd\r
+      Level 7, General Purpose South \r
+      The University of Queensland\r
+      QLD 4072 Australia \r
+      Tel: +61 7 3365 4310\r
+      Fax: +61 7 3365 4311\r
+      Email: titanium_enquiries@dstc.edu.au\r
\r
+  This software is being provided "AS IS" without warranty of\r
+  any kind.  In no event shall DSTC Pty Ltd be liable for\r
+  damage of any kind arising out of or in connection with\r
+  the use or performance of this software.\r
+-->\r
+<!-- \r
+  File:\r
+     xs3p.xsl\r
+  Description:\r
+     Stylesheet that generates XHTML documentation, given an XML \r
+     Schema document\r
+  Assumptions:\r
+     -Resulting documentation will only be displayed properly with \r
+      the latest browsers that support XHTML and CSS. Older \r
+      browsers are not supported.\r
+     -Assumed that XSD document conforms to the XSD recommendation.\r
+      No validity checking is done.\r
+  Constraints:\r
+     -Local schema components cannot contain two dashes in \r
+      'documentation' elements within their 'annotation' element.\r
+      This is because the contents of those 'documentation' \r
+      elements are displayed in a separate window using Javascript. \r
+      This Javascript code is enclosed in comments, which do not\r
+      allow two dashes inside themselves.\r
+  Notes:\r
+     -Javascript code is placed within comments, even though in \r
+      strict XHTML, JavaScript code should be placed within CDATA \r
+      sections. This is because current browsers generate a syntax \r
+      error if the page contains CDATA sections. Placing Javascript \r
+      code within comments means that the code cannot contain two \r
+      dashes.\r
+      (See 'PrintJSCode' named template.)\r
+  Stylesheet Sections:\r
+     -Global Parameters\r
+          Specify parameters that can be set externally to customise \r
+          stylesheet\r
+     -Constants\r
+          Constants used by the stylesheet\r
+     -Main Document\r
+          Templates to generate the overall document and the top-level \r
+          sections within it\r
+     -Hierarchy table\r
+          Templates for displaying type hierarchy for simple and \r
+          complex types, and substitution group hierarchy for elements\r
+     -Properties table\r
+          Templates for displaying the properties of top-level schema \r
+          components\r
+     -XML Instance Representation table\r
+          Templates for displaying how an XML instance conforming to \r
+          the schema component would look like\r
+     -Schema Component Representation table\r
+          Templates for displaying the XML representation of the schema\r
+          component\r
+     -XML Pretty Printer\r
+          Templates for displaying arbitrary XML instances\r
+     -Handling Schema Component References\r
+          Templates for generating internal and external links\r
+     -General Utility Templates\r
+          General templates used by other templates in this stylesheet\r
+  To Do List:\r
+     -It is not clever when printing out element and attribute \r
+      wildcards in the XML Instance Representation tables. It prints \r
+      out all wildcards, rather than working out the actual wildcard \r
+      is from multiple wildcard instances.\r
+     -Same as above for simple type constraints, e.g. it doesn't \r
+      summarise multiple pattern constraints.\r
+-->\r
+<xsl:stylesheet \r
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" \r
+ xmlns="http://www.w3.org/1999/xhtml" \r
+ xmlns:html="http://www.w3.org/1999/xhtml" \r
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema" \r
+ xmlns:ppp="http://titanium.dstc.edu.au/xml/xs3p" \r
+ version="1.0" \r
+ exclude-result-prefixes="xsd ppp html">\r
+\r
+   <xsl:output \r
+    method="xml" \r
+    encoding="ISO-8859-1"\r
+    standalone="yes"\r
+    version="1.0"\r
+    doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" \r
+    doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" \r
+    indent="yes"/>\r
+\r
+   <xsl:key name="type" match="/xsd:schema/xsd:complexType | /xsd:schema/xsd:simpleType | /xsd:schema/xsd:redefine/xsd:complexType | /xsd:schema/xsd:redefine/xsd:simpleType" use="@name" />\r
+   <xsl:key name="complexType" match="/xsd:schema/xsd:complexType | /xsd:schema/xsd:redefine/xsd:complexType" use="@name" />\r
+   <xsl:key name="simpleType" match="/xsd:schema/xsd:simpleType | /xsd:schema/xsd:redefine/xsd:simpleType" use="@name" />\r
+   <xsl:key name="attributeGroup" match="/xsd:schema/xsd:attributeGroup | /xsd:schema/xsd:redefine/xsd:attributeGroup" use="@name" />\r
+   <xsl:key name="group" match="/xsd:schema/xsd:group | /xsd:schema/xsd:redefine/xsd:group" use="@name" />\r
+   <xsl:key name="attribute" match="/xsd:schema/xsd:attribute" use="@name" />\r
+   <xsl:key name="element" match="/xsd:schema/xsd:element" use="@name" />\r
+\r
+   <!-- ******** Global Parameters ******** -->\r
+\r
+   <!-- Title of XHTML document. -->\r
+   <xsl:param name="title"></xsl:param>\r
+\r
+   <!-- If 'true', sorts the top-level schema components by type, \r
+        then name. Otherwise, displays the components by the order that \r
+        they appear in the schema. -->\r
+   <xsl:param name="sortByComponent">true</xsl:param>\r
+\r
+   <!-- If 'true', XHTML document uses JavaScript for added\r
+        functionality, such as pop-up windows and information-\r
+        hiding.\r
+        Otherwise, XHTML document does not use JavaScript. -->\r
+   <xsl:param name="useJavaScript">true</xsl:param>\r
+\r
+   <!-- If 'true', prints all super-types in the\r
+        type hierarchy box.\r
+        Otherwise, prints the parent type only in the\r
+        type hierarchy box. -->\r
+   <xsl:param name="printAllSuperTypes">true</xsl:param>\r
+\r
+   <!-- If 'true', prints all sub-types in the\r
+        type hierarchy box.\r
+        Otherwise, prints the direct sub-types only in the\r
+        type hierarchy box. -->\r
+   <xsl:param name="printAllSubTypes">true</xsl:param>\r
+\r
+   <!-- If 'true', prints out the Glossary section. -->\r
+   <xsl:param name="printGlossary">true</xsl:param>\r
+\r
+   <!-- If 'true', prints out the Legend section. -->\r
+   <xsl:param name="printLegend">true</xsl:param>\r
+\r
+   <!-- If 'true', prints prefix matching namespace of schema\r
+        components in XML Instance Representation tables. -->\r
+   <xsl:param name="printNSPrefixes">true</xsl:param>\r
+\r
+   <!-- If 'true', searches 'included' schemas for schema components \r
+        when generating links and XML Instance Representation tables. -->\r
+   <xsl:param name="searchIncludedSchemas">false</xsl:param>\r
+\r
+   <!-- If 'true', searches 'imported' schemas for schema components \r
+        when generating links and XML Instance Representation tables. -->\r
+   <xsl:param name="searchImportedSchemas">false</xsl:param>\r
+\r
+   <!-- File containing the mapping from file locations of external \r
+        (e.g. included, imported, refined) schemas to file locations \r
+        of their XHTML documentation. -->\r
+   <xsl:param name="linksFile"></xsl:param>\r
+  \r
+   <!-- Set the base URL for resolving links. -->\r
+   <xsl:param name="baseURL"></xsl:param>\r
+  \r
+   <!-- Uses an external CSS stylesheet rather than using \r
+        internally-declared CSS properties. -->\r
+   <xsl:param name="externalCSSURL"></xsl:param>\r
+\r
+\r
+   <!-- ******** Constants ******** -->\r
+\r
+   <!-- XML Schema Namespace -->\r
+   <xsl:variable name="XSD_NS">http://www.w3.org/2001/XMLSchema</xsl:variable>\r
+\r
+   <!-- XML Namespace -->\r
+   <xsl:variable name="XML_NS">http://www.w3.org/XML/1998/namespace</xsl:variable>\r
+\r
+   <!-- Number of 'em' to indent from parent element's start tag to\r
+        child element's start tag -->\r
+   <xsl:variable name="ELEM_INDENT">1.5</xsl:variable>\r
+\r
+   <!-- Number of 'em' to indent from parent element's start tag to\r
+        attribute's tag -->\r
+   <xsl:variable name="ATTR_INDENT">0.5</xsl:variable>\r
+\r
+   <!-- Title to use if none provided -->\r
+   <xsl:variable name="DEFAULT_TITLE">XML Schema Documentation</xsl:variable>\r
+\r
+   <!-- Prefixes used for anchor names -->\r
+      <!-- Type definitions -->\r
+   <xsl:variable name="TYPE_PREFIX">type_</xsl:variable>\r
+      <!-- Attribute declarations -->\r
+   <xsl:variable name="ATTR_PREFIX">attribute_</xsl:variable>\r
+      <!-- Attribute group definitions -->\r
+   <xsl:variable name="ATTR_GRP_PREFIX">attributeGroup_</xsl:variable>\r
+      <!-- Complex type definitions -->\r
+   <xsl:variable name="CTYPE_PREFIX" select="$TYPE_PREFIX"/>\r
+      <!-- Element declarations -->\r
+   <xsl:variable name="ELEM_PREFIX">element_</xsl:variable>\r
+      <!-- Key definitions -->\r
+   <xsl:variable name="KEY_PREFIX">key_</xsl:variable>\r
+      <!-- Group definitions -->\r
+   <xsl:variable name="GRP_PREFIX">group_</xsl:variable>\r
+      <!-- Notations -->\r
+   <xsl:variable name="NOTA_PREFIX">notation_</xsl:variable>\r
+      <!-- Namespace declarations -->\r
+   <xsl:variable name="NS_PREFIX">ns_</xsl:variable>\r
+      <!-- Simple type definitions -->\r
+   <xsl:variable name="STYPE_PREFIX" select="$TYPE_PREFIX"/>\r
+      <!-- Glossary terms -->\r
+   <xsl:variable name="TERM_PREFIX">term_</xsl:variable>\r
+\r
+   <!-- The original schema needs to be stored because when\r
+        calculating links for references, the links have to be\r
+        relative to the original schema. See 'PrintCompRef'\r
+        template. -->\r
+   <xsl:variable name="ORIGINAL_SCHEMA" select="/xsd:schema"/>\r
+\r
+   <!-- ******** Main Document ******** -->\r
+\r
+   <!--\r
+     Main template that starts the process\r
+     -->\r
+   <xsl:template match="/xsd:schema">\r
+      <!-- Check that links file is provided if searching external\r
+           schemas for components. -->\r
+      <xsl:if test="$linksFile='' and (normalize-space(translate($searchIncludedSchemas, 'TRUE', 'true'))='true' or normalize-space(translate($searchImportedSchemas, 'TRUE', 'true'))='true')">\r
+         <xsl:call-template name="HandleError">\r
+            <xsl:with-param name="isTerminating">true</xsl:with-param>\r
+            <xsl:with-param name="errorMsg">\r
+'linksFile' variable must be provided if either \r
+'searchIncludedSchemas' or 'searchImportedSchemas' is true.\r
+            </xsl:with-param>\r
+         </xsl:call-template>\r
+      </xsl:if>\r
+\r
+      <!-- Get title of document -->\r
+      <xsl:variable name="actualTitle">\r
+         <xsl:choose>\r
+            <xsl:when test="$title != ''">\r
+               <xsl:value-of select="$title"/>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+               <xsl:value-of select="$DEFAULT_TITLE"/>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+      </xsl:variable>\r
+\r
+      <html>\r
+         <head>\r
+            <!-- Set title bar -->\r
+            <title><xsl:value-of select="$actualTitle"/></title>\r
+\r
+            <!-- Set content type -->\r
+            <meta http-equiv="Content-Type" content="text/xml; charset=iso-8859-1"/>\r
+\r
+            <!-- Set base URL to use in working out relative paths -->\r
+            <xsl:if test="$baseURL != ''">\r
+               <xsl:element name="base">\r
+                  <xsl:attribute name="href"><xsl:value-of select="$baseURL"/></xsl:attribute> \r
+               </xsl:element>\r
+            </xsl:if>\r
+\r
+            <!-- Set CSS styles -->\r
+            <style type="text/css">\r
+               <xsl:choose>\r
+                  <!-- Use external CSS stylesheet -->\r
+                  <xsl:when test="$externalCSSURL != ''">\r
+                     <xsl:text>\r
+@import url(</xsl:text><xsl:value-of select="$externalCSSURL"/><xsl:text>);\r
+</xsl:text>\r
+                  </xsl:when>\r
+                  <!-- Use internal CSS styles -->\r
+                  <xsl:otherwise>\r
+                     <xsl:call-template name="DocumentCSSStyles"/>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </style>\r
+\r
+            <!-- Add Javascript code to make the collapseable boxes work -->\r
+            <xsl:if test="normalize-space(translate($useJavaScript,'TRUE','true'))='true'">\r
+               <xsl:call-template name="PrintJSCode">\r
+                  <xsl:with-param name="code">\r
+                     <xsl:call-template name="DocumentJSCode"/>\r
+                  </xsl:with-param>\r
+               </xsl:call-template>\r
+            </xsl:if>\r
+         </head>\r
+         <body>\r
+            <!-- Title -->\r
+            <h1><a name="top"><xsl:value-of select="$actualTitle"/></a></h1>\r
+\r
+            <!-- Buttons for displaying printer-friendly version, and\r
+                 expanding and collapsing all boxes -->\r
+            <xsl:call-template name="GlobalControlButtons"/>\r
+\r
+            <!-- Section: Table of Contents -->\r
+            <h2>Table of Contents</h2>\r
+            <xsl:apply-templates select="." mode="toc"/>\r
+            <xsl:call-template name="SectionFooter"/>\r
+\r
+            <!-- Section: Schema Document Properties -->\r
+            <h2><a name="SchemaProperties">Schema Document Properties</a></h2>\r
+            <!-- Sub-section: Properties table -->\r
+            <xsl:apply-templates select="." mode="properties"/>\r
+            <!-- Sub-section: Namespace Legend -->\r
+            <h3>Declared Namespaces</h3>\r
+            <xsl:apply-templates select="." mode="namespaces"/>\r
+            <!-- Sub-section: Schema Component Representation table -->\r
+            <xsl:call-template name="SchemaComponentTable">\r
+               <xsl:with-param name="component" select="."/>\r
+            </xsl:call-template>\r
+            <xsl:call-template name="SectionFooter"/>\r
+\r
+            <!-- Section: Redefined Schema Components -->\r
+            <xsl:if test="xsd:redefine">\r
+               <h2><a name="Redefinitions">Redefined Schema Components</a></h2>\r
+               <xsl:apply-templates select="xsd:redefine/xsd:simpleType | xsd:redefine/xsd:complexType | xsd:redefine/xsd:attributeGroup | xsd:redefine/xsd:group" mode="topSection"/>\r
+            </xsl:if>\r
+\r
+            <!-- Sections: Top-level Schema Components -->\r
+            <xsl:choose>\r
+               <!-- Sort schema components -->\r
+               <xsl:when test="normalize-space(translate($sortByComponent,'TRUE','true'))='true'">\r
+                  <!-- Declarations -->\r
+                  <xsl:if test="xsd:attribute or xsd:element">\r
+                     <h2><a name="SchemaDeclarations">Global Declarations</a></h2>\r
+                     <xsl:apply-templates select="xsd:attribute | xsd:element" mode="topSection">\r
+                        <xsl:sort select="local-name(.)" order="ascending"/>\r
+                        <xsl:sort select="@name" order="ascending"/>\r
+                     </xsl:apply-templates>\r
+                  </xsl:if>\r
+                  <!-- Definitions -->\r
+                  <xsl:if test="xsd:attributeGroup or xsd:complexType or xsd:group or xsd:notation or xsd:simpleType">\r
+                     <h2><a name="SchemaDefinitions">Global Definitions</a></h2>\r
+                     <xsl:apply-templates select="xsd:attributeGroup | xsd:complexType | xsd:group | xsd:notation | xsd:simpleType" mode="topSection">\r
+                        <xsl:sort select="local-name(.)" order="ascending"/>\r
+                        <xsl:sort select="@name" order="ascending"/>\r
+                     </xsl:apply-templates>\r
+                  </xsl:if>\r
+               </xsl:when>\r
+               <!-- Display schema components as they occur -->\r
+               <xsl:otherwise>\r
+                  <h2><a name="SchemaComponents">Global Schema Components</a></h2>\r
+                  <xsl:apply-templates select="xsd:attribute | xsd:attributeGroup | xsd:complexType | xsd:element | xsd:group | xsd:notation | xsd:simpleType" mode="topSection"/>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+\r
+            <!-- Section: Legend -->\r
+            <xsl:if test="normalize-space(translate($printLegend,'TRUE','true'))='true'">\r
+               <div id="legend">\r
+                  <h2><a name="Legend">Legend</a></h2>\r
+                  <xsl:call-template name="Legend"/>\r
+                  <xsl:call-template name="SectionFooter"/>\r
+               </div>\r
+            </xsl:if>\r
+\r
+            <!-- Section: Glossary -->\r
+            <xsl:if test="normalize-space(translate($printGlossary,'TRUE','true'))='true'">\r
+               <div id="glossary">\r
+                  <h2><a name="Glossary">Glossary</a></h2>\r
+                  <xsl:call-template name="Glossary"/>\r
+                  <xsl:call-template name="SectionFooter"/>\r
+               </div>\r
+            </xsl:if>\r
+\r
+            <!-- Document Footer -->\r
+            <p class="footer">\r
+               <xsl:text>Generated by </xsl:text>\r
+               <a href="http://xml.fiforms.org/xs3p/">xs3p</a> (<a href="http://titanium.dstc.edu.au/xml/xs3p">old link</a>)\r
+               <xsl:text>.</xsl:text>\r
+               <xsl:if test="normalize-space(translate($useJavaScript,'TRUE','true'))='true'">\r
+                  <xsl:text> Last modified: </xsl:text>\r
+                  <xsl:call-template name="PrintJSCode">\r
+                     <xsl:with-param name="code">document.write(document.lastModified);</xsl:with-param>\r
+                  </xsl:call-template>\r
+               </xsl:if>\r
+            </p>\r
+         </body>\r
+      </html>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the table of Declared Namespaces for the\r
+     current schema.\r
+     -->\r
+   <xsl:template match="xsd:schema" mode="namespaces">\r
+      <table class="namespaces">\r
+         <tr>\r
+            <th>Prefix</th>\r
+            <th>Namespace</th>\r
+         </tr>\r
+         <!-- Default namespace (no prefix) -->\r
+         <xsl:if test="namespace::*[local-name(.)='']">\r
+            <xsl:variable name="ns" select="namespace::*[local-name(.)='']"/>\r
+            <tr>\r
+               <td>\r
+                  <a name="{$NS_PREFIX}">Default namespace</a>\r
+               </td>\r
+               <td>\r
+                  <xsl:choose>\r
+                     <xsl:when test="/xsd:schema/@targetNamespace and $ns=normalize-space(/xsd:schema/@targetNamespace)">\r
+                        <span class="targetNS">\r
+                           <xsl:value-of select="$ns"/>\r
+                        </span>\r
+                     </xsl:when>\r
+                     <xsl:otherwise>\r
+                        <xsl:value-of select="$ns"/>\r
+                     </xsl:otherwise>\r
+                  </xsl:choose>\r
+               </td>\r
+            </tr>\r
+         </xsl:if>\r
+         <!-- Namespaces with prefixes -->\r
+         <xsl:for-each select="namespace::*[local-name(.)!='']">\r
+            <xsl:variable name="prefix" select="local-name(.)"/>\r
+            <xsl:variable name="ns" select="."/>\r
+            <tr>\r
+               <td>\r
+                  <a name="{concat($NS_PREFIX, $prefix)}">\r
+                     <xsl:value-of select="$prefix"/>\r
+                  </a>\r
+               </td>\r
+               <td>\r
+                  <xsl:choose>\r
+                     <xsl:when test="/xsd:schema/@targetNamespace and $ns=normalize-space(/xsd:schema/@targetNamespace)">\r
+                        <span class="targetNS">\r
+                           <xsl:value-of select="$ns"/>\r
+                        </span>\r
+                     </xsl:when>\r
+                     <xsl:otherwise>\r
+                        <xsl:value-of select="$ns"/>\r
+                     </xsl:otherwise>\r
+                  </xsl:choose>\r
+               </td>\r
+            </tr>\r
+         </xsl:for-each>\r
+      </table>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the Table of Contents.\r
+     -->\r
+   <xsl:template match="xsd:schema" mode="toc">\r
+      <ul>\r
+         <!-- Section: Schema Document Properties -->\r
+         <li>\r
+            <a href="#SchemaProperties">Schema Document Properties</a>\r
+         </li>\r
+\r
+         <!-- Section: Redefined Schema Components -->\r
+         <xsl:if test="xsd:redefine">\r
+            <li>\r
+               <a href="#Redefinitions">Redefined Schema Components</a>\r
+            </li>\r
+         </xsl:if>\r
+\r
+         <!-- Sections: Top-level Schema Components -->\r
+         <xsl:choose>\r
+            <!-- Sort schema components -->\r
+            <xsl:when test="normalize-space(translate($sortByComponent,'TRUE','true'))='true'">\r
+               <!-- Declarations -->\r
+               <xsl:if test="xsd:attribute or xsd:element">\r
+                  <li><a href="#SchemaDeclarations">Global Declarations</a>\r
+                     <ul>\r
+                        <xsl:apply-templates select="xsd:attribute | xsd:element" mode="toc">\r
+                           <xsl:sort select="local-name(.)" order="ascending"/>\r
+                           <xsl:sort select="@name" order="ascending"/>\r
+                        </xsl:apply-templates>\r
+                     </ul>\r
+                  </li>\r
+               </xsl:if>\r
+               <!-- Definitions -->\r
+               <xsl:if test="xsd:attributeGroup or xsd:complexType or xsd:group or xsd:notation or xsd:simpleType">\r
+                  <li><a href="#SchemaDefinitions">Global Definitions</a>\r
+                     <ul>\r
+                        <xsl:apply-templates select="xsd:attributeGroup | xsd:complexType | xsd:group | xsd:notation | xsd:simpleType" mode="toc">\r
+                           <xsl:sort select="local-name(.)" order="ascending"/>\r
+                           <xsl:sort select="@name" order="ascending"/>\r
+                        </xsl:apply-templates>\r
+                     </ul>\r
+                  </li>\r
+               </xsl:if>\r
+            </xsl:when>\r
+            <!-- Display schema components in order as they appear in schema -->\r
+            <xsl:otherwise>\r
+               <li><a href="#SchemaComponents">Global Schema Components</a>\r
+                  <ul>\r
+                     <xsl:apply-templates select="xsd:attribute | xsd:attributeGroup | xsd:complexType | xsd:element | xsd:group | xsd:notation | xsd:simpleType" mode="toc"/>\r
+                  </ul>\r
+               </li>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+      </ul>\r
+\r
+      <!-- Section: Legend -->\r
+      <xsl:if test="normalize-space(translate($printLegend,'TRUE','true'))='true'">\r
+         <ul id="legendTOC" style="margin-top: 0em">\r
+            <li><a href="#Legend">Legend</a></li>\r
+         </ul>\r
+      </xsl:if>\r
+\r
+      <!-- Section: Glossary -->\r
+      <xsl:if test="normalize-space(translate($printGlossary,'TRUE','true'))='true'">\r
+         <ul id="glossaryTOC" style="margin-top: 0em">\r
+            <li><a href="#Glossary">Glossary</a></li>\r
+         </ul>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a link to a top-level schema component section in the\r
+     Table of Contents.\r
+     -->\r
+   <xsl:template match="xsd:*[@name]" mode="toc">\r
+      <xsl:variable name="componentID">\r
+         <xsl:call-template name="GetComponentID">\r
+            <xsl:with-param name="component" select="."/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <li>\r
+         <a href="#{$componentID}">\r
+            <xsl:call-template name="GetComponentDescription">\r
+               <xsl:with-param name="component" select="."/>\r
+            </xsl:call-template>\r
+            <xsl:text>: </xsl:text>\r
+            <strong><xsl:value-of select="@name"/></strong>\r
+         </a>\r
+      </li>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the section for a top-level schema component.\r
+     -->\r
+   <xsl:template match="xsd:*[@name]" mode="topSection">\r
+      <!-- Header -->\r
+      <xsl:call-template name="ComponentSectionHeader">\r
+         <xsl:with-param name="component" select="."/>\r
+      </xsl:call-template>\r
+\r
+      <!-- Hierarchy table (for types and elements) -->\r
+      <xsl:apply-templates select="." mode="hierarchy"/>\r
+\r
+      <!-- Properties table -->\r
+      <xsl:apply-templates select="." mode="properties"/>\r
+\r
+      <!-- XML Instance Representation table -->\r
+      <xsl:call-template name="SampleInstanceTable">\r
+         <xsl:with-param name="component" select="."/>\r
+      </xsl:call-template>\r
+\r
+      <!-- Schema Component Representation table -->\r
+      <xsl:call-template name="SchemaComponentTable">\r
+         <xsl:with-param name="component" select="."/>\r
+      </xsl:call-template>\r
+\r
+      <!-- Footer -->\r
+      <xsl:call-template name="SectionFooter"/>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the buttons that can expand and collapse all boxes in\r
+     this page.\r
+     -->\r
+   <xsl:template name="GlobalControlButtons">\r
+      <xsl:if test="normalize-space(translate($useJavaScript,'TRUE','true'))='true'">\r
+         <div style="float: right;">\r
+            <!-- Printer-friendly Version -->\r
+            <div id="printerControls" style="display:none;">\r
+               <input type="checkbox" onclick="displayMode(this.checked)"/>\r
+               <xsl:text>Printer-friendly Version</xsl:text>\r
+            </div>\r
+            <xsl:call-template name="PrintJSCode">\r
+               <xsl:with-param name="code">\r
+var pc = getElementObject("printerControls");\r
+if (pc != null) {\r
+   pc.style.display="block";\r
+}\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+\r
+            <!-- Expand/Collapse All buttons -->\r
+            <div id="globalControls" style="display:none">\r
+               <strong>XML Instance Representation:</strong><br/>\r
+               <span style="margin-left: 1em; white-space: nowrap">\r
+                  <xsl:text>[ </xsl:text>\r
+                  <a href="javascript:void(0)" onclick="expandAll(xiBoxes)">Expand All</a>\r
+                  <xsl:text> | </xsl:text>\r
+                  <a href="javascript:void(0)" onclick="collapseAll(xiBoxes)">Collapse All</a>\r
+                  <xsl:text> ]</xsl:text>\r
+               </span><br/><br/>\r
+               <strong>Schema Component Representation:</strong><br/>\r
+               <span style="margin-left: 1em; white-space: nowrap">\r
+                  <xsl:text>[ </xsl:text>\r
+                  <a href="javascript:void(0)" onclick="expandAll(scBoxes)">Expand All</a>\r
+                  <xsl:text> | </xsl:text>\r
+                  <a href="javascript:void(0)" onclick="collapseAll(scBoxes)">Collapse All</a>\r
+                  <xsl:text> ]</xsl:text>\r
+               </span>\r
+            </div>\r
+            <xsl:call-template name="PrintJSCode">\r
+               <xsl:with-param name="code">\r
+var gc = getElementObject("globalControls");\r
+if (gc != null) {\r
+   gc.style.display="block";\r
+}\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+         </div>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the section header of a top-level schema component.\r
+     Param(s):\r
+            component (Node) required\r
+              Top-level schema component\r
+     -->\r
+   <xsl:template name="ComponentSectionHeader">\r
+      <xsl:param name="component"/>\r
+\r
+      <xsl:variable name="componentID">\r
+         <xsl:call-template name="GetComponentID">\r
+            <xsl:with-param name="component" select="$component"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+      <xsl:variable name="componentDescription">\r
+         <xsl:call-template name="GetComponentDescription">\r
+            <xsl:with-param name="component" select="$component"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+      <xsl:variable name="componentTermRef">\r
+         <xsl:call-template name="GetComponentTermRef">\r
+            <xsl:with-param name="component" select="$component"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <h3>\r
+         <!-- Description -->\r
+         <xsl:choose>\r
+            <xsl:when test="$componentTermRef != ''">\r
+               <xsl:call-template name="PrintGlossaryTermRef">\r
+                  <xsl:with-param name="code" select="$componentTermRef"/>\r
+                  <xsl:with-param name="term" select="$componentDescription"/>\r
+               </xsl:call-template>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+               <xsl:value-of select="$componentDescription"/>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+         <xsl:text>: </xsl:text>\r
+         <!-- Name -->\r
+         <a name="{$componentID}" class="name">\r
+            <xsl:value-of select="$component/@name"/>\r
+         </a>\r
+      </h3>\r
+   </xsl:template>\r
+\r
+   <!-- \r
+     Prints out footer for top-level sections. \r
+     -->\r
+   <xsl:template name="SectionFooter">\r
+      <!-- Link to top of page-->\r
+      <div style="text-align: right; clear: both;"><a href="#top">top</a></div>\r
+      <hr/>\r
+   </xsl:template>\r
+\r
+   <!-- \r
+     Java Script code required by the entire HTML document.\r
+     -->\r
+   <xsl:template name="DocumentJSCode">\r
+      <!-- Get all IDs of XML Instance Representation boxes\r
+            and place them in an array. -->\r
+      <xsl:text>/* IDs of XML Instance Representation boxes */\r
+</xsl:text>\r
+      <xsl:text>var xiBoxes = new Array(</xsl:text>\r
+      <xsl:for-each select="/xsd:schema/xsd:*[@name]">\r
+         <xsl:if test="position()!=1">\r
+            <xsl:text>, </xsl:text>\r
+         </xsl:if>\r
+         <xsl:text>'</xsl:text>\r
+         <xsl:call-template name="GetComponentID">\r
+            <xsl:with-param name="component" select="."/>\r
+         </xsl:call-template>\r
+         <xsl:text>_xibox'</xsl:text>\r
+      </xsl:for-each>\r
+      <xsl:text>);\r
+</xsl:text>\r
+      <!-- Get all IDs of Schema Component Representation boxes\r
+            and place them in an array. -->\r
+      <xsl:text>/* IDs of Schema Component Representation boxes */\r
+</xsl:text>\r
+      <xsl:text>var scBoxes = new Array('schema_scbox'</xsl:text>\r
+      <xsl:for-each select="/xsd:schema/xsd:*[@name]">\r
+         <xsl:text>, '</xsl:text>\r
+         <xsl:call-template name="GetComponentID">\r
+            <xsl:with-param name="component" select="."/>\r
+         </xsl:call-template>\r
+         <xsl:text>_scbox'</xsl:text>\r
+      </xsl:for-each>\r
+      <xsl:text>);\r
+</xsl:text>\r
+      <!-- Functions -->\r
+      <xsl:text>\r
+/**\r
+ * Can get the ID of the button controlling\r
+ * a collapseable box by concatenating\r
+ * this string onto the ID of the box itself.\r
+ */\r
+var B_SFIX = "_button";\r
+\r
+/**\r
+ * Counter of documentation windows\r
+ * Used to give each window a unique name\r
+ */\r
+var windowCount = 0;\r
+\r
+/**\r
+ * Returns an element in the current HTML document.\r
+ * \r
+ * @param elementID Identifier of HTML element\r
+ * @return               HTML element object\r
+ */\r
+function getElementObject(elementID) {\r
+    var elemObj = null;\r
+    if (document.getElementById) {\r
+        elemObj = document.getElementById(elementID);\r
+    }\r
+    return elemObj;\r
+}             \r
+\r
+/**\r
+ * Closes a collapseable box.\r
+ * \r
+ * @param boxObj       Collapseable box\r
+ * @param buttonObj Button controlling box\r
+ */\r
+function closeBox(boxObj, buttonObj) {\r
+  if (boxObj == null || buttonObj == null) {\r
+     // Box or button not found\r
+  } else {\r
+     // Change 'display' CSS property of box\r
+     boxObj.style.display="none";\r
+\r
+     // Change text of button \r
+     if (boxObj.style.display=="none") {\r
+        buttonObj.value=" + ";\r
+     }\r
+  }\r
+}\r
+\r
+/**\r
+ * Opens a collapseable box.\r
+ * \r
+ * @param boxObj       Collapseable box\r
+ * @param buttonObj Button controlling box\r
+ */\r
+function openBox(boxObj, buttonObj) {\r
+  if (boxObj == null || buttonObj == null) {\r
+     // Box or button not found\r
+  } else {\r
+     // Change 'display' CSS property of box\r
+     boxObj.style.display="block";\r
+\r
+     // Change text of button\r
+     if (boxObj.style.display=="block") {\r
+        buttonObj.value=" - ";\r
+     }\r
+  }\r
+}\r
+\r
+/**\r
+ * Sets the state of a collapseable box.\r
+ * \r
+ * @param boxID Identifier of box\r
+ * @param open If true, box is "opened",\r
+ *             Otherwise, box is "closed".\r
+ */\r
+function setState(boxID, open) {\r
+  var boxObj = getElementObject(boxID);\r
+  var buttonObj = getElementObject(boxID+B_SFIX);\r
+  if (boxObj == null || buttonObj == null) {\r
+     // Box or button not found\r
+  } else if (open) {\r
+     openBox(boxObj, buttonObj);\r
+     // Make button visible\r
+     buttonObj.style.display="inline";\r
+  } else {\r
+     closeBox(boxObj, buttonObj);\r
+     // Make button visible\r
+     buttonObj.style.display="inline";\r
+  }\r
+}\r
+\r
+/**\r
+ * Switches the state of a collapseable box, e.g.\r
+ * if it's opened, it'll be closed, and vice versa.\r
+ * \r
+ * @param boxID Identifier of box\r
+ */\r
+function switchState(boxID) {\r
+  var boxObj = getElementObject(boxID);\r
+  var buttonObj = getElementObject(boxID+B_SFIX);\r
+  if (boxObj == null || buttonObj == null) {\r
+     // Box or button not found\r
+  } else if (boxObj.style.display=="none") {\r
+     // Box is closed, so open it\r
+     openBox(boxObj, buttonObj);\r
+  } else if (boxObj.style.display=="block") {\r
+     // Box is opened, so close it\r
+     closeBox(boxObj, buttonObj);\r
+  }\r
+}\r
+\r
+/**\r
+ * Closes all boxes in a given list.\r
+ * \r
+ * @param boxList Array of box IDs\r
+ */\r
+function collapseAll(boxList) {\r
+  var idx;\r
+  for (idx = 0; idx &lt; boxList.length; idx++) {\r
+     var boxObj = getElementObject(boxList[idx]);\r
+     var buttonObj = getElementObject(boxList[idx]+B_SFIX);\r
+     closeBox(boxObj, buttonObj);\r
+  }\r
+}\r
+\r
+/**\r
+ * Open all boxes in a given list.\r
+ * \r
+ * @param boxList Array of box IDs\r
+ */\r
+function expandAll(boxList) {\r
+  var idx;\r
+  for (idx = 0; idx &lt; boxList.length; idx++) {\r
+     var boxObj = getElementObject(boxList[idx]);\r
+     var buttonObj = getElementObject(boxList[idx]+B_SFIX);\r
+     openBox(boxObj, buttonObj);\r
+  }\r
+}\r
+\r
+/**\r
+ * Makes all the control buttons of boxes appear.\r
+ * \r
+ * @param boxList Array of box IDs\r
+ */\r
+function viewControlButtons(boxList) {\r
+    var idx;\r
+    for (idx = 0; idx &lt; boxList.length; idx++) {\r
+        buttonObj = getElementObject(boxList[idx]+B_SFIX);\r
+        if (buttonObj != null) {\r
+            buttonObj.style.display = "inline";\r
+        }\r
+    }\r
+}\r
+\r
+/**\r
+ * Makes all the control buttons of boxes disappear.\r
+ * \r
+ * @param boxList Array of box IDs\r
+ */\r
+function hideControlButtons(boxList) {\r
+    var idx;\r
+    for (idx = 0; idx &lt; boxList.length; idx++) {\r
+        buttonObj = getElementObject(boxList[idx]+B_SFIX);\r
+        if (buttonObj != null) {\r
+            buttonObj.style.display = "none";\r
+        }\r
+    }\r
+}\r
+\r
+/**\r
+ * Sets the page for either printing mode\r
+ * or viewing mode. In printing mode, the page\r
+ * is made to be more readable when printing it out.\r
+ * In viewing mode, the page is more browsable.\r
+ *\r
+ * @param isPrinterVersion If true, display in\r
+ *                                 printing mode; otherwise, \r
+ *                                 in viewing mode\r
+ */\r
+function displayMode(isPrinterVersion) {\r
+    var obj;\r
+    if (isPrinterVersion) {\r
+        // Hide global control buttons\r
+        obj = getElementObject("globalControls");\r
+        if (obj != null) {\r
+            obj.style.visibility = "hidden";\r
+        }\r
+        // Hide Legend\r
+        obj = getElementObject("legend");\r
+        if (obj != null) {\r
+            obj.style.display = "none";\r
+        }\r
+        obj = getElementObject("legendTOC");\r
+        if (obj != null) {\r
+            obj.style.display = "none";\r
+        }\r
+        // Hide Glossary\r
+        obj = getElementObject("glossary");\r
+        if (obj != null) {\r
+            obj.style.display = "none";\r
+        }\r
+        obj = getElementObject("glossaryTOC");\r
+        if (obj != null) {\r
+            obj.style.display = "none";\r
+        }\r
+\r
+        // Expand all XML Instance Representation tables\r
+        expandAll(xiBoxes);\r
+        // Expand all Schema Component Representation tables\r
+        expandAll(scBoxes);\r
+\r
+        // Hide Control buttons\r
+        hideControlButtons(xiBoxes);\r
+        hideControlButtons(scBoxes);\r
+    } else {\r
+        // View global control buttons\r
+        obj = getElementObject("globalControls");\r
+        if (obj != null) {\r
+            obj.style.visibility = "visible";\r
+        }\r
+        // View Legend\r
+        obj = getElementObject("legend");\r
+        if (obj != null) {\r
+            obj.style.display = "block";\r
+        }\r
+        obj = getElementObject("legendTOC");\r
+        if (obj != null) {\r
+            obj.style.display = "block";\r
+        }\r
+        // View Glossary\r
+        obj = getElementObject("glossary");\r
+        if (obj != null) {\r
+            obj.style.display = "block";\r
+        }\r
+        obj = getElementObject("glossaryTOC");\r
+        if (obj != null) {\r
+            obj.style.display = "block";\r
+        }\r
+\r
+        // Expand all XML Instance Representation tables\r
+        expandAll(xiBoxes);\r
+        // Collapse all Schema Component Representation tables\r
+        collapseAll(scBoxes);\r
+\r
+        // View Control buttons\r
+        viewControlButtons(xiBoxes);\r
+        viewControlButtons(scBoxes);\r
+    }\r
+}\r
+\r
+/**\r
+ * Opens up a window displaying the documentation\r
+ * of a schema component in the XML Instance\r
+ * Representation table.\r
+ * \r
+ * @param compDesc      Description of schema component \r
+ * @param compName      Name of schema component \r
+ * @param docTextArray Array containing the paragraphs \r
+ *                           of the new document\r
+ */\r
+function viewDocumentation(compDesc, compName, docTextArray) {\r
+  var width = 400;\r
+  var height = 200;\r
+  var locX = 100;\r
+  var locY = 200;\r
+\r
+  /* Generate content */\r
+  var actualText = "&lt;html>";\r
+  actualText += "&lt;head>&lt;title>";\r
+  actualText += compDesc;\r
+  if (compName != '') {\r
+     actualText += ": " + compName;\r
+  }\r
+  actualText += "&lt;/title>&lt;/head>";\r
+  actualText += "&lt;body bgcolor=\"#FFFFEE\">";\r
+  // Title\r
+  actualText += "&lt;p style=\"font-family: Arial, sans-serif; font-size: 12pt; font-weight: bold; letter-spacing:1px;\">";\r
+  actualText += compDesc;\r
+  if (compName != '') {\r
+     actualText += ": &lt;span style=\"color:#006699\">" + compName + "&lt;/span>";\r
+  }\r
+  actualText += "&lt;/p>";\r
+  // Documentation\r
+  var idx;\r
+  for (idx = 0; idx &lt; docTextArray.length; idx++) {\r
+     actualText += "&lt;p style=\"font-family: Arial, sans-serif; font-size: 10pt;\">" + docTextArray[idx] + "&lt;/p>";\r
+  }\r
+  // Link to close window\r
+  actualText += "&lt;a href=\"javascript:void(0)\" onclick=\"window.close();\" style=\"font-family: Arial, sans-serif; font-size: 8pt;\">Close&lt;/a>";\r
+  actualText += "&lt;/body>&lt;/html>";\r
+\r
+  /* Display window */\r
+  windowCount++;\r
+  var docWindow = window.open("", "documentation"+windowCount, "toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable,alwaysRaised,dependent,titlebar=no,width="+width+",height="+height+",screenX="+locX+",left="+locX+",screenY="+locY+",top="+locY);\r
+  docWindow.document.write(actualText);\r
+}\r
+</xsl:text>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     CSS properties for the entire HTML document.\r
+     -->\r
+   <xsl:template name="DocumentCSSStyles">\r
+      <xsl:text>\r
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */\r
+/* More-configurable styles */\r
+\r
+/******** General ********/\r
+\r
+/* Document body */\r
+body {\r
+   color: Black;\r
+   background-color: White;\r
+   font-family: Arial, sans-serif;\r
+   font-size: 10pt;\r
+}\r
+/* Horizontal rules */\r
+hr {\r
+   color: black;\r
+}\r
+/* Document title */\r
+h1 {\r
+   font-size: 18pt;\r
+   letter-spacing: 2px;\r
+   border-bottom: 1px #ccc solid;\r
+   padding-top: 5px;\r
+   padding-bottom: 5px;\r
+}\r
+/* Main section headers */\r
+h2 {\r
+   font-size: 14pt;\r
+   letter-spacing: 1px;\r
+}\r
+/* Sub-section headers */\r
+h3, h3 a, h3 span {\r
+   font-size: 12pt;\r
+   font-weight: bold;\r
+   color: black;\r
+}\r
+/* Table displaying the properties of the schema components or the\r
+   schema document itself */\r
+table.properties th, table.properties th a {\r
+   color: black;\r
+   background-color: #F99; /* Pink */\r
+}\r
+table.properties td {\r
+   background-color: #eee; /* Gray */\r
+}\r
+\r
+\r
+/******** Table of Contents Section ********/\r
+\r
+/* Controls for switching between printing and viewing modes */\r
+div#printerControls {\r
+   color: #963; /* Orange-brown */\r
+}\r
+/* Controls that can collapse or expand all XML Instance\r
+   Representation and Schema Component Representation boxes */\r
+div#globalControls {\r
+   border: 2px solid #999;\r
+}\r
+\r
+\r
+/******** Schema Document Properties Section ********/\r
+\r
+/* Table displaying the namespaces declared in the schema */\r
+table.namespaces th {\r
+   background-color: #ccc;\r
+}\r
+table.namespaces td {\r
+   background-color: #eee;\r
+}\r
+/* Target namespace of the schema */\r
+span.targetNS {\r
+   color: #06C;\r
+   font-weight: bold;\r
+}\r
+\r
+\r
+/******** Schema Components' Sections ********/\r
+\r
+/* Name of schema component */\r
+.name {\r
+   color: #F93; /* Orange */\r
+}\r
+\r
+/* Hierarchy table */\r
+table.hierarchy {\r
+   border: 2px solid #999; /* Gray */\r
+}\r
+\r
+/* XML Instance Representation table */\r
+div.sample div.contents {\r
+   border: 2px dashed black;\r
+}\r
+\r
+/* Schema Component Representation table */\r
+div.schemaComponent div.contents {\r
+   border: 2px black solid;\r
+}\r
+\r
+\r
+/******** Glossary Section ********/\r
+\r
+/* Glossary Terms */\r
+.glossaryTerm {\r
+   color: #036; /* Blue */\r
+}\r
+\r
+\r
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */\r
+/* Printer-version styles */\r
+\r
+@media print {\r
+\r
+/* Ensures that controls are hidden when printing */\r
+div#printerControls {\r
+   visibility: hidden;\r
+}\r
+div#globalControls {\r
+   visibility: hidden;\r
+}\r
+#legend {\r
+   display: none;\r
+}\r
+#legendTOC {\r
+   display: none;\r
+}\r
+#glossary {\r
+   display: none;\r
+}\r
+#glossaryTOC {\r
+   display: none;\r
+}\r
+\r
+}\r
+\r
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */\r
+/* Base styles */\r
+\r
+/******** General ********/\r
+\r
+/* Unordered lists */\r
+ul {\r
+   margin-left: 1.5em;\r
+   margin-bottom: 0em;\r
+}\r
+/* Tables */\r
+table {\r
+   margin-top: 10px;\r
+   margin-bottom: 10px;\r
+   margin-left: 2px;\r
+   margin-right: 2px;\r
+}\r
+table th, table td {\r
+   font-size: 10pt;\r
+   vertical-align: top;\r
+   padding-top: 3px;\r
+   padding-bottom: 3px;\r
+   padding-left: 10px;\r
+   padding-right: 10px;\r
+}\r
+table th {\r
+   font-weight: bold;\r
+   text-align: left;\r
+}\r
+/* Table displaying the properties of the schema components or the\r
+   schema document itself */\r
+table.properties {\r
+   width: 90%;\r
+}\r
+table.properties th {\r
+   width: 30%;\r
+}\r
+/* Boxes that can make its content appear and disappear*/\r
+div.box {\r
+   margin: 1em;\r
+}\r
+   /* Box caption */\r
+div.box span.caption {\r
+   font-weight: bold;\r
+}\r
+   /* Button to open and close the box */\r
+div.box input.control {\r
+   width: 1.4em;\r
+   height: 1.4em;\r
+   text-align: center;\r
+   vertical-align: middle;\r
+   font-size: 11pt;\r
+}\r
+   /* Box contents */\r
+div.box div.contents {\r
+   margin-top: 3px;\r
+}\r
+\r
+\r
+/******** Table of Contents Section ********/\r
+\r
+/* Controls for switching between printing and viewing modes */\r
+div#printerControls {\r
+   white-space: nowrap;\r
+   font-weight: bold;\r
+   padding: 5px;\r
+   margin: 5px;\r
+}\r
+/* Controls that can collapse or expand all XML Instance\r
+   Representation and Schema Component Representation boxes */\r
+div#globalControls {\r
+   padding: 10px;\r
+   margin: 5px;\r
+}\r
+\r
+\r
+/******** Schema Document Properties Section ********/\r
+\r
+/* Table displaying the namespaces declared in the schema */\r
+table.namespaces th {\r
+}\r
+table.namespaces td {\r
+}\r
+/* Target namespace of the schema */\r
+span.targetNS {\r
+}\r
+\r
+\r
+/******** Schema Components' Sections ********/\r
+\r
+/* Name of schema component */\r
+.name {\r
+}\r
+\r
+/* Hierarchy table */\r
+table.hierarchy {\r
+   width: 90%;\r
+}\r
+table.hierarchy th {\r
+   font-weight: normal;\r
+   font-style: italic;\r
+   width: 20%;\r
+}\r
+table.hierarchy th, table.hierarchy td {\r
+   padding: 5px;\r
+}\r
+\r
+/* XML Instance Representation table */\r
+div.sample {\r
+   width: 90%;\r
+}\r
+div.sample div.contents {\r
+   padding: 5px;\r
+   font-family: Courier New, sans-serif;\r
+   font-size: 10pt;\r
+}\r
+   /* Normal elements and attributes */\r
+div.sample div.contents, div.sample div.contents a {\r
+   color: black;\r
+}\r
+   /* Group Headers */\r
+div.sample div.contents .group, div.sample div.contents .group a {\r
+   color: #999; /* Light gray */\r
+}\r
+   /* Type Information */\r
+div.sample div.contents .type, div.sample div.contents .type a {\r
+   color: #999; /* Light gray */\r
+}\r
+   /* Occurrence Information */\r
+div.sample div.contents .occurs, div.sample div.contents .occurs a {\r
+   color: #999; /* Light gray */\r
+}\r
+   /* Fixed values */\r
+div.sample div.contents .fixed {\r
+   color: #063; /* Green */\r
+   font-weight: bold;\r
+}\r
+   /* Simple type constraints */\r
+div.sample div.contents .constraint, div.sample div.contents .constraint a {\r
+   color: #999; /* Light gray */\r
+}\r
+   /* Elements and attributes inherited from base type */\r
+div.sample div.contents .inherited, div.sample div.contents .inherited a {\r
+   color: #666; /* Dark gray */\r
+}\r
+   /* Elements and attributes added to or changed from base type */\r
+div.sample div.contents .newFields {\r
+   font-weight: bold;\r
+}\r
+   /* Other type of information */\r
+div.sample div.contents .other, div.sample div.contents .other a {\r
+   color: #369; /* Blue */\r
+   font-style: italic;\r
+}\r
+   /* Link to open up window displaying documentation */\r
+div.sample div.contents a.documentation {\r
+   text-decoration: none;\r
+   padding-left: 3px;\r
+   padding-right: 3px;\r
+   padding-top: 0px;\r
+   padding-bottom: 0px;\r
+   font-weight: bold;\r
+   font-size: 11pt;\r
+   background-color: #FFD;\r
+   color: #069;\r
+}\r
+   /* Invert colors when hovering over link to open up window \r
+      displaying documentation */\r
+div.sample div.contents a.documentation:hover {\r
+   color: #FFD;\r
+   background-color: #069;\r
+}\r
+\r
+/* Schema Component Representation table */\r
+div.schemaComponent {\r
+   width: 90%;\r
+}\r
+div.schemaComponent div.contents {\r
+   font-family: Courier New, sans-serif;\r
+   font-size: 10pt;\r
+   padding: 5px;\r
+}\r
+   /* Syntax characters */\r
+div.schemaComponent div.contents {\r
+   color: #00f; /* blue */\r
+}\r
+   /* Element and attribute tags */\r
+div.schemaComponent div.contents .scTag {\r
+   color: #933; /* maroon */\r
+}\r
+   /* Element and attribute content */\r
+div.schemaComponent div.contents .scContent, div.schemaComponent div.contents .scContent a {\r
+   color: black;\r
+   font-weight: bold;\r
+}\r
+   /* Comments */\r
+div.schemaComponent div.contents .comment {\r
+   color: #999; /* Light gray */\r
+}\r
+\r
+/******** Legend Section ********/\r
+\r
+div#legend table, div#legend div {\r
+   margin-bottom: 3px;\r
+}\r
+div#legend div.hint {\r
+   color: #999; /* Light gray */\r
+   width: 90%;\r
+   margin-left: 1em;\r
+   margin-bottom: 2em;\r
+}\r
+\r
+\r
+/******** Glossary Section ********/\r
+\r
+/* Glossary Terms */\r
+.glossaryTerm {\r
+   font-weight: bold;\r
+}\r
+\r
+\r
+/******** Footer ********/\r
+\r
+.footer {\r
+   font-size: 8pt;\r
+}\r
+</xsl:text>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Print outs a legend describing the meaning of colors, bold items,\r
+     etc. in the top-level sections.\r
+     -->\r
+   <xsl:template name="Legend">\r
+      <!-- Header -->\r
+      <div style="float: left; width: 15em;">\r
+         <h3 style="margin-bottom: 0px;">Complex Type:</h3>\r
+         <div class="hint" style="margin-left: 0em;">Schema Component Type</div>\r
+      </div>\r
+      <div style="float: left; width: 15em;">\r
+         <h3 style="margin-bottom: 0px;"><span class="name">AusAddress</span></h3>\r
+         <div class="hint" style="margin-left: 0em;">Schema Component Name</div>\r
+      </div>\r
+\r
+      <!-- Hierarchy Table -->\r
+      <table class="hierarchy" style="clear : both">\r
+         <tr>\r
+            <xsl:choose>\r
+               <xsl:when test="normalize-space(translate($printAllSuperTypes, 'TRUE', 'true'))='true'">\r
+                  <th>Super-types:</th>\r
+                  <td>\r
+                     <span class="type" style="color: #0000FF; text-decoration:underline;">Address</span>\r
+                     <xsl:text> &lt; </xsl:text>\r
+                     <span class="current">AusAddress</span>\r
+                     <xsl:text> (by extension)</xsl:text>\r
+                  </td>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                  <th>Parent type:</th>\r
+                  <td>\r
+                     <span class="type" style="color: #0000FF; text-decoration:underline;">Address</span>\r
+                     <xsl:text> (derivation method: extension)</xsl:text>\r
+                  </td>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+         </tr>\r
+         <tr>\r
+            <xsl:choose>\r
+               <xsl:when test="normalize-space(translate($printAllSubTypes, 'TRUE', 'true'))='true'">\r
+                  <th>Sub-types:</th>\r
+                  <td>\r
+                     <ul>\r
+                        <li>\r
+                           <span class="type" style="color: #0000FF; text-decoration:underline;">QLDAddress</span>\r
+                           <xsl:text> (by restriction)</xsl:text>\r
+                        </li>\r
+                     </ul>\r
+                  </td>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                  <th>Direct sub-types:</th>\r
+                  <td>\r
+                     <ul>\r
+                        <li>\r
+                           <span class="type" style="color: #0000FF; text-decoration:underline;">QLDAddress</span>\r
+                           <xsl:text> (by restriction)</xsl:text>\r
+                        </li>\r
+                     </ul>\r
+                  </td>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+         </tr>\r
+      </table>\r
+      <div class="hint">If this schema component is a type definition, its type hierarchy is shown in a gray-bordered box.</div>\r
+\r
+      <!-- Properties Table -->\r
+      <table class="properties">\r
+         <tr>\r
+            <th>Name</th>\r
+            <td>AusAddress</td>\r
+         </tr>\r
+         <tr>\r
+            <th>\r
+               <a title="Look up 'Abstract' in glossary" href="#term_Abstract">Abstract</a>\r
+            </th>\r
+            <td>no</td>\r
+         </tr>\r
+      </table>\r
+      <div class="hint">The table above displays the properties of this schema component.</div>\r
+\r
+      <!-- XML Instance Representation Table -->\r
+      <div class="sample box">\r
+         <div>\r
+            <span class="caption">XML Instance Representation</span>\r
+         </div>\r
+         <div class="contents">\r
+            <span style="margin-left: 0em">&lt;...</span>\r
+            <span class="newFields">\r
+               <span> country="<span class="fixed">Australia</span>"</span>\r
+            </span>\r
+            <xsl:text>&gt; </xsl:text><br/>\r
+            <span style="margin-left: 1.5em" class="inherited">&lt;unitNo&gt; <span class="type">string</span> &lt;/unitNo&gt; <span class="occurs">[0..1]</span></span><br/>\r
+            <span style="margin-left: 1.5em" class="inherited">&lt;houseNo&gt; <span class="type">string</span> &lt;/houseNo&gt; <span class="occurs">[1]</span></span><br/>\r
+            <span style="margin-left: 1.5em" class="inherited">&lt;street&gt; <span class="type">string</span> &lt;/street&gt; <span class="occurs">[1]</span></span><br/>\r
+            <span class="group" style="margin-left: 1.5em">Start <a title="Look up 'Choice' in glossary" href="#term_Choice">Choice</a> <span class="occurs">[1]</span></span><br/>\r
+            <span style="margin-left: 3em" class="inherited">&lt;city&gt; <span class="type">string</span> &lt;/city&gt; <span class="occurs">[1]</span></span><br/>\r
+            <span style="margin-left: 3em" class="inherited">&lt;town&gt; <span class="type">string</span> &lt;/town&gt; <span class="occurs">[1]</span></span><br/>\r
+            <span class="group" style="margin-left: 1.5em">End Choice</span><br/>\r
+            <span class="newFields">\r
+            <span style="margin-left: 1.5em">&lt;state&gt; <span class="type" style="text-decoration:underline;">AusStates</span> &lt;/state&gt; <span class="occurs">[1]</span></span><br/>\r
+            <span style="margin-left: 1.5em">&lt;postcode&gt; <span class="constraint">string &lt;&lt;<em>pattern</em> = [1-9][0-9]{3}>></span> &lt;/postcode&gt; <span class="occurs">[1]</span>\r
+               <xsl:if test="normalize-space(translate($useJavaScript,'TRUE','true'))='true'">\r
+                  <a href="javascript:void(0)" title="View Documentation" class="documentation" onclick="docArray = new Array('Post code must be a four-digit number.'); viewDocumentation('Element', 'postcode', docArray);">?</a>\r
+               </xsl:if>\r
+               </span><br/>\r
+            </span>\r
+            <span style="margin-left: 0em">&lt;/...&gt;</span><br/>\r
+         </div>\r
+      </div>\r
+      <div class="hint">\r
+         <p>The XML Instance Representation table above shows the schema component's content as an XML instance.</p>\r
+         <ul>\r
+            <li>The minimum and maximum occurrence of elements and attributes are provided in square brackets, e.g. [0..1].</li>\r
+            <li>Model group information are shown in gray, e.g. Start Choice ... End Choice.</li>\r
+            <li>For type derivations, the elements and attributes that have been added to or changed from the base type's content are shown in <span style="font-weight: bold">bold</span>.</li>\r
+            <li>If an element/attribute has a fixed value, the fixed value is shown in green, e.g. country="Australia".</li>\r
+            <li>Otherwise, the type of the element/attribute is displayed.\r
+               <ul>\r
+                  <li>If the element/attribute's type is in the schema, a link is provided to it.</li>\r
+                  <!--<li>An <em>E</em> symbol is shown if the element/attribute's type is located in an external schema.</li>-->\r
+                  <li>For local simple type definitions, the constraints are displayed in angle brackets, e.g. &lt;&lt;<em>pattern</em> = [1-9][0-9]{3}>>.</li>\r
+               </ul>\r
+            </li>\r
+            <xsl:if test="normalize-space(translate($useJavaScript,'TRUE','true'))='true'">\r
+               <li>If a local element/attribute has documentation, it will be displayed in a window that pops up when the question mark inside the attribute or next to the element is clicked, e.g. &lt;postcode>.</li>\r
+            </xsl:if>\r
+         </ul>\r
+      </div>\r
+\r
+      <!-- Schema Component Representation Table -->\r
+      <div class="schemaComponent box">\r
+         <div>\r
+            <span class="caption">Schema Component Representation</span>\r
+         </div>\r
+         <div class="contents">\r
+            <span style="margin-left: 0em">&lt;<span class="scTag">complexType</span> <span class="scTag">name</span>="<span class="scContent">AusAddress</span>"&gt;</span><br/>\r
+            <span style="margin-left: 1.5em">&lt;<span class="scTag">complexContent</span>&gt;</span><br/>\r
+            <span style="margin-left: 3em">&lt;<span class="scTag">extension</span> <span class="scTag">base</span>="<span class="scContent"><span class="type" style="text-decoration:underline;">Address</span></span>"&gt;</span><br/>\r
+            <span style="margin-left: 4.5em">&lt;<span class="scTag">sequence</span>&gt;</span><br/>\r
+            <span style="margin-left: 6em">&lt;<span class="scTag">element</span> <span class="scTag">name</span>="<span class="scContent">state</span>" <span class="scTag">type</span>="<span class="scContent"><span class="type" style="text-decoration:underline;">AusStates</span></span>"/&gt;</span><br/>\r
+            <span style="margin-left: 6em">&lt;<span class="scTag">element</span> <span class="scTag">name</span>="<span class="scContent">postcode</span>"&gt;</span><br/>\r
+            <span style="margin-left: 7.5em">&lt;<span class="scTag">simpleType</span>&gt;</span><br/>\r
+            <span style="margin-left: 9em">&lt;<span class="scTag">restriction</span> <span class="scTag">base</span>="<span class="scContent"><span class="type">string</span></span>"&gt;</span><br/>\r
+            <span style="margin-left: 10.5em">&lt;<span class="scTag">pattern</span> <span class="scTag">value</span>="<span class="scContent">[1-9][0-9]{3}</span>"/&gt;</span><br/>\r
+            <span style="margin-left: 9em">&lt;/<span class="scTag">restriction</span>&gt;</span><br/>\r
+            <span style="margin-left: 7.5em">&lt;/<span class="scTag">simpleType</span>&gt;</span><br/>\r
+            <span style="margin-left: 6em">&lt;/<span class="scTag">element</span>&gt;</span><br/>\r
+            <span style="margin-left: 4.5em">&lt;/<span class="scTag">sequence</span>&gt;</span><br/>\r
+            <span style="margin-left: 4.5em">&lt;<span class="scTag">attribute</span> <span class="scTag">name</span>="<span class="scContent">country</span>" <span class="scTag">type</span>="<span class="scContent"><span class="type">string</span></span>" <span class="scTag">fixed</span>="<span class="scContent">Australia</span>"/&gt;</span><br/>\r
+            <span style="margin-left: 3em">&lt;/<span class="scTag">extension</span>&gt;</span><br/>\r
+            <span style="margin-left: 1.5em">&lt;/<span class="scTag">complexContent</span>&gt;</span><br/>\r
+            <span style="margin-left: 0em">&lt;/<span class="scTag">complexType</span>&gt;</span><br/>\r
+         </div>\r
+      </div>\r
+      <div class="hint">The Schema Component Representation table above displays the underlying XML representation of the schema component. (Annotations are not shown.)</div>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Print outs all terms for the glossary section.\r
+     -->\r
+   <xsl:template name="Glossary">\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">Abstract</xsl:with-param>\r
+         <xsl:with-param name="term">Abstract</xsl:with-param>\r
+         <xsl:with-param name="description">\r
+            <xsl:text>(Applies to complex type definitions and element declarations).</xsl:text>\r
+            <xsl:text> An abstract element or complex type cannot used to validate an element instance.</xsl:text>\r
+            <xsl:text> If there is a reference to an abstract element, only element declarations that can substitute the abstract element can be used to validate the instance.</xsl:text>\r
+            <xsl:text> For references to abstract type definitions, only derived types can be used.</xsl:text>\r
+         </xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">All</xsl:with-param>\r
+         <xsl:with-param name="term">All Model Group</xsl:with-param>\r
+         <xsl:with-param name="description">\r
+            <xsl:text>Child elements can be provided </xsl:text>\r
+            <em>\r
+               <xsl:text>in any order</xsl:text>\r
+            </em>\r
+            <xsl:text> in instances.</xsl:text>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="link">http://www.w3.org/TR/xmlschema-1/#element-all</xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">Choice</xsl:with-param>\r
+         <xsl:with-param name="term">Choice Model Group</xsl:with-param>\r
+         <xsl:with-param name="description">\r
+            <em>\r
+               <xsl:text>Only one</xsl:text>\r
+            </em>\r
+            <xsl:text> from the list of child elements and model groups can be provided in instances.</xsl:text>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="link">http://www.w3.org/TR/xmlschema-1/#element-choice</xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">CollapseWS</xsl:with-param>\r
+         <xsl:with-param name="term">Collapse Whitespace Policy</xsl:with-param>\r
+         <xsl:with-param name="description">Replace tab, line feed, and carriage return characters with space character (Unicode character 32). Then, collapse contiguous sequences of space characters into single space character, and remove leading and trailing space characters.</xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">ElemBlock</xsl:with-param>\r
+         <xsl:with-param name="term">Disallowed Substitutions</xsl:with-param>\r
+         <xsl:with-param name="description">\r
+            <xsl:text>(Applies to element declarations).</xsl:text>\r
+            <xsl:text> If </xsl:text>\r
+            <em>substitution</em>\r
+            <xsl:text> is specified, then </xsl:text>\r
+            <xsl:call-template name="PrintGlossaryTermRef">\r
+               <xsl:with-param name="code">SubGroup</xsl:with-param>\r
+               <xsl:with-param name="term">substitution group</xsl:with-param>\r
+            </xsl:call-template>\r
+            <xsl:text> members cannot be used in place of the given element declaration to validate element instances.</xsl:text>\r
+\r
+            <xsl:text> If </xsl:text>\r
+            <em>derivation methods</em>\r
+            <xsl:text>, e.g. extension, restriction, are specified, then the given element declaration will not validate element instances that have types derived from the element declaration's type using the specified derivation methods.</xsl:text>\r
+            <xsl:text> Normally, element instances can override their declaration's type by specifying an </xsl:text>\r
+            <code>xsi:type</code>\r
+            <xsl:text> attribute.</xsl:text>\r
+         </xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">Key</xsl:with-param>\r
+         <xsl:with-param name="term">Key Constraint</xsl:with-param>\r
+         <xsl:with-param name="description">\r
+            <xsl:text>Like </xsl:text>\r
+            <xsl:call-template name="PrintGlossaryTermRef">\r
+               <xsl:with-param name="code">Unique</xsl:with-param>\r
+               <xsl:with-param name="term">Uniqueness Constraint</xsl:with-param>\r
+            </xsl:call-template>\r
+            <xsl:text>, but additionally requires that the specified value(s) must be provided.</xsl:text>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="link">http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions</xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">KeyRef</xsl:with-param>\r
+         <xsl:with-param name="term">Key Reference Constraint</xsl:with-param>\r
+         <xsl:with-param name="description">\r
+            <xsl:text>Ensures that the specified value(s) must match value(s) from a </xsl:text>\r
+            <xsl:call-template name="PrintGlossaryTermRef">\r
+               <xsl:with-param name="code">Key</xsl:with-param>\r
+               <xsl:with-param name="term">Key Constraint</xsl:with-param>\r
+            </xsl:call-template>\r
+            <xsl:text> or </xsl:text>\r
+            <xsl:call-template name="PrintGlossaryTermRef">\r
+               <xsl:with-param name="code">Unique</xsl:with-param>\r
+               <xsl:with-param name="term">Uniqueness Constraint</xsl:with-param>\r
+            </xsl:call-template>\r
+            <xsl:text>.</xsl:text>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="link">http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions</xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">ModelGroup</xsl:with-param>\r
+         <xsl:with-param name="term">Model Group</xsl:with-param>\r
+         <xsl:with-param name="description">\r
+            <xsl:text>Groups together element content, specifying the order in which the element content can occur and the number of times the group of element content may be repeated.</xsl:text>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="link">http://www.w3.org/TR/xmlschema-1/#Model_Groups</xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">Nillable</xsl:with-param>\r
+         <xsl:with-param name="term">Nillable</xsl:with-param>\r
+         <xsl:with-param name="description">\r
+            <xsl:text>(Applies to element declarations). </xsl:text>\r
+            <xsl:text>If an element declaration is nillable, instances can use the </xsl:text>\r
+            <code>xsi:nil</code>\r
+            <xsl:text> attribute.</xsl:text>\r
+            <xsl:text> The </xsl:text>\r
+            <code>xsi:nil</code>\r
+            <xsl:text> attribute is the boolean attribute, </xsl:text>\r
+            <em>nil</em>\r
+            <xsl:text>, from the </xsl:text>\r
+            <em>http://www.w3.org/2001/XMLSchema-instance</em>\r
+            <xsl:text> namespace.</xsl:text>\r
+            <xsl:text> If an element instance has an </xsl:text>\r
+            <code>xsi:nil</code>\r
+            <xsl:text> attribute set to true, it can be left empty, even though its element declaration may have required content.</xsl:text>\r
+         </xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">Notation</xsl:with-param>\r
+         <xsl:with-param name="term">Notation</xsl:with-param>\r
+         <xsl:with-param name="description">A notation is used to identify the format of a piece of data. Values of elements and attributes that are of type, NOTATION, must come from the names of declared notations.</xsl:with-param>\r
+         <xsl:with-param name="link">http://www.w3.org/TR/xmlschema-1/#cNotation_Declarations</xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">PreserveWS</xsl:with-param>\r
+         <xsl:with-param name="term">Preserve Whitespace Policy</xsl:with-param>\r
+         <xsl:with-param name="description">Preserve whitespaces exactly as they appear in instances.</xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">TypeFinal</xsl:with-param>\r
+         <xsl:with-param name="term">Prohibited Derivations</xsl:with-param>\r
+         <xsl:with-param name="description">\r
+            <xsl:text>(Applies to type definitions). </xsl:text>\r
+            <xsl:text>Derivation methods that cannot be used to create sub-types from a given type definition.</xsl:text>\r
+         </xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">TypeBlock</xsl:with-param>\r
+         <xsl:with-param name="term">Prohibited Substitutions</xsl:with-param>\r
+         <xsl:with-param name="description">\r
+            <xsl:text>(Applies to complex type definitions). </xsl:text>\r
+            <xsl:text>Prevents sub-types that have been derived using the specified derivation methods from validating element instances in place of the given type definition.</xsl:text>\r
+         </xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">ReplaceWS</xsl:with-param>\r
+         <xsl:with-param name="term">Replace Whitespace Policy</xsl:with-param>\r
+         <xsl:with-param name="description">Replace tab, line feed, and carriage return characters with space character (Unicode character 32).</xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">Sequence</xsl:with-param>\r
+         <xsl:with-param name="term">Sequence Model Group</xsl:with-param>\r
+         <xsl:with-param name="description">\r
+            <xsl:text>Child elements and model groups must be provided </xsl:text>\r
+            <em>\r
+               <xsl:text>in the specified order</xsl:text>\r
+            </em>\r
+            <xsl:text> in instances.</xsl:text>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="link">http://www.w3.org/TR/xmlschema-1/#element-sequence</xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">SubGroup</xsl:with-param>\r
+         <xsl:with-param name="term">Substitution Group</xsl:with-param>\r
+         <xsl:with-param name="description">\r
+            <xsl:text>Elements that are </xsl:text>\r
+            <em>\r
+               <xsl:text>members</xsl:text>\r
+            </em>\r
+            <xsl:text> of a substitution group can be used wherever the </xsl:text>\r
+            <em>\r
+               <xsl:text>head</xsl:text>\r
+            </em>\r
+            <xsl:text> element of the substitution group is referenced.</xsl:text>\r
+         </xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">ElemFinal</xsl:with-param>\r
+         <xsl:with-param name="term">Substitution Group Exclusions</xsl:with-param>\r
+         <xsl:with-param name="description">\r
+            <xsl:text>(Applies to element declarations). </xsl:text>\r
+            <xsl:text>Prohibits element declarations from nominating themselves as being able to substitute a given element declaration, if they have types that are derived from the original element's type using the specified derivation methods.</xsl:text>\r
+         </xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">TargetNS</xsl:with-param>\r
+         <xsl:with-param name="term">Target Namespace</xsl:with-param>\r
+         <xsl:with-param name="description">The target namespace identifies the namespace that components in this schema belongs to. If no target namespace is provided, then the schema components do not belong to any namespace.</xsl:with-param>\r
+      </xsl:call-template>\r
+\r
+      <xsl:call-template name="PrintGlossaryTerm">\r
+         <xsl:with-param name="code">Unique</xsl:with-param>\r
+         <xsl:with-param name="term">Uniqueness Constraint</xsl:with-param>\r
+         <xsl:with-param name="description">Ensures uniqueness of an element/attribute value, or a combination of values, within a specified scope.</xsl:with-param>\r
+         <xsl:with-param name="link">http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions</xsl:with-param>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a term in the glossary section.\r
+     Param(s):\r
+            code (String) required\r
+              Unique ID of glossary term\r
+            term (String) required\r
+              Glossary term\r
+            description (Result Tree Fragment) required\r
+              Meaning of term; may contain HTML tags and links\r
+            link (String) optional\r
+              URI containing more info about term\r
+     -->\r
+   <xsl:template name="PrintGlossaryTerm">\r
+      <xsl:param name="code"/>\r
+      <xsl:param name="term"/>\r
+      <xsl:param name="description"/>\r
+      <xsl:param name="link"/>\r
+\r
+      <p>\r
+         <span class="glossaryTerm">\r
+            <a name="{concat($TERM_PREFIX, $code)}"><xsl:value-of select="$term"/></a>\r
+            <xsl:text> </xsl:text>\r
+         </span>\r
+         <xsl:copy-of select="$description"/>\r
+         <xsl:if test="$link != ''">\r
+            <xsl:text> See: </xsl:text>\r
+            <xsl:call-template name="PrintURI">\r
+               <xsl:with-param name="uri" select="$link"/>\r
+            </xsl:call-template>\r
+            <xsl:text>.</xsl:text>\r
+         </xsl:if>\r
+      </p>\r
+   </xsl:template>\r
+\r
+\r
+   <!-- ******** Hierarchy table ******** -->\r
+\r
+   <!-- \r
+     Prints out substitution group hierarchy for\r
+     element declarations.\r
+     -->\r
+   <xsl:template match="xsd:element" mode="hierarchy">\r
+      <!--\r
+        Find out members of substitution group that this element \r
+        heads.\r
+        -->\r
+      <xsl:variable name="members">\r
+         <ul>\r
+            <xsl:call-template name="PrintSGroupMembers">\r
+               <xsl:with-param name="element" select="."/>\r
+            </xsl:call-template>\r
+         </ul>\r
+      </xsl:variable>\r
+      <xsl:variable name="hasMembers">\r
+         <xsl:if test="normalize-space($members)!=''">\r
+            <xsl:text>true</xsl:text>\r
+         </xsl:if>\r
+      </xsl:variable>\r
+      <!-- Print hierarchy table -->\r
+      <xsl:if test="@substitutionGroup or normalize-space($hasMembers)='true'">\r
+         <table class="hierarchy">\r
+            <tr>\r
+               <td>\r
+                  <ul>\r
+                     <!-- Print substitution group that this element belongs to -->\r
+                     <xsl:if test="@substitutionGroup">\r
+                        <li>\r
+                           <em>This element can be used wherever the following element is referenced:</em>\r
+                           <ul>\r
+                              <li>\r
+                                 <xsl:call-template name="PrintElementRef">\r
+                                    <xsl:with-param name="ref" select="@substitutionGroup"/>\r
+                                 </xsl:call-template>\r
+                              </li>\r
+                           </ul>\r
+                        </li>\r
+                     </xsl:if>\r
+                     <!-- Print substitution group that this element heads -->\r
+                     <xsl:if test="normalize-space($hasMembers)='true'">\r
+                        <li>\r
+                           <em>The following elements can be used wherever this element is referenced:</em>\r
+                           <xsl:copy-of select="$members"/>\r
+                        </li>\r
+                     </xsl:if>\r
+                  </ul>\r
+               </td>\r
+            </tr>\r
+         </table>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!-- \r
+     Prints out Hierarchy table for complex type definitions.\r
+     -->\r
+   <xsl:template match="xsd:complexType" mode="hierarchy">\r
+      <table class="hierarchy">\r
+         <!-- Print super types -->\r
+         <tr>\r
+            <th>\r
+               <xsl:choose>\r
+                  <xsl:when test="normalize-space(translate($printAllSuperTypes, 'TRUE', 'true'))='true'">\r
+                     <xsl:text>Super-types:</xsl:text>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:text>Parent type:</xsl:text>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </th>\r
+            <td>\r
+               <xsl:choose>\r
+                  <xsl:when test="xsd:simpleContent or xsd:complexContent">\r
+                     <xsl:call-template name="PrintSupertypes">\r
+                        <xsl:with-param name="type" select="."/>\r
+                     </xsl:call-template>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:text>None</xsl:text>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </td>\r
+         </tr>\r
+         <!-- Print sub types -->\r
+         <tr>\r
+            <th>\r
+               <xsl:choose>\r
+                  <xsl:when test="normalize-space(translate($printAllSubTypes, 'TRUE', 'true'))='true'">\r
+                     <xsl:text>Sub-types:</xsl:text>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:text>Direct sub-types:</xsl:text>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </th>\r
+            <td>\r
+               <xsl:call-template name="PrintComplexSubtypes">\r
+                  <xsl:with-param name="type" select="."/>\r
+               </xsl:call-template>\r
+            </td>\r
+         </tr>\r
+      </table>\r
+   </xsl:template>\r
+\r
+   <!-- \r
+     Prints out Hierarchy table for simple type definitions.\r
+     -->\r
+   <xsl:template match="xsd:simpleType" mode="hierarchy">\r
+      <table class="hierarchy">\r
+         <!-- Print super types -->\r
+         <tr>\r
+            <th>\r
+               <xsl:choose>\r
+                  <xsl:when test="normalize-space(translate($printAllSuperTypes, 'TRUE', 'true'))='true'">\r
+                     <xsl:text>Super-types:</xsl:text>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:text>Parent type:</xsl:text>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </th>\r
+            <td>\r
+               <xsl:choose>\r
+                  <xsl:when test="xsd:restriction">\r
+                     <xsl:call-template name="PrintSupertypes">\r
+                        <xsl:with-param name="type" select="."/>\r
+                     </xsl:call-template>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:text>None</xsl:text>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </td>\r
+         </tr>\r
+         <!-- Print sub types -->\r
+         <tr>\r
+            <th>\r
+               <xsl:choose>\r
+                  <xsl:when test="normalize-space(translate($printAllSubTypes, 'TRUE', 'true'))='true'">\r
+                     <xsl:text>Sub-types:</xsl:text>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:text>Direct sub-types:</xsl:text>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </th>\r
+            <td>\r
+               <xsl:call-template name="PrintSimpleSubtypes">\r
+                  <xsl:with-param name="type" select="."/>\r
+               </xsl:call-template>\r
+            </td>\r
+         </tr>\r
+      </table>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Unmatched template for 'hierarchy' mode\r
+     -->\r
+   <xsl:template match="*" mode="hierarchy"/>\r
+\r
+   <!-- \r
+     Prints out members, if any, of the substitution group that a \r
+     given element declaration heads.\r
+     Assumes it will be called within XHTML <ul> tags.\r
+     Param(s):\r
+            element (Node) required\r
+              Top-level element declaration\r
+            elementList (String) optional\r
+                List of elements in this call chain. Name of element starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+     -->\r
+   <xsl:template name="PrintSGroupMembers">\r
+      <xsl:param name="element"/>\r
+      <xsl:param name="elementList"/>\r
+\r
+      <xsl:variable name="elemName" select="normalize-space($element/@name)"/>\r
+      <xsl:choose>\r
+         <xsl:when test="contains($elementList, concat('*', $elemName, '+'))">\r
+            <!-- Circular element substitution group hierarchy -->\r
+            <li>\r
+               <xsl:call-template name="HandleError">\r
+                  <xsl:with-param name="isTerminating">false</xsl:with-param>\r
+                  <xsl:with-param name="errorMsg">\r
+                     <xsl:text>Circular element reference to: </xsl:text>\r
+                     <xsl:value-of select="$elemName"/>\r
+                  </xsl:with-param>\r
+               </xsl:call-template>\r
+            </li>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <!-- Get 'block' attribute. -->\r
+            <xsl:variable name="block">\r
+               <xsl:call-template name="PrintBlockSet">\r
+                  <xsl:with-param name="EBV">\r
+                     <xsl:choose>\r
+                        <xsl:when test="$element/@block">\r
+                           <xsl:value-of select="$element/@block"/>\r
+                        </xsl:when>\r
+                        <xsl:otherwise>\r
+                           <xsl:value-of select="/xsd:schema/@blockDefault"/>\r
+                        </xsl:otherwise>\r
+                     </xsl:choose>\r
+                  </xsl:with-param>\r
+               </xsl:call-template>\r
+            </xsl:variable>\r
+\r
+            <xsl:for-each select="/xsd:schema/xsd:element[normalize-space(@substitutionGroup)=$elemName or normalize-space(substring-after(@substitutionGroup, ':'))=$elemName]">\r
+               <li>\r
+                  <xsl:call-template name="PrintElementRef">\r
+                     <xsl:with-param name="name" select="@name"/>\r
+                  </xsl:call-template>\r
+               </li>\r
+               <!-- Recursively find members of a substitution group that \r
+                    current element in list might head, since substitution \r
+                    groups are transitive (unless 'substitution' is \r
+                    blocked). \r
+                -->\r
+               <xsl:if test="not(contains($block, 'substitution'))">\r
+                  <xsl:call-template name="PrintSGroupMembers">\r
+                     <xsl:with-param name="element" select="."/>\r
+                     <xsl:with-param name="elementList" select="concat($elementList, '*', $elemName, '+')"/>\r
+                  </xsl:call-template>\r
+               </xsl:if>\r
+            </xsl:for-each>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the super types of a given type definition.\r
+     Param(s):\r
+            type (Node) required\r
+                Type definition\r
+            isCallingType (boolean) optional\r
+                If true, 'type' is the type definition that starts \r
+                this call. Otherwise, this is a recursive call from \r
+                'PrintSupertypes' itself.\r
+            typeList (String) optional\r
+                List of types in this call chain. Name of type starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+     -->\r
+   <xsl:template name="PrintSupertypes">\r
+      <xsl:param name="type"/>\r
+      <xsl:param name="isCallingType">true</xsl:param>\r
+      <xsl:param name="typeList"/>\r
+\r
+      <xsl:variable name="typeName" select="$type/@name"/>\r
+      <xsl:choose>\r
+         <!-- Circular type hierarchy -->\r
+         <xsl:when test="contains($typeList, concat('*', $typeName, '+'))">\r
+            <!-- Note: Error message will be written out in the Sample Instance table. -->\r
+            <xsl:value-of select="$typeName"/>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <!-- Get base type reference -->\r
+            <xsl:variable name="baseTypeRef">\r
+               <xsl:choose>\r
+                  <!-- Complex type definition -->\r
+                  <xsl:when test="local-name($type)='complexType'">\r
+                     <xsl:choose>\r
+                        <xsl:when test="$type/xsd:simpleContent/xsd:extension">\r
+                           <xsl:value-of select="$type/xsd:simpleContent/xsd:extension/@base"/>\r
+                        </xsl:when>\r
+                        <xsl:when test="$type/xsd:simpleContent/xsd:restriction">\r
+                           <xsl:value-of select="$type/xsd:simpleContent/xsd:restriction/@base"/>\r
+                        </xsl:when>\r
+                        <xsl:when test="$type/xsd:complexContent/xsd:extension">\r
+                           <xsl:value-of select="$type/xsd:complexContent/xsd:extension/@base"/>\r
+                        </xsl:when>\r
+                        <xsl:when test="$type/xsd:complexContent/xsd:restriction">\r
+                           <xsl:value-of select="$type/xsd:complexContent/xsd:restriction/@base"/>\r
+                        </xsl:when>\r
+                     </xsl:choose>\r
+                  </xsl:when>\r
+                  <!-- Simple type definition -->\r
+                  <xsl:when test="local-name($type)='simpleType'">\r
+                     <xsl:choose>\r
+                        <xsl:when test="$type/xsd:restriction/@base">\r
+                           <xsl:value-of select="$type/xsd:restriction/@base"/>\r
+                        </xsl:when>\r
+                        <xsl:when test="$type/xsd:restriction/xsd:simpleType">\r
+                           <xsl:text>Local type definition</xsl:text>\r
+                        </xsl:when>\r
+                     </xsl:choose>\r
+                  </xsl:when>\r
+               </xsl:choose>\r
+            </xsl:variable>\r
+\r
+            <!-- Get derivation method -->\r
+            <xsl:variable name="derive">\r
+               <!-- Complex type definition -->\r
+               <xsl:choose>\r
+                  <xsl:when test="local-name($type)='complexType'">\r
+                     <xsl:choose>\r
+                        <xsl:when test="$type/xsd:simpleContent/xsd:extension or $type/xsd:complexContent/xsd:extension">\r
+                           <xsl:text>extension</xsl:text>\r
+                        </xsl:when>\r
+                        <xsl:when test="$type/xsd:simpleContent/xsd:restriction or $type/xsd:complexContent/xsd:restriction">\r
+                           <xsl:text>restriction</xsl:text>\r
+                        </xsl:when>\r
+                     </xsl:choose>\r
+                  </xsl:when>\r
+                  <!-- Simple type definition -->\r
+                  <xsl:when test="local-name($type)='simpleType'">\r
+                     <xsl:text>restriction</xsl:text>\r
+                  </xsl:when>\r
+               </xsl:choose>\r
+            </xsl:variable>\r
+\r
+            <xsl:choose>\r
+               <!-- Print out entire hierarchy -->\r
+               <xsl:when test="normalize-space(translate($printAllSuperTypes, 'TRUE', 'true'))='true'">\r
+                  <xsl:choose>\r
+                     <xsl:when test="normalize-space($baseTypeRef)='Local type definition'">\r
+                        <xsl:value-of select="$baseTypeRef"/>\r
+                        <!-- Symbol to indicate type derivation-->\r
+                        <xsl:text> &lt; </xsl:text>\r
+                     </xsl:when>\r
+                     <xsl:when test="normalize-space($baseTypeRef)!=''">\r
+                        <!-- Get base type name from reference -->\r
+                        <xsl:variable name="baseTypeName">\r
+                           <xsl:call-template name="GetRefName">\r
+                              <xsl:with-param name="ref" select="$baseTypeRef"/>\r
+                           </xsl:call-template>\r
+                        </xsl:variable>\r
+                        <!-- Get base type definition from schema -->\r
+                        <xsl:variable name="baseType" select="key('type', $baseTypeName)"/>\r
+                        <xsl:choose>\r
+                           <!-- Base type was found in this schema -->\r
+                           <xsl:when test="$baseType">\r
+                              <!-- Make recursive call to print out base type and itself -->\r
+                              <xsl:call-template name="PrintSupertypes">\r
+                                 <xsl:with-param name="type" select="$baseType"/>\r
+                                 <xsl:with-param name="isCallingType">false</xsl:with-param>\r
+                                 <xsl:with-param name="typeList" select="concat($typeList, '*', $typeName, '+')"/>\r
+                              </xsl:call-template>\r
+                           </xsl:when>\r
+                           <!-- Base type was not found in this schema -->\r
+                           <xsl:otherwise>\r
+                              <xsl:call-template name="PrintTypeRef">\r
+                                 <xsl:with-param name="ref" select="$baseTypeRef"/>\r
+                              </xsl:call-template>\r
+                           </xsl:otherwise>\r
+                        </xsl:choose>\r
+                        <!-- Symbol to indicate type derivation -->\r
+                        <xsl:text> &lt; </xsl:text>\r
+                     </xsl:when>\r
+                     <xsl:otherwise>\r
+                        <!-- IGNORE: Base type may not be exist probably because \r
+                            current type does not be derived from another type.\r
+                        -->\r
+                     </xsl:otherwise>\r
+                  </xsl:choose>\r
+                  <!-- Print out current type's name -->\r
+                  <xsl:choose>\r
+                     <xsl:when test="$isCallingType='true'">\r
+                        <strong><xsl:value-of select="$typeName"/></strong>\r
+                     </xsl:when>\r
+                     <xsl:otherwise>\r
+                        <xsl:call-template name="PrintTypeRef">\r
+                           <xsl:with-param name="name" select="$typeName"/>\r
+                        </xsl:call-template>\r
+                     </xsl:otherwise>\r
+                  </xsl:choose>\r
+                  <!-- Print out derivation method -->\r
+                  <xsl:if test="$derive != ''">\r
+                     <xsl:text> (by </xsl:text>\r
+                     <xsl:value-of select="$derive"/>\r
+                     <xsl:text>)</xsl:text>\r
+                  </xsl:if>\r
+               </xsl:when>\r
+               <!-- Print out parent type only -->\r
+               <xsl:otherwise>\r
+                  <!-- Print out base type reference -->\r
+                  <xsl:choose>\r
+                     <xsl:when test="normalize-space($baseTypeRef)='Local type definition'">\r
+                        <xsl:value-of select="$baseTypeRef"/>\r
+                     </xsl:when>\r
+                     <xsl:when test="$baseTypeRef!=''">\r
+                        <xsl:call-template name="PrintTypeRef">\r
+                           <xsl:with-param name="ref" select="$baseTypeRef"/>\r
+                        </xsl:call-template>\r
+                     </xsl:when>\r
+                     <xsl:otherwise>\r
+                        <!-- IGNORE: Base type may not be exist probably because \r
+                             current type does not be derived from another type.\r
+                        -->\r
+                     </xsl:otherwise>\r
+                  </xsl:choose>\r
+                  <!-- Print out derivation method -->\r
+                  <xsl:if test="$derive != ''">\r
+                     <xsl:text> (derivation method: </xsl:text>\r
+                     <xsl:value-of select="$derive"/>\r
+                     <xsl:text>)</xsl:text>\r
+                  </xsl:if>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the sub types of a given complex type definition.\r
+     Param(s):\r
+            type (Node) required\r
+                Complex type definition\r
+            isCallingType (boolean) optional\r
+                If true, 'type' is the type definition that starts this \r
+                call. Otherwise, this is a recursive call from \r
+                'PrintComplexSubtypes' itself.\r
+            typeList (String) optional\r
+                List of types in this call chain. Name of type starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+     -->\r
+   <xsl:template name="PrintComplexSubtypes">\r
+      <xsl:param name="type"/>\r
+      <xsl:param name="isCallingType">true</xsl:param>\r
+      <xsl:param name="typeList"/>\r
+\r
+      <xsl:variable name="typeName" select="normalize-space($type/@name)"/>\r
+      <xsl:choose>\r
+         <!-- Circular type hierarchy -->\r
+         <xsl:when test="contains($typeList, concat('*', $typeName, '+'))">\r
+            <!-- Do nothing. Note: Error message will be written out in the Sample Instance table. -->\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <!-- Find sub types -->\r
+            <xsl:variable name="subTypes">\r
+               <ul>\r
+                  <xsl:for-each select="/xsd:schema/xsd:complexType/xsd:complexContent/xsd:restriction[normalize-space(@base)=$typeName or normalize-space(substring-after(@base, ':'))=$typeName] | /xsd:schema/xsd:complexType/xsd:complexContent/xsd:extension[normalize-space(@base)=$typeName or normalize-space(substring-after(@base, ':'))=$typeName]">\r
+                     <li>\r
+                        <xsl:variable name="subType" select="../.."/>\r
+                        <!-- Write out type name -->\r
+                        <xsl:call-template name="PrintTypeRef">\r
+                           <xsl:with-param name="name" select="$subType/@name"/>\r
+                        </xsl:call-template>\r
+                        <!-- Write derivation method -->\r
+                        <xsl:text> (by </xsl:text>\r
+                        <xsl:value-of select="local-name(.)"/>\r
+                        <xsl:text>)</xsl:text>\r
+                        <!-- Make recursive call to write sub-types of this sub-type -->\r
+                        <xsl:if test="normalize-space(translate($printAllSubTypes, 'TRUE', 'true'))='true'">\r
+                           <xsl:call-template name="PrintComplexSubtypes">\r
+                              <xsl:with-param name="type" select="$subType"/>\r
+                              <xsl:with-param name="isCallingType">false</xsl:with-param>\r
+                              <xsl:with-param name="typeList" select="concat($typeList, '*', $typeName, '+')"/>\r
+                           </xsl:call-template>\r
+                        </xsl:if>\r
+                     </li>\r
+                  </xsl:for-each>\r
+               </ul>\r
+            </xsl:variable>\r
+            <!-- Print out sub types -->\r
+            <xsl:choose>\r
+               <xsl:when test="normalize-space($subTypes)!=''">\r
+                  <xsl:copy-of select="$subTypes"/>\r
+               </xsl:when>\r
+               <xsl:when test="$isCallingType='true'">\r
+                  <xsl:text>None</xsl:text>\r
+               </xsl:when>\r
+            </xsl:choose>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+        Prints out the sub types of a given simple type definition.\r
+        Param(s):\r
+            type (Node) required\r
+                Simple type definition\r
+            isCallingType (boolean) optional\r
+                If true, 'type' is the type definition that starts this \r
+                call. Otherwise, this is a recursive call from \r
+                'PrintSimpleSubtypes'\r
+            typeList (String) optional\r
+                List of types in this call chain. Name of type starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+     -->\r
+   <xsl:template name="PrintSimpleSubtypes">\r
+      <xsl:param name="type"/>\r
+      <xsl:param name="isCallingType">true</xsl:param>\r
+      <xsl:param name="typeList"/>\r
+\r
+      <xsl:variable name="typeName" select="normalize-space($type/@name)"/>\r
+      <xsl:choose>\r
+         <!-- Circular type hierarchy -->\r
+         <xsl:when test="contains($typeList, concat('*', $typeName, '+'))">\r
+            <!-- Do nothing. Note: Error message will be written out in the Sample Instance table. -->\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <!-- Find sub-types that are simple type definitions -->\r
+            <xsl:variable name="simpleSubTypes">\r
+               <ul>\r
+                  <xsl:for-each select="/xsd:schema/xsd:simpleType/xsd:restriction[normalize-space(@base)=$typeName or normalize-space(substring-after(@base, ':'))=$typeName]">\r
+                     <li>\r
+                        <xsl:variable name="subType" select=".."/>\r
+                        <!-- Write out type name -->\r
+                        <xsl:call-template name="PrintTypeRef">\r
+                           <xsl:with-param name="name" select="$subType/@name"/>\r
+                        </xsl:call-template>\r
+                        <!-- Write derivation method -->\r
+                        <xsl:text> (by restriction)</xsl:text>\r
+                        <!-- Make recursive call to write sub-types of this sub-type -->\r
+                        <xsl:if test="normalize-space(translate($printAllSubTypes, 'TRUE', 'true'))='true'">\r
+                           <xsl:call-template name="PrintSimpleSubtypes">\r
+                              <xsl:with-param name="type" select="$subType"/>\r
+                              <xsl:with-param name="isCallingType">false</xsl:with-param>\r
+                              <xsl:with-param name="typeList" select="concat($typeList, '*', $typeName, '+')"/>\r
+                           </xsl:call-template>\r
+                        </xsl:if>\r
+                     </li>\r
+                  </xsl:for-each>\r
+               </ul>\r
+            </xsl:variable>\r
+            <!-- Find sub-types that are complex type definitions -->\r
+            <xsl:variable name="complexSubTypes">\r
+               <ul>\r
+                  <xsl:for-each select="/xsd:schema/xsd:complexType/xsd:simpleContent/xsd:restriction[normalize-space(@base)=$typeName or normalize-space(substring-after(@base, ':'))=$typeName] | /xsd:schema/xsd:complexType/xsd:simpleContent/xsd:extension[normalize-space(@base)=$typeName or normalize-space(substring-after(@base, ':'))=$typeName]">\r
+                     <li>\r
+                        <xsl:variable name="subType" select="../.."/>\r
+                        <!-- Write out type name -->\r
+                        <xsl:call-template name="PrintTypeRef">\r
+                           <xsl:with-param name="name" select="$subType/@name"/>\r
+                        </xsl:call-template>\r
+                        <!-- Write derivation method -->\r
+                        <xsl:text> (by </xsl:text>\r
+                        <xsl:value-of select="local-name(.)"/>\r
+                        <xsl:text>)</xsl:text>\r
+                        <!-- Make recursive call to write sub-types of this sub-type -->\r
+                        <xsl:if test="normalize-space(translate($printAllSubTypes, 'TRUE', 'true'))='true'">\r
+                           <xsl:call-template name="PrintComplexSubtypes">\r
+                              <xsl:with-param name="type" select="$subType"/>\r
+                              <xsl:with-param name="isCallingType">false</xsl:with-param>\r
+                              <xsl:with-param name="typeList" select="concat($typeList, '*', $typeName, '+')"/>\r
+                           </xsl:call-template>\r
+                        </xsl:if>\r
+                     </li>\r
+                  </xsl:for-each>\r
+               </ul>\r
+            </xsl:variable>\r
+\r
+            <xsl:variable name="hasSimpleSubTypes">\r
+               <xsl:if test="normalize-space($simpleSubTypes)!=''">\r
+                  <xsl:text>true</xsl:text>\r
+               </xsl:if>\r
+            </xsl:variable>\r
+            <xsl:variable name="hasComplexSubTypes">\r
+               <xsl:if test="normalize-space($complexSubTypes)!=''">\r
+                  <xsl:text>true</xsl:text>\r
+               </xsl:if>\r
+            </xsl:variable>\r
+            <!-- Print out sub types -->\r
+            <xsl:choose>\r
+               <xsl:when test="$hasSimpleSubTypes='true' or $hasComplexSubTypes='true'">\r
+                  <xsl:if test="$hasSimpleSubTypes='true'">\r
+                     <xsl:copy-of select="$simpleSubTypes"/>\r
+                  </xsl:if>\r
+                  <xsl:if test="$hasComplexSubTypes='true'">\r
+                     <xsl:copy-of select="$complexSubTypes"/>\r
+                  </xsl:if>\r
+               </xsl:when>\r
+               <xsl:when test="$isCallingType='true'">\r
+                  <xsl:text>None</xsl:text>\r
+               </xsl:when>\r
+            </xsl:choose>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+\r
+   <!-- ******** Properties table ******** -->\r
+\r
+   <!--\r
+     Prints out the contents of an 'appinfo' or a 'documentation'\r
+     element in the Properties table.\r
+     -->\r
+   <xsl:template match="xsd:appinfo | xsd:documentation" mode="properties">\r
+      <!-- Print out children using XML pretty printer templates -->\r
+      <xsl:choose>\r
+         <xsl:when test="local-name(.)='appinfo'">\r
+            <xsl:apply-templates select="* | text()" mode="xpp"/>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <xsl:apply-templates select="* | text()" mode="html"/>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+\r
+      <!-- Print out URL in the source attribute. -->\r
+      <xsl:if test="@source">\r
+         <xsl:if test="* | text()"><br/></xsl:if>\r
+         <xsl:text> More information at: </xsl:text>\r
+         <xsl:call-template name="PrintURI">\r
+            <xsl:with-param name="uri" select="@source"/>\r
+         </xsl:call-template>\r
+         <xsl:text>.</xsl:text>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the Properties table for a top-level\r
+     attribute declaration.\r
+     -->\r
+   <xsl:template match="xsd:attribute" mode="properties">\r
+      <table class="properties">\r
+         <!-- Name -->\r
+         <tr>\r
+            <th>Name</th>\r
+            <td><xsl:value-of select="@name"/></td>\r
+         </tr>\r
+         <!-- Type -->\r
+         <tr>\r
+            <th>Type</th>\r
+            <td>\r
+               <xsl:choose>\r
+                  <xsl:when test="xsd:simpleType">\r
+                     <xsl:text>Locally-defined simple type</xsl:text>\r
+                  </xsl:when>\r
+                  <xsl:when test="@type">\r
+                     <xsl:call-template name="PrintTypeRef">\r
+                        <xsl:with-param name="ref" select="@type"/>\r
+                     </xsl:call-template>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:text>anySimpleType</xsl:text>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </td>\r
+         </tr>\r
+         <!-- Default Value -->\r
+         <xsl:if test="@default">\r
+            <tr>\r
+               <th>Default Value</th>\r
+               <td><xsl:value-of select="@default"/></td>\r
+            </tr>\r
+         </xsl:if>\r
+         <!-- Fixed Value -->\r
+         <xsl:if test="@fixed">\r
+            <tr>\r
+               <th>Fixed Value</th>\r
+               <td><xsl:value-of select="@fixed"/></td>\r
+            </tr>\r
+         </xsl:if>\r
+         <!-- Annotation -->\r
+         <xsl:call-template name="PrintAnnotation">\r
+            <xsl:with-param name="component" select="."/>\r
+         </xsl:call-template>\r
+      </table>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out Properties table for a top-level\r
+     attribute group or model group definition.\r
+     -->\r
+   <xsl:template match="xsd:attributeGroup | xsd:group" mode="properties">\r
+      <table class="properties">\r
+         <!-- Name -->\r
+         <tr>\r
+            <th>Name</th>\r
+            <td><xsl:value-of select="@name"/></td>\r
+         </tr>\r
+         <!-- Annotation -->\r
+         <xsl:call-template name="PrintAnnotation">\r
+            <xsl:with-param name="component" select="."/>\r
+         </xsl:call-template>\r
+      </table>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the Properties table for a top-level\r
+     complex type definition.\r
+     -->\r
+   <xsl:template match="xsd:complexType" mode="properties">\r
+      <table class="properties">\r
+         <!-- Name -->\r
+         <tr>\r
+            <th>Name</th>\r
+            <td><xsl:value-of select="@name"/></td>\r
+         </tr>\r
+         <!-- Abstract -->\r
+         <tr>\r
+            <th>\r
+               <xsl:call-template name="PrintGlossaryTermRef">\r
+                  <xsl:with-param name="code">Abstract</xsl:with-param>\r
+                  <xsl:with-param name="term">Abstract</xsl:with-param>\r
+               </xsl:call-template>\r
+            </th>\r
+            <td>\r
+               <xsl:call-template name="PrintBoolean">\r
+                  <xsl:with-param name="boolean" select="@abstract"/>\r
+               </xsl:call-template>\r
+            </td>\r
+         </tr>\r
+         <!-- Final -->\r
+         <xsl:variable name="final">\r
+            <xsl:call-template name="PrintDerivationSet">\r
+               <xsl:with-param name="EBV">\r
+                  <xsl:choose>\r
+                     <xsl:when test="@final">\r
+                        <xsl:value-of select="@final"/>\r
+                     </xsl:when>\r
+                     <xsl:otherwise>\r
+                        <xsl:value-of select="/xsd:schema/@finalDefault"/>\r
+                     </xsl:otherwise>\r
+                  </xsl:choose>\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:variable>\r
+         <xsl:if test="normalize-space($final)!=''">\r
+            <tr>\r
+               <th>\r
+                  <xsl:call-template name="PrintGlossaryTermRef">\r
+                     <xsl:with-param name="code">TypeFinal</xsl:with-param>\r
+                     <xsl:with-param name="term">Prohibited Derivations</xsl:with-param>\r
+                  </xsl:call-template>\r
+               </th>\r
+               <td><xsl:value-of select="$final"/></td>\r
+            </tr>\r
+         </xsl:if>\r
+         <!-- Block -->\r
+         <xsl:variable name="block">\r
+            <xsl:call-template name="PrintDerivationSet">\r
+               <xsl:with-param name="EBV">\r
+                  <xsl:choose>\r
+                     <xsl:when test="@block">\r
+                        <xsl:value-of select="@block"/>\r
+                     </xsl:when>\r
+                     <xsl:otherwise>\r
+                        <xsl:value-of select="/xsd:schema/@blockDefault"/>\r
+                     </xsl:otherwise>\r
+                  </xsl:choose>\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:variable>\r
+         <xsl:if test="normalize-space($block)!=''">\r
+            <tr>\r
+               <th>\r
+                  <xsl:call-template name="PrintGlossaryTermRef">\r
+                     <xsl:with-param name="code">TypeBlock</xsl:with-param>\r
+                     <xsl:with-param name="term">Prohibited Substitutions</xsl:with-param>\r
+                  </xsl:call-template>\r
+               </th>\r
+               <td><xsl:value-of select="$block"/></td>\r
+            </tr>\r
+         </xsl:if>\r
+         <!-- Annotation -->\r
+         <xsl:call-template name="PrintAnnotation">\r
+            <xsl:with-param name="component" select="."/>\r
+         </xsl:call-template>\r
+      </table>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the Properties table for a top-level\r
+     element declaration.\r
+     -->\r
+   <xsl:template match="xsd:element" mode="properties">\r
+      <table class="properties">\r
+         <!-- Name -->\r
+         <tr>\r
+            <th>Name</th>\r
+            <td><xsl:value-of select="@name"/></td>\r
+         </tr>\r
+         <!-- Type -->\r
+         <tr>\r
+            <th>Type</th>\r
+            <td>\r
+               <xsl:choose>\r
+                  <xsl:when test="xsd:simpleType">\r
+                     <xsl:text>Locally-defined simple type</xsl:text>\r
+                  </xsl:when>\r
+                  <xsl:when test="xsd:complexType">\r
+                     <xsl:text>Locally-defined complex type</xsl:text>\r
+                  </xsl:when>\r
+                  <xsl:when test="@type">\r
+                     <xsl:call-template name="PrintTypeRef">\r
+                        <xsl:with-param name="ref" select="@type"/>\r
+                     </xsl:call-template>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:text>anyType</xsl:text>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </td>\r
+         </tr>\r
+         <!-- Nillable -->\r
+         <tr>\r
+            <th>\r
+               <xsl:call-template name="PrintGlossaryTermRef">\r
+                  <xsl:with-param name="code">Nillable</xsl:with-param>\r
+                  <xsl:with-param name="term">Nillable</xsl:with-param>\r
+               </xsl:call-template>\r
+            </th>\r
+            <td>\r
+               <xsl:call-template name="PrintBoolean">\r
+                  <xsl:with-param name="boolean" select="@nillable"/>\r
+               </xsl:call-template>\r
+            </td>\r
+         </tr>\r
+         <!-- Abstract -->\r
+         <tr>\r
+            <th>\r
+               <xsl:call-template name="PrintGlossaryTermRef">\r
+                  <xsl:with-param name="code">Abstract</xsl:with-param>\r
+                  <xsl:with-param name="term">Abstract</xsl:with-param>\r
+               </xsl:call-template>\r
+            </th>\r
+            <td>\r
+               <xsl:call-template name="PrintBoolean">\r
+                  <xsl:with-param name="boolean" select="@abstract"/>\r
+               </xsl:call-template>\r
+            </td>\r
+         </tr>\r
+         <!-- Default Value -->\r
+         <xsl:if test="@default">\r
+            <tr>\r
+               <th>Default Value</th>\r
+               <td><xsl:value-of select="@default"/></td>\r
+            </tr>\r
+         </xsl:if>\r
+         <!-- Fixed Value -->\r
+         <xsl:if test="@fixed">\r
+            <tr>\r
+               <th>Fixed Value</th>\r
+               <td><xsl:value-of select="@fixed"/></td>\r
+            </tr>\r
+         </xsl:if>\r
+         <!-- Final -->\r
+         <xsl:variable name="final">\r
+            <xsl:call-template name="PrintDerivationSet">\r
+               <xsl:with-param name="EBV">\r
+                  <xsl:choose>\r
+                     <xsl:when test="@final">\r
+                        <xsl:value-of select="@final"/>\r
+                     </xsl:when>\r
+                     <xsl:otherwise>\r
+                        <xsl:value-of select="/xsd:schema/@finalDefault"/>\r
+                     </xsl:otherwise>\r
+                  </xsl:choose>\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:variable>\r
+         <xsl:if test="normalize-space($final)!=''">\r
+            <tr>\r
+               <th>\r
+                  <xsl:call-template name="PrintGlossaryTermRef">\r
+                     <xsl:with-param name="code">ElemFinal</xsl:with-param>\r
+                     <xsl:with-param name="term">Substitution Group Exclusions</xsl:with-param>\r
+                  </xsl:call-template>\r
+               </th>\r
+               <td><xsl:value-of select="$final"/></td>\r
+            </tr>\r
+         </xsl:if>\r
+         <!-- Block -->\r
+         <xsl:variable name="block">\r
+            <xsl:call-template name="PrintBlockSet">\r
+               <xsl:with-param name="EBV">\r
+                  <xsl:choose>\r
+                     <xsl:when test="@block">\r
+                        <xsl:value-of select="@block"/>\r
+                     </xsl:when>\r
+                     <xsl:otherwise>\r
+                        <xsl:value-of select="/xsd:schema/@blockDefault"/>\r
+                     </xsl:otherwise>\r
+                  </xsl:choose>\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:variable>\r
+         <xsl:if test="normalize-space($block)!=''">\r
+            <tr>\r
+               <th>\r
+                  <xsl:call-template name="PrintGlossaryTermRef">\r
+                     <xsl:with-param name="code">ElemBlock</xsl:with-param>\r
+                     <xsl:with-param name="term">Disallowed Substitutions</xsl:with-param>\r
+                  </xsl:call-template>\r
+               </th>\r
+               <td><xsl:value-of select="$block"/></td>\r
+            </tr>\r
+         </xsl:if>\r
+         <!-- Annotation -->\r
+         <xsl:call-template name="PrintAnnotation">\r
+            <xsl:with-param name="component" select="."/>\r
+         </xsl:call-template>\r
+      </table>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the Properties table for a top-level\r
+     notation declaration.\r
+     -->\r
+   <xsl:template match="xsd:notation" mode="properties">\r
+      <table class="properties">\r
+         <!-- Name -->\r
+         <tr>\r
+            <th>Name</th>\r
+            <td><xsl:value-of select="@name"/></td>\r
+         </tr>\r
+         <!-- Public Identifier -->\r
+         <tr>\r
+            <th>Public Identifier</th>\r
+            <td><xsl:value-of select="@public"/></td>\r
+         </tr>\r
+         <!-- System Identifier -->\r
+         <xsl:if test="@system">\r
+            <tr>\r
+               <th>System Identifier</th>\r
+               <td><xsl:value-of select="@system"/></td>\r
+            </tr>\r
+         </xsl:if>\r
+         <!-- Annotation -->\r
+         <xsl:call-template name="PrintAnnotation">\r
+            <xsl:with-param name="component" select="."/>\r
+         </xsl:call-template>\r
+      </table>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the Properties table for the root\r
+     schema element.\r
+     -->\r
+   <xsl:template match="xsd:schema" mode="properties">\r
+      <table class="properties">\r
+         <!-- Target Namespace -->\r
+         <tr>\r
+            <th>\r
+               <xsl:call-template name="PrintGlossaryTermRef">\r
+                  <xsl:with-param name="code">TargetNS</xsl:with-param>\r
+                  <xsl:with-param name="term">Target Namespace</xsl:with-param>\r
+               </xsl:call-template>\r
+            </th>\r
+            <td>\r
+               <xsl:choose>\r
+                  <xsl:when test="@targetNamespace">\r
+                     <span class="targetNS">\r
+                        <xsl:value-of select="@targetNamespace"/>\r
+                     </span>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:text>None</xsl:text>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </td>\r
+         </tr>\r
+         <!-- Version -->\r
+         <xsl:if test="@version">\r
+            <tr>\r
+               <th>Version</th>\r
+               <td><xsl:value-of select="@version"/></td>\r
+            </tr>\r
+         </xsl:if>\r
+         <!-- Language -->\r
+         <xsl:if test="@xml:lang">\r
+            <tr>\r
+               <th>Language</th>\r
+               <td><xsl:value-of select="@xml:lang"/></td>\r
+            </tr>\r
+         </xsl:if>\r
+         <!-- Element/Attribute Form Defaults -->\r
+         <tr>\r
+            <th>Element and Attribute Namespaces</th>\r
+            <td>\r
+               <ul>\r
+                  <li>Global element and attribute declarations belong to this schema's target namespace.</li>\r
+                  <li>\r
+                     <xsl:choose>\r
+                        <xsl:when test="normalize-space(@elementFormDefault)='qualified'">\r
+                           <xsl:text>By default, local element declarations belong to this schema's target namespace.</xsl:text>\r
+                        </xsl:when>\r
+                        <xsl:otherwise>\r
+                           <xsl:text>By default, local element declarations have no namespace.</xsl:text>\r
+                        </xsl:otherwise>\r
+                     </xsl:choose>\r
+                  </li>\r
+                  <li>\r
+                     <xsl:choose>\r
+                        <xsl:when test="normalize-space(@attributeFormDefault)='qualified'">\r
+                           <xsl:text>By default, local attribute declarations belong to this schema's target namespace.</xsl:text>\r
+                        </xsl:when>\r
+                        <xsl:otherwise>\r
+                           <xsl:text>By default, local attribute declarations have no namespace.</xsl:text>\r
+                        </xsl:otherwise>\r
+                     </xsl:choose>\r
+                  </li>\r
+               </ul>\r
+            </td>\r
+         </tr>\r
+         <!-- Schema Composition, e.g. include, import, redefine -->\r
+         <xsl:if test="xsd:include or xsd:import or xsd:redefine">\r
+            <tr>\r
+               <th>Schema Composition</th>\r
+               <td>\r
+                  <ul>\r
+                     <!-- Import -->\r
+                     <xsl:if test="xsd:import">\r
+                        <li>\r
+                           <xsl:text>This schema imports schema(s) from the following namespace(s):</xsl:text>\r
+                           <ul>\r
+                           <xsl:for-each select="xsd:import">\r
+                              <li>\r
+                                 <em><xsl:value-of select="@namespace"/></em>\r
+                                 <xsl:if test="@schemaLocation">\r
+                                    <xsl:text> (at </xsl:text>\r
+                                    <xsl:call-template name="PrintSchemaLink">\r
+                                       <xsl:with-param name="uri" select="@schemaLocation"/>\r
+                                    </xsl:call-template>\r
+                                    <xsl:text>)</xsl:text>\r
+                                 </xsl:if>\r
+                              </li>\r
+                           </xsl:for-each>\r
+                           </ul>\r
+                        </li>\r
+                     </xsl:if>\r
+                     <!-- Include -->\r
+                     <xsl:if test="xsd:include">\r
+                        <li>\r
+                           <xsl:text>This schema includes components from the following schema document(s):</xsl:text>\r
+                           <ul>\r
+                           <xsl:for-each select="xsd:include">\r
+                              <li>\r
+                                 <xsl:call-template name="PrintSchemaLink">\r
+                                    <xsl:with-param name="uri" select="@schemaLocation"/>\r
+                                 </xsl:call-template>\r
+                              </li>\r
+                           </xsl:for-each>\r
+                           </ul>\r
+                        </li>\r
+                     </xsl:if>\r
+                     <!-- Redefine -->\r
+                     <xsl:if test="xsd:redefine">\r
+                        <li>\r
+                           <xsl:text>This schema includes components from the following schema document(s), where some of the components have been redefined:</xsl:text>\r
+                           <ul>\r
+                              <xsl:for-each select="xsd:redefine">\r
+                                 <li>\r
+                                 <xsl:call-template name="PrintSchemaLink">\r
+                                    <xsl:with-param name="uri" select="@schemaLocation"/>\r
+                                 </xsl:call-template>\r
+                                 </li>\r
+                              </xsl:for-each>\r
+                           </ul>\r
+                        <xsl:text>See </xsl:text><a href="#Redefinitions">Redefined Schema Components</a><xsl:text> section.</xsl:text>\r
+                        </li>\r
+                     </xsl:if>\r
+                  </ul>\r
+               </td>\r
+            </tr>\r
+         </xsl:if>\r
+         <!-- Annotation -->\r
+         <xsl:call-template name="PrintAnnotation">\r
+            <xsl:with-param name="component" select="."/>\r
+         </xsl:call-template>\r
+      </table>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the Properties table for a top-level\r
+     simple type definition.\r
+     -->\r
+   <xsl:template match="xsd:simpleType" mode="properties">\r
+      <table class="properties">\r
+         <!-- Name -->\r
+         <tr>\r
+            <th>Name</th>\r
+            <td><xsl:value-of select="@name"/></td>\r
+         </tr>\r
+         <!-- Constraints -->\r
+         <tr>\r
+            <th>Content</th>\r
+            <td>\r
+               <xsl:call-template name="PrintSimpleConstraints">\r
+                  <xsl:with-param name="simpleContent" select="."/>\r
+               </xsl:call-template>\r
+            </td>\r
+         </tr>\r
+         <!-- Final -->\r
+         <xsl:variable name="final">\r
+            <xsl:call-template name="PrintSimpleDerivationSet">\r
+               <xsl:with-param name="EBV">\r
+                  <xsl:choose>\r
+                     <xsl:when test="@final">\r
+                        <xsl:value-of select="@final"/>\r
+                     </xsl:when>\r
+                     <xsl:otherwise>\r
+                        <xsl:value-of select="/xsd:schema/@finalDefault"/>\r
+                     </xsl:otherwise>\r
+                  </xsl:choose>\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:variable>\r
+         <xsl:if test="normalize-space($final)!=''">\r
+            <tr>\r
+               <th>\r
+                  <xsl:call-template name="PrintGlossaryTermRef">\r
+                     <xsl:with-param name="code">TypeFinal</xsl:with-param>\r
+                     <xsl:with-param name="term">Prohibited Derivations</xsl:with-param>\r
+                  </xsl:call-template>\r
+               </th>\r
+               <td><xsl:value-of select="$final"/></td>\r
+            </tr>\r
+         </xsl:if>\r
+         <!-- Annotation -->\r
+         <xsl:call-template name="PrintAnnotation">\r
+            <xsl:with-param name="component" select="."/>\r
+         </xsl:call-template>\r
+      </table>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Unmatched template for 'properties' mode\r
+     -->\r
+   <xsl:template match="*" mode="properties"/>\r
+\r
+   <!--\r
+     Prints out the rows to display 'annotation' elements of an \r
+     component in the Properties table. This template assumes it \r
+     will be called within an HTML 'table' element.\r
+        Param(s):\r
+            component (Node) required\r
+                Schema component\r
+     -->\r
+   <xsl:template name="PrintAnnotation">\r
+      <xsl:param name="component"/>\r
+\r
+      <xsl:if test="$component/xsd:annotation/xsd:documentation">\r
+         <tr>\r
+            <th>Documentation</th>\r
+            <td>\r
+               <xsl:for-each select="$component/xsd:annotation/xsd:documentation">\r
+                  <xsl:if test="position()!=1"><br/><br/></xsl:if>\r
+                  <xsl:apply-templates select="." mode="properties"/>\r
+               </xsl:for-each>\r
+            </td>\r
+         </tr>\r
+      </xsl:if>\r
+      <xsl:if test="$component/xsd:annotation/xsd:appinfo">\r
+         <tr>\r
+            <th>Application Data</th>\r
+            <td>\r
+               <xsl:for-each select="$component/xsd:annotation/xsd:appinfo">\r
+                  <xsl:if test="position()!=1"><br/><br/></xsl:if>\r
+                  <xsl:apply-templates select="." mode="properties"/>\r
+               </xsl:for-each>\r
+            </td>\r
+         </tr>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the constraints of simple content\r
+     to be displayed within a Properties table.\r
+     Param(s):\r
+            simpleContent (Node) required\r
+                Node containing the simple content\r
+            typeList (String) optional\r
+                List of types in this call chain. Name of type starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+   -->\r
+   <xsl:template name="PrintSimpleConstraints">\r
+      <xsl:param name="simpleContent"/>\r
+      <xsl:param name="typeList"/>\r
+\r
+      <xsl:choose>\r
+         <!-- Derivation by restriction -->\r
+         <xsl:when test="$simpleContent/xsd:restriction">\r
+            <xsl:call-template name="PrintSimpleRestriction">\r
+               <xsl:with-param name="restriction" select="$simpleContent/xsd:restriction"/>\r
+               <xsl:with-param name="typeList" select="$typeList"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <!-- Derivation by list -->\r
+         <xsl:when test="$simpleContent/xsd:list">\r
+            <ul><li>\r
+               <xsl:text>List of: </xsl:text>\r
+               <xsl:choose>\r
+                  <!-- Globally-defined item type -->\r
+                  <xsl:when test="$simpleContent/xsd:list/@itemType">\r
+                     <xsl:call-template name="PrintTypeRef">\r
+                        <xsl:with-param name="ref" select="$simpleContent/xsd:list/@itemType"/>\r
+                     </xsl:call-template>\r
+                  </xsl:when>\r
+                  <!-- Locally-defined item type -->\r
+                  <xsl:otherwise>\r
+                     <ul>\r
+                        <li>\r
+                           <xsl:text>Locally defined type:</xsl:text>\r
+                           <xsl:call-template name="PrintSimpleConstraints">\r
+                              <xsl:with-param name="simpleContent" select="$simpleContent/xsd:list/xsd:simpleType"/>\r
+                              <xsl:with-param name="typeList" select="$typeList"/>\r
+                           </xsl:call-template>\r
+                        </li>\r
+                     </ul>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </li></ul>\r
+         </xsl:when>\r
+         <!-- Derivation by union -->\r
+         <xsl:when test="$simpleContent/xsd:union">\r
+            <ul><li>\r
+               <xsl:text>Union of following types: </xsl:text>\r
+               <ul>\r
+                  <!-- Globally-defined member types -->\r
+                  <xsl:if test="$simpleContent/xsd:union/@memberTypes">\r
+                     <xsl:call-template name="PrintWhitespaceList">\r
+                        <xsl:with-param name="value" select="$simpleContent/xsd:union/@memberTypes"/>\r
+                        <xsl:with-param name="compType">type</xsl:with-param>\r
+                        <xsl:with-param name="isInList">true</xsl:with-param>\r
+                     </xsl:call-template>\r
+                  </xsl:if>\r
+                  <!-- Locally-defined member types -->\r
+                  <xsl:for-each select="$simpleContent/xsd:union/xsd:simpleType">\r
+                     <li>\r
+                        <xsl:text>Locally defined type:</xsl:text>\r
+                        <xsl:call-template name="PrintSimpleConstraints">\r
+                           <xsl:with-param name="simpleContent" select="."/>\r
+                           <xsl:with-param name="typeList" select="$typeList"/>\r
+                        </xsl:call-template>\r
+                     </li>\r
+                  </xsl:for-each>\r
+               </ul>\r
+            </li></ul>\r
+         </xsl:when>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the constraints of simple content derived by \r
+     restriction, which is to be displayed in a Properties table.\r
+     Param(s):\r
+            restriction (Node) required\r
+                Node containing the restriction\r
+            typeList (String) optional\r
+                List of types in this call chain. Name of type starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+   -->\r
+   <xsl:template name="PrintSimpleRestriction">\r
+      <xsl:param name="restriction"/>\r
+      <xsl:param name="typeList"/>\r
+\r
+      <xsl:variable name="typeName" select="$restriction/parent::xsd:simpleType/@name"/>\r
+\r
+      <!-- Print out base type info -->\r
+      <xsl:choose>\r
+         <!-- Circular type hierarchy -->\r
+         <xsl:when test="$typeName != '' and contains($typeList, concat('*', $typeName, '+'))">\r
+            <li>\r
+               <xsl:call-template name="HandleError">\r
+                  <xsl:with-param name="isTerminating">false</xsl:with-param>\r
+                  <xsl:with-param name="errorMsg">\r
+                     <xsl:text>Circular type reference to '</xsl:text>\r
+                     <xsl:value-of select="$typeName"/>\r
+                     <xsl:text>' in type hierarchy.</xsl:text>\r
+                  </xsl:with-param>\r
+               </xsl:call-template>\r
+            </li>\r
+         </xsl:when>\r
+         <!-- Locally-defined base type -->\r
+         <xsl:when test="$restriction/xsd:simpleType">\r
+            <xsl:call-template name="PrintSimpleConstraints">\r
+               <xsl:with-param name="simpleContent" select="$restriction/xsd:simpleType"/>\r
+               <xsl:with-param name="typeList" select="$typeList"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <!-- Base type reference -->\r
+         <xsl:when test="$restriction">\r
+            <xsl:variable name="baseTypeRef" select="$restriction/@base"/>\r
+            <xsl:variable name="baseTypeName">\r
+               <xsl:call-template name="GetRefName">\r
+                  <xsl:with-param name="ref" select="$baseTypeRef"/>\r
+               </xsl:call-template>\r
+            </xsl:variable>\r
+            <xsl:variable name="baseTypeNS">\r
+               <xsl:call-template name="GetRefNS">\r
+                  <xsl:with-param name="ref" select="$baseTypeRef"/>\r
+               </xsl:call-template>\r
+            </xsl:variable>\r
+\r
+            <xsl:choose>\r
+               <!-- Base type is built-in XSD type -->\r
+               <xsl:when test="$baseTypeNS=$XSD_NS">\r
+                  <ul><li>\r
+                     <xsl:text>Base XSD Type: </xsl:text>\r
+                     <xsl:choose>\r
+                        <!-- Current schema is the schema for XSDL -->\r
+                        <xsl:when test="normalize-space(/xsd:schema/@targetNamespace)=$XSD_NS">\r
+                           <xsl:call-template name="PrintTypeRef">\r
+                              <xsl:with-param name="ref" select="$baseTypeRef"/>\r
+                           </xsl:call-template>\r
+                        </xsl:when>\r
+                        <!-- Current schema is not XSD namespace -->\r
+                        <xsl:otherwise>\r
+                           <xsl:value-of select="$baseTypeName"/>\r
+                        </xsl:otherwise>\r
+                     </xsl:choose>\r
+                  </li></ul>\r
+               </xsl:when>\r
+               <!-- Other types -->\r
+               <xsl:otherwise>\r
+                  <xsl:variable name="baseType" select="key('simpleType', $baseTypeName)"/>\r
+                  <xsl:choose>\r
+                     <!-- Base type found -->\r
+                     <xsl:when test="$baseType">\r
+                        <xsl:call-template name="PrintSimpleConstraints">\r
+                           <xsl:with-param name="simpleContent" select="$baseType"/>\r
+                           <xsl:with-param name="typeList" select="concat($typeList, '*', $typeName, '+')"/>\r
+                        </xsl:call-template>\r
+                     </xsl:when>\r
+                     <!-- Base type not found -->\r
+                     <xsl:otherwise>\r
+                        <ul><li><strong>\r
+                           <xsl:text>'</xsl:text>\r
+                           <xsl:value-of select="$baseTypeName"/>\r
+                           <xsl:text>' super type was not found in this schema. </xsl:text>\r
+                           <xsl:text>Its facets could not be printed out.</xsl:text>\r
+                        </strong></li></ul>\r
+                     </xsl:otherwise>\r
+                  </xsl:choose>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+         </xsl:when>\r
+      </xsl:choose>\r
+\r
+      <!-- Find constraints in current restriction -->\r
+      <xsl:variable name="enumeration">\r
+         <xsl:call-template name="PrintEnumFacets">\r
+            <xsl:with-param name="simpleRestrict" select="$restriction"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+      <xsl:variable name="pattern">\r
+         <xsl:call-template name="PrintPatternFacet">\r
+            <xsl:with-param name="simpleRestrict" select="$restriction"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+      <xsl:variable name="range">\r
+         <xsl:call-template name="PrintRangeFacets">\r
+            <xsl:with-param name="simpleRestrict" select="$restriction"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+      <xsl:variable name="totalDigits">\r
+         <xsl:call-template name="PrintTotalDigitsFacet">\r
+            <xsl:with-param name="simpleRestrict" select="$restriction"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+      <xsl:variable name="fractionDigits">\r
+         <xsl:call-template name="PrintFractionDigitsFacet">\r
+            <xsl:with-param name="simpleRestrict" select="$restriction"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+      <xsl:variable name="length">\r
+         <xsl:call-template name="PrintLengthFacets">\r
+            <xsl:with-param name="simpleRestrict" select="$restriction"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+      <xsl:variable name="whitespace">\r
+         <xsl:call-template name="PrintWhitespaceFacet">\r
+            <xsl:with-param name="simpleRestrict" select="$restriction"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <!-- Print out facets -->\r
+      <xsl:if test="$enumeration!='' or $pattern!='' or $range!='' or $totalDigits!='' or $fractionDigits!='' or $length!='' or $whitespace!=''">\r
+         <ul>\r
+            <xsl:if test="$enumeration!=''">\r
+               <li>\r
+                  <xsl:copy-of select="$enumeration"/>\r
+               </li>\r
+            </xsl:if>\r
+            <xsl:if test="$pattern!=''">\r
+               <li>\r
+                  <xsl:copy-of select="$pattern"/>\r
+               </li>\r
+            </xsl:if>\r
+            <xsl:if test="$range!=''">\r
+               <li>\r
+                  <xsl:copy-of select="$range"/>\r
+               </li>\r
+            </xsl:if>\r
+            <xsl:if test="$totalDigits!=''">\r
+               <li>\r
+                  <xsl:copy-of select="$totalDigits"/>\r
+               </li>\r
+            </xsl:if>\r
+            <xsl:if test="$fractionDigits!=''">\r
+               <li>\r
+                  <xsl:copy-of select="$fractionDigits"/>\r
+               </li>\r
+            </xsl:if>\r
+            <xsl:if test="$length!=''">\r
+               <li>\r
+                  <xsl:copy-of select="$length"/>\r
+               </li>\r
+            </xsl:if>\r
+            <xsl:if test="$whitespace!=''">\r
+               <li>\r
+                  <xsl:copy-of select="$whitespace"/>\r
+               </li>\r
+            </xsl:if>\r
+         </ul>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+\r
+   <!-- ******** XML Instance Representation table ******** -->\r
+\r
+   <!-- \r
+     Prints out the XML Instance Representation table for a top-level \r
+     schema component. \r
+     Param(s):\r
+            component (Node) required\r
+              Top-level schema component\r
+     -->\r
+   <xsl:template name="SampleInstanceTable">\r
+      <xsl:param name="component"/>\r
+\r
+      <!-- Not applicable for simple type definitions and notation \r
+      declarations -->\r
+      <xsl:if test="local-name($component)!='simpleType' and local-name($component)!='notation'">\r
+         <xsl:variable name="componentID">\r
+            <xsl:call-template name="GetComponentID">\r
+               <xsl:with-param name="component" select="$component"/>\r
+            </xsl:call-template>\r
+         </xsl:variable>\r
+\r
+         <xsl:call-template name="CollapseableBox">\r
+            <xsl:with-param name="id" select="concat($componentID, '_xibox')"/>\r
+            <xsl:with-param name="styleClass">sample</xsl:with-param>\r
+            <xsl:with-param name="caption">XML Instance Representation</xsl:with-param>\r
+            <xsl:with-param name="contents">\r
+               <xsl:apply-templates select="$component" mode="sample"/>\r
+            </xsl:with-param>\r
+            <xsl:with-param name="isOpened">true</xsl:with-param>\r
+         </xsl:call-template>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a sample XML instance representation of an 'all' \r
+     model group.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            isInherited (boolean) optional\r
+                If true, display elements using 'inherited' CSS class.\r
+            isNewField (boolean) optional\r
+                If true, display elements using 'newFields' CSS class.\r
+            schemaLoc (String) optional\r
+                Schema file containing this all model group;\r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+            typeList (String) optional\r
+                List of types in this call chain. Name of type starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+     -->\r
+   <xsl:template match="xsd:all" mode="sample">\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="isInherited">false</xsl:param>\r
+      <xsl:param name="isNewField">false</xsl:param>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+      <xsl:param name="typeList"/>\r
+\r
+      <xsl:if test="normalize-space(@maxOccurs)!='0'">\r
+         <!-- Header -->\r
+         <span class="group" style="margin-left: {$margin}em">\r
+            <xsl:text>Start </xsl:text>\r
+            <xsl:call-template name="PrintGlossaryTermRef">\r
+               <xsl:with-param name="code">All</xsl:with-param>\r
+               <xsl:with-param name="term">All</xsl:with-param>\r
+            </xsl:call-template>\r
+            <!-- Min/max occurs information-->\r
+            <xsl:text> </xsl:text>\r
+            <xsl:call-template name="PrintOccurs">\r
+               <xsl:with-param name="component" select="."/>\r
+            </xsl:call-template>\r
+            <!-- Documentation -->\r
+            <xsl:call-template name="PrintSampleDocumentation">\r
+               <xsl:with-param name="component" select="."/>\r
+            </xsl:call-template>\r
+         </span><br/>\r
+\r
+         <!-- Content -->\r
+         <xsl:apply-templates select="xsd:*" mode="sample">\r
+            <xsl:with-param name="margin" select="number($margin) + number($ELEM_INDENT)"/>\r
+            <xsl:with-param name="isInherited" select="$isInherited"/>\r
+            <xsl:with-param name="isNewField" select="$isNewField"/>\r
+            <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            <xsl:with-param name="typeList" select="$typeList"/>\r
+         </xsl:apply-templates>\r
+\r
+         <!-- Footer -->\r
+         <span class="group" style="margin-left: {$margin}em">\r
+            <xsl:text>End All</xsl:text>\r
+         </span><br/>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a sample XML instance representation of an element \r
+     content wild card.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+     -->\r
+   <xsl:template match="xsd:any | xsd:anyAttribute" mode="sample">\r
+      <xsl:param name="margin">0</xsl:param>\r
+\r
+      <div class="other" style="margin-left: {$margin}em">\r
+         <xsl:call-template name="PrintWildcard">\r
+            <xsl:with-param name="componentType">\r
+               <xsl:choose>\r
+                  <xsl:when test="local-name(.)='anyAttribute'">attribute</xsl:when>\r
+                  <xsl:otherwise>element</xsl:otherwise>\r
+               </xsl:choose>\r
+            </xsl:with-param>\r
+            <xsl:with-param name="namespace" select="@namespace"/>\r
+            <xsl:with-param name="processContents" select="@processContents"/>\r
+            <xsl:with-param name="minOccurs" select="@minOccurs"/>\r
+            <xsl:with-param name="maxOccurs" select="@maxOccurs"/>\r
+         </xsl:call-template>\r
+      </div>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a sample XML instance representation \r
+     of an attribute declaration.\r
+     Param(s):\r
+            subTypeAttrs (String) optional\r
+                List of attributes in sub-types of the type that \r
+                contains this attribute\r
+            isInherited (boolean) optional\r
+                If true, display attribute using 'inherited' CSS \r
+                class.\r
+            isNewField (boolean) optional\r
+                If true, display attribute using 'newFields' CSS \r
+                class.\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            addBR (boolean) optional\r
+                If true, add <br/> before attribute.\r
+            schemaLoc (String) optional\r
+                Schema file containing this attribute declaration;\r
+                if in current schema, 'schemaLoc' is set to 'this'.\r
+     -->\r
+   <xsl:template match="xsd:attribute[@name]" mode="sample">\r
+      <xsl:param name="subTypeAttrs"/>\r
+      <xsl:param name="isInherited">false</xsl:param>\r
+      <xsl:param name="isNewField">false</xsl:param>\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="addBR">false</xsl:param>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <!-- Get attribute namespace -->\r
+      <xsl:variable name="attrNS">\r
+         <xsl:call-template name="GetAttributeNS">\r
+            <xsl:with-param name="attribute" select="."/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="contains($subTypeAttrs, concat('*', normalize-space($attrNS), '+', normalize-space(@name), '+'))">\r
+            <!-- IGNORE: Sub type has attribute with same name; \r
+                 Sub-type's attribute declaration will override this \r
+                 one. -->\r
+         </xsl:when>\r
+         <xsl:when test="@use and normalize-space(@use)='prohibited'">\r
+            <!-- IGNORE: Attribute is prohibited. -->\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <xsl:if test="$addBR!='false'"><br/></xsl:if>\r
+\r
+            <span style="margin-left: {$margin}em">\r
+               <xsl:choose>\r
+                  <xsl:when test="$isNewField!='false'">\r
+                     <xsl:attribute name="class">newFields</xsl:attribute>\r
+                  </xsl:when>\r
+                  <xsl:when test="$isInherited!='false'">\r
+                     <xsl:attribute name="class">inherited</xsl:attribute>\r
+                  </xsl:when>\r
+               </xsl:choose>\r
+\r
+               <xsl:text> </xsl:text>\r
+               <xsl:variable name="prefix">\r
+                  <xsl:call-template name="GetAttributePrefix">\r
+                     <xsl:with-param name="attribute" select="."/>\r
+                  </xsl:call-template>\r
+               </xsl:variable>\r
+               <xsl:call-template name="PrintNSPrefix">\r
+                  <xsl:with-param name="prefix" select="$prefix"/>\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/> \r
+               </xsl:call-template>\r
+               <xsl:value-of select="@name"/>\r
+               <xsl:text>="</xsl:text>\r
+\r
+               <xsl:choose>\r
+                  <!-- Fixed value is provided -->\r
+                  <xsl:when test="@fixed">\r
+                     <span class="fixed">\r
+                        <xsl:value-of select="@fixed"/>\r
+                     </span>\r
+                  </xsl:when>\r
+                  <!-- Type reference is provided -->\r
+                  <xsl:when test="@type">\r
+                     <xsl:call-template name="PrintTypeRef">\r
+                        <xsl:with-param name="ref" select="@type"/>\r
+                        <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                     </xsl:call-template>\r
+                  </xsl:when>\r
+                  <!-- Local type definition is provided -->\r
+                  <xsl:when test="xsd:simpleType">\r
+                     <xsl:apply-templates select="xsd:simpleType" mode="sample">\r
+                        <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                     </xsl:apply-templates>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <span class="type">anySimpleType</span>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+\r
+               <!-- Don't print occurrence info and documentation\r
+                    for global attributes. -->\r
+               <xsl:if test="local-name(..)!='schema'">\r
+                  <!-- Occurrence info-->\r
+                  <xsl:text> </xsl:text>\r
+                  <xsl:call-template name="PrintOccurs">\r
+                     <xsl:with-param name="component" select="."/>\r
+                  </xsl:call-template>\r
+                  <!-- Documentation -->\r
+                  <xsl:call-template name="PrintSampleDocumentation">\r
+                     <xsl:with-param name="component" select="."/>\r
+                  </xsl:call-template>\r
+               </xsl:if>\r
+\r
+               <xsl:text>"</xsl:text>\r
+            </span>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a sample XML instance representation \r
+     of an attribute reference.\r
+     Param(s):\r
+            subTypeAttrs (String) optional\r
+                List of attribute in sub-types of the type that \r
+                contains this attribute\r
+            isInherited (boolean) optional\r
+                If true, display attributes using 'inherited' CSS \r
+                class.\r
+            isNewField (boolean) optional\r
+                If true, display attributes using 'newFields' CSS \r
+                class.\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            addBR (boolean) optional\r
+                If true, add <br/> before attribute.\r
+            schemaLoc (String) optional\r
+                Schema file containing this attribute reference;\r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+     -->\r
+   <xsl:template match="xsd:attribute[@ref]" mode="sample">\r
+      <xsl:param name="subTypeAttrs"/>\r
+      <xsl:param name="isInherited">false</xsl:param>\r
+      <xsl:param name="isNewField">false</xsl:param>\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="addBR">false</xsl:param>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <!-- Get attribute name -->\r
+      <xsl:variable name="attrName">\r
+         <xsl:call-template name="GetRefName">\r
+            <xsl:with-param name="ref" select="@ref"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <!-- Get attribute namespace -->\r
+      <xsl:variable name="attrNS">\r
+         <xsl:call-template name="GetAttributeNS">\r
+            <xsl:with-param name="attribute" select="."/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="contains($subTypeAttrs, concat('*', normalize-space($attrNS), '+', normalize-space($attrName), '+'))">\r
+            <!-- IGNORE: Sub type has attribute with same name; \r
+                 Sub-type's attribute declaration will override this \r
+                 one. -->\r
+         </xsl:when>\r
+         <xsl:when test="@use and normalize-space(@use)='prohibited'">\r
+            <!-- IGNORE: Attribute is prohibited. -->\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <xsl:if test="$addBR!='false'"><br/></xsl:if>\r
+\r
+            <span style="margin-left: {$margin}em">\r
+               <xsl:choose>\r
+                  <xsl:when test="$isNewField!='false'">\r
+                     <xsl:attribute name="class">newFields</xsl:attribute>\r
+                  </xsl:when>\r
+                  <xsl:when test="$isInherited!='false'">\r
+                     <xsl:attribute name="class">inherited</xsl:attribute>\r
+                  </xsl:when>\r
+               </xsl:choose>\r
+\r
+               <xsl:text> </xsl:text>\r
+               <xsl:call-template name="PrintAttributeRef">\r
+                  <xsl:with-param name="ref" select="@ref"/>\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               </xsl:call-template>\r
+               <xsl:text>="</xsl:text>\r
+               <!-- Fixed value is provided -->\r
+               <xsl:if test="@fixed">\r
+                  <span class="fixed">\r
+                     <xsl:value-of select="@fixed"/>\r
+                  </span>\r
+                  <xsl:text> </xsl:text>\r
+               </xsl:if>\r
+               <!-- Print occurs info-->\r
+               <xsl:call-template name="PrintOccurs">\r
+                  <xsl:with-param name="component" select="."/>\r
+               </xsl:call-template>\r
+               <!-- Documentation -->\r
+               <xsl:call-template name="PrintSampleDocumentation">\r
+                  <xsl:with-param name="component" select="."/>\r
+               </xsl:call-template>\r
+\r
+               <xsl:text>"</xsl:text>\r
+            </span>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a sample XML instance representation of an attribute \r
+     group definition.\r
+     Param(s):\r
+            schemaLoc (String) optional\r
+                Schema file containing this attribute group \r
+                definition; if in current schema, 'schemaLoc' is \r
+                set to 'this'.\r
+     -->\r
+   <xsl:template match="xsd:attributeGroup[@name]" mode="sample">\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <xsl:for-each select="xsd:attribute | xsd:attributeGroup | xsd:anyAttribute">\r
+         <xsl:variable name="addBR">\r
+            <xsl:choose>\r
+               <xsl:when test="position()!=1">\r
+                  <xsl:text>true</xsl:text>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                  <xsl:text>false</xsl:text>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+         </xsl:variable>\r
+\r
+         <xsl:apply-templates select="." mode="sample">\r
+            <xsl:with-param name="addBR" select="$addBR"/>\r
+            <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+         </xsl:apply-templates>\r
+      </xsl:for-each>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a sample XML instance representation of an attribute \r
+     group reference.\r
+     Param(s):\r
+            subTypeAttrs (String) optional\r
+                List of attributes in sub-types of the type that \r
+                contains this attribute group\r
+            isInherited (boolean) optional\r
+                If true, display attributes using 'inherited' CSS \r
+                class.\r
+            isNewField (boolean) optional\r
+                If true, display attributes using 'newFields' CSS \r
+                class.\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            parentGroups (String) optional\r
+                List of parent attribute group definitions that \r
+                contain this attribute group. Used to prevent \r
+                infinite loops when displaying attribute group \r
+                definitions. In such a case, writes out an error \r
+                message and stops processing.\r
+            schemaLoc (String) optional\r
+                Schema file containing this attribute group \r
+                reference if in current schema, 'schemaLoc' is \r
+                set to 'this'.\r
+     -->\r
+   <xsl:template match="xsd:attributeGroup[@ref]" mode="sample">\r
+      <xsl:param name="subTypeAttrs"/>\r
+      <xsl:param name="isInherited">false</xsl:param>\r
+      <xsl:param name="isNewField">false</xsl:param>\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="parentGroups"/>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <!-- Get attribute group name -->\r
+      <xsl:variable name="attrGrpName">\r
+         <xsl:call-template name="GetRefName">\r
+            <xsl:with-param name="ref" select="@ref"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="contains($parentGroups, concat('*', normalize-space($attrGrpName), '+'))">\r
+            <!-- Circular attribute group definition -->\r
+            <xsl:call-template name="HandleError">\r
+               <xsl:with-param name="isTerminating">false</xsl:with-param>\r
+               <xsl:with-param name="errorMsg">\r
+                  <xsl:text>Circular attribute group reference: </xsl:text>\r
+                  <xsl:value-of select="$attrGrpName"/>\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <!-- Look for attribute group definition -->\r
+            <xsl:variable name="defLoc">\r
+               <xsl:call-template name="FindComponent">\r
+                  <xsl:with-param name="ref" select="@ref"/>\r
+                  <xsl:with-param name="compType">attribute group</xsl:with-param>\r
+               </xsl:call-template>\r
+            </xsl:variable>\r
+\r
+            <xsl:choose>\r
+               <!-- Not found -->\r
+               <xsl:when test="normalize-space($defLoc)='' or normalize-space($defLoc)='none' or normalize-space($defLoc)='xml' or normalize-space($defLoc)='xsd'">\r
+                  <div class="other" style="margin-left: {$margin}em">\r
+                     <xsl:text>Attribute group reference (not shown): </xsl:text>\r
+                     <xsl:call-template name="PrintAttributeGroupRef">\r
+                        <xsl:with-param name="ref" select="@ref"/>\r
+                        <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                     </xsl:call-template>\r
+                     <!-- Documentation -->\r
+                     <xsl:call-template name="PrintSampleDocumentation">\r
+                        <xsl:with-param name="component" select="."/>\r
+                     </xsl:call-template>\r
+                  </div>\r
+               </xsl:when>\r
+               <!-- Found in current schema -->\r
+               <xsl:when test="normalize-space($defLoc)='this'">\r
+                  <xsl:variable name="attrGrpDef" select="key('attributeGroup', $attrGrpName)"/>\r
+                  <xsl:apply-templates select="$attrGrpDef/xsd:attribute | $attrGrpDef/xsd:attributeGroup" mode="sample">\r
+                     <xsl:with-param name="subTypeAttrs" select="$subTypeAttrs"/>\r
+                     <xsl:with-param name="isInherited" select="$isInherited"/>\r
+                     <xsl:with-param name="isNewField" select="$isNewField"/>\r
+                     <xsl:with-param name="parentGroups" select="concat($parentGroups, concat('*', normalize-space($attrGrpName), '+'))"/>\r
+                     <xsl:with-param name="margin" select="$margin"/>\r
+                     <xsl:with-param name="addBR">true</xsl:with-param>\r
+                     <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                  </xsl:apply-templates>\r
+               </xsl:when>\r
+               <!-- Found in external schema -->\r
+               <xsl:otherwise>\r
+                  <xsl:variable name="attrGrpDef" select="document($defLoc)/xsd:schema/xsd:attributeGroup[@name=$attrGrpName]"/>\r
+                  <xsl:apply-templates select="$attrGrpDef/xsd:attribute | $attrGrpDef/xsd:attributeGroup" mode="sample">\r
+                     <xsl:with-param name="subTypeAttrs" select="$subTypeAttrs"/>\r
+                     <xsl:with-param name="isInherited" select="$isInherited"/>\r
+                     <xsl:with-param name="isNewField" select="$isNewField"/>\r
+                     <xsl:with-param name="parentGroups" select="concat($parentGroups, concat('*', normalize-space($attrGrpName), '+'))"/>\r
+                     <xsl:with-param name="margin" select="$margin"/>\r
+                     <xsl:with-param name="addBR">true</xsl:with-param>\r
+                     <xsl:with-param name="schemaLoc" select="$defLoc"/>\r
+                  </xsl:apply-templates>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a sample XML instance representation of a 'choice' \r
+     model group.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            isInherited (boolean) optional\r
+                If true, display elements using'inherited' CSS class.\r
+            isNewField (boolean) optional\r
+                If true, display elements using 'newFields' CSS class.\r
+            parentGroups (String) optional\r
+                List of parent model group definitions that contain this \r
+                model group. Used to prevent infinite loops when \r
+                displaying model group definitions.\r
+            schemaLoc (String) optional\r
+                Schema file containing this choice model group;\r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+            typeList (String) optional\r
+                List of types in this call chain. Name of type starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+     -->\r
+   <xsl:template match="xsd:choice" mode="sample">\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="isInherited">false</xsl:param>\r
+      <xsl:param name="isNewField">false</xsl:param>\r
+      <xsl:param name="parentGroups"/>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+      <xsl:param name="typeList"/>\r
+\r
+      <xsl:if test="normalize-space(@maxOccurs)!='0'">\r
+         <!-- Header -->\r
+         <span class="group" style="margin-left: {$margin}em">\r
+            <xsl:text>Start </xsl:text>\r
+            <xsl:call-template name="PrintGlossaryTermRef">\r
+               <xsl:with-param name="code">Choice</xsl:with-param>\r
+               <xsl:with-param name="term">Choice</xsl:with-param>\r
+            </xsl:call-template>\r
+            <!-- Min/max occurrence -->\r
+            <xsl:text> </xsl:text>\r
+            <xsl:call-template name="PrintOccurs">\r
+               <xsl:with-param name="component" select="."/>\r
+            </xsl:call-template>\r
+            <!-- Documentation -->\r
+            <xsl:call-template name="PrintSampleDocumentation">\r
+               <xsl:with-param name="component" select="."/>\r
+            </xsl:call-template>\r
+         </span><br/>\r
+\r
+         <!-- Content -->\r
+         <xsl:apply-templates select="xsd:*" mode="sample">\r
+            <xsl:with-param name="margin" select="number($margin)+number($ELEM_INDENT)"/>\r
+            <xsl:with-param name="isInherited" select="$isInherited"/>\r
+            <xsl:with-param name="isNewField" select="$isNewField"/>\r
+            <xsl:with-param name="parentGroups" select="$parentGroups"/>\r
+            <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            <xsl:with-param name="typeList" select="$typeList"/>\r
+         </xsl:apply-templates>\r
+\r
+         <!-- Footer -->\r
+         <span class="group" style="margin-left: {$margin}em">\r
+            <xsl:text>End Choice</xsl:text>\r
+         </span><br/>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a sample XML instance from a complex type definition.\r
+     Param(s):\r
+            schemaLoc (String) optional\r
+                Schema file containing this complex type definition; \r
+                if in current schema, 'schemaLoc' is set to 'this'.\r
+     -->\r
+   <xsl:template match="xsd:complexType" mode="sample">\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+      <xsl:param name="parentGroups"/>\r
+\r
+      <xsl:call-template name="PrintSampleComplexElement">\r
+         <xsl:with-param name="type" select="."/>\r
+         <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+        <xsl:with-param name="parentGroups" select="$parentGroups"/>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a sample XML instance from an element declaration.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            isInherited (boolean) optional\r
+                If true, display elements using 'inherited' CSS class.\r
+            isNewField (boolean) optional\r
+                If true, display elements using 'newFields' CSS class.\r
+            schemaLoc (String) optional\r
+                Schema file containing this element declaration; \r
+                if in current schema, 'schemaLoc' is set to 'this'.\r
+            typeList (String) optional\r
+                List of types in this call chain. Name of type starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+     -->\r
+   <xsl:template match="xsd:element[@name]" mode="sample">\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="isInherited">false</xsl:param>\r
+      <xsl:param name="isNewField">false</xsl:param>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+      <xsl:param name="typeList"/>\r
+      <xsl:param name="parentGroups"/>\r
+\r
+      <xsl:choose>\r
+         <!-- Prohibited element declaration -->\r
+         <xsl:when test="normalize-space(@maxOccurs)='0'">\r
+            <!-- IGNORE if max occurs is zero -->\r
+         </xsl:when>\r
+         <!-- Global element declaration -->\r
+         <xsl:when test="local-name(..)='schema'">\r
+            <xsl:choose>\r
+               <!-- With type reference -->\r
+               <xsl:when test="@type">\r
+                  <xsl:variable name="elemTypeName">\r
+                     <xsl:call-template name="GetRefName">\r
+                        <xsl:with-param name="ref" select="@type"/>\r
+                     </xsl:call-template>\r
+                  </xsl:variable>\r
+\r
+                  <!-- Look for complex type definition -->\r
+                  <xsl:variable name="defLoc">\r
+                     <xsl:call-template name="FindComponent">\r
+                        <xsl:with-param name="ref" select="@type"/>\r
+                        <xsl:with-param name="compType">complex type</xsl:with-param>\r
+                     </xsl:call-template>\r
+                  </xsl:variable>\r
+\r
+                  <xsl:choose>\r
+                     <!-- Complex type was found in current \r
+                          schema. -->\r
+                     <xsl:when test="normalize-space($defLoc)='this'">\r
+                        <xsl:variable name="ctype" select="key('complexType', $elemTypeName)"/>\r
+                        <xsl:call-template name="PrintSampleComplexElement">\r
+                           <xsl:with-param name="element" select="."/>\r
+                           <xsl:with-param name="type" select="$ctype"/>\r
+                          <xsl:with-param name="parentGroups" select="$parentGroups"/>\r
+                        </xsl:call-template>\r
+                     </xsl:when>\r
+                     <!-- Complex type was not found. -->\r
+                     <xsl:when test="normalize-space($defLoc)='' or normalize-space($defLoc)='none' or normalize-space($defLoc)='xml' or normalize-space($defLoc)='xsd'">\r
+                        <xsl:call-template name="PrintSampleSimpleElement">\r
+                           <xsl:with-param name="element" select="."/>\r
+                           <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                        </xsl:call-template>\r
+                     </xsl:when>\r
+                     <!-- Complex type was found in external\r
+                          schema. -->\r
+                     <xsl:otherwise>\r
+                        <xsl:variable name="ctype" select="document($defLoc)/xsd:schema/xsd:complexType[@name=$elemTypeName]"/>\r
+                        <xsl:call-template name="PrintSampleComplexElement">\r
+                           <xsl:with-param name="element" select="."/>\r
+                           <xsl:with-param name="type" select="$ctype"/>\r
+                          <xsl:with-param name="parentGroups" select="$parentGroups"/>\r
+                        </xsl:call-template>\r
+                     </xsl:otherwise>\r
+                  </xsl:choose>\r
+               </xsl:when>\r
+               <!-- With local complex type definition -->\r
+               <xsl:when test="xsd:complexType">\r
+                  <xsl:call-template name="PrintSampleComplexElement">\r
+                     <xsl:with-param name="element" select="."/>\r
+                     <xsl:with-param name="type" select="xsd:complexType"/>\r
+                     <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                     <xsl:with-param name="parentGroups" select="$parentGroups"/>\r
+                  </xsl:call-template>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                  <xsl:call-template name="PrintSampleSimpleElement">\r
+                     <xsl:with-param name="element" select="."/>\r
+                     <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                  </xsl:call-template>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+         </xsl:when>\r
+         <!-- Local element declaration -->\r
+         <xsl:otherwise>\r
+            <xsl:choose>\r
+               <!-- With local complex type definition -->\r
+               <xsl:when test="xsd:complexType">\r
+                  <xsl:call-template name="PrintSampleComplexElement">\r
+                     <xsl:with-param name="element" select="."/>\r
+                     <xsl:with-param name="type" select="xsd:complexType"/>\r
+                     <xsl:with-param name="margin" select="$margin"/>\r
+                     <xsl:with-param name="isInherited" select="$isInherited"/>\r
+                     <xsl:with-param name="isNewField" select="$isNewField"/>\r
+                     <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                     <xsl:with-param name="typeList" select="$typeList"/>\r
+                     <xsl:with-param name="parentGroups" select="$parentGroups"/>\r
+                  </xsl:call-template>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                  <xsl:call-template name="PrintSampleSimpleElement">\r
+                     <xsl:with-param name="element" select="."/>\r
+                     <xsl:with-param name="margin" select="$margin"/>\r
+                     <xsl:with-param name="isInherited" select="$isInherited"/>\r
+                     <xsl:with-param name="isNewField" select="$isNewField"/>\r
+                     <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                     <xsl:with-param name="typeList" select="$typeList"/>\r
+                  </xsl:call-template>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a sample XML instance from an element\r
+     reference.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            isInherited (boolean) optional\r
+                If true, display elements using 'inherited' CSS class.\r
+            isNewField (boolean) optional\r
+                If true, display elements using 'newFields' CSS class.\r
+            schemaLoc (String) optional\r
+                Schema file containing this element reference; \r
+                if in current schema, 'schemaLoc' is set to 'this'.\r
+     -->\r
+   <xsl:template match="xsd:element[@ref]" mode="sample">\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="isInherited">false</xsl:param>\r
+      <xsl:param name="isNewField">false</xsl:param>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <xsl:if test="normalize-space(@maxOccurs)!='0'">\r
+         <xsl:call-template name="PrintSampleSimpleElement">\r
+            <xsl:with-param name="element" select="."/>\r
+            <xsl:with-param name="margin" select="$margin"/>\r
+            <xsl:with-param name="isInherited" select="$isInherited"/>\r
+            <xsl:with-param name="isNewField" select="$isNewField"/>\r
+            <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+         </xsl:call-template>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a sample XML instance from a group definition.\r
+     Param(s):\r
+            schemaLoc (String) optional\r
+                Schema file containing this model group definition;\r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+            typeList (String) optional\r
+                List of types in this call chain. Name of type starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+     -->\r
+   <xsl:template match="xsd:group[@name]" mode="sample">\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+      <xsl:param name="typeList"/>\r
+\r
+      <xsl:apply-templates select="xsd:*" mode="sample">\r
+         <xsl:with-param name="parentGroups" select="concat('*', normalize-space(@name), '+')"/>\r
+         <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+         <xsl:with-param name="typeList" select="$typeList"/>\r
+      </xsl:apply-templates>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a sample XML instance from a group reference.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            isInherited (boolean) optional\r
+                If true, display elements using 'inherited' CSS \r
+                class.\r
+            isNewField (boolean) optional\r
+                If true, display elements using 'newFields' CSS \r
+                class.\r
+            parentGroups (String) optional\r
+                List of parent model group definitions that contain \r
+                this  model group. Used to prevent infinite loops \r
+                when displaying model group definitions.\r
+            schemaLoc (String) optional\r
+                Schema file containing this model group reference;\r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+            typeList (String) optional\r
+                List of types in this call chain. Name of type starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+     -->\r
+   <xsl:template match="xsd:group[@ref]" mode="sample">\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="isInherited">false</xsl:param>\r
+      <xsl:param name="isNewField">false</xsl:param>\r
+      <xsl:param name="parentGroups"/>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+      <xsl:param name="typeList"/>\r
+\r
+      <!-- Get group name -->\r
+      <xsl:variable name="grpName">\r
+         <xsl:call-template name="GetRefName">\r
+            <xsl:with-param name="ref" select="@ref"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <!-- Create link to the group definition -->\r
+      <xsl:variable name="grpLink">\r
+         <xsl:call-template name="PrintGroupRef">\r
+            <xsl:with-param name="ref" select="@ref"/>\r
+            <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <!-- Get occurrence info -->\r
+      <xsl:variable name="occursInfo">\r
+         <xsl:call-template name="PrintOccurs">\r
+            <xsl:with-param name="component" select="."/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <xsl:choose>\r
+         <!-- Circular group definition -->\r
+         <xsl:when test="contains($parentGroups, concat('*', normalize-space($grpName), '+'))">\r
+            <!-- Don't show contents -->\r
+            <div class="other" style="margin-left: {$margin}em">\r
+               <xsl:text>Circular model group reference: </xsl:text>\r
+               <xsl:copy-of select="$grpLink"/>\r
+               <!-- Occurrence info -->\r
+               <xsl:text> </xsl:text>\r
+               <xsl:copy-of select="$occursInfo"/>\r
+               <!-- Documentation -->\r
+               <xsl:call-template name="PrintSampleDocumentation">\r
+                  <xsl:with-param name="component" select="."/>\r
+               </xsl:call-template>\r
+            </div>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <!-- Look for group definition -->\r
+            <xsl:variable name="grpDefLoc">\r
+               <xsl:call-template name="FindComponent">\r
+                  <xsl:with-param name="ref" select="@ref"/>\r
+                  <xsl:with-param name="compType">group</xsl:with-param>\r
+               </xsl:call-template>\r
+            </xsl:variable>\r
+\r
+            <xsl:choose>\r
+               <!-- Not found -->\r
+               <xsl:when test="normalize-space($grpDefLoc)='' or normalize-space($grpDefLoc)='none' or normalize-space($grpDefLoc)='xml' or normalize-space($grpDefLoc)='xsd'">\r
+                  <div class="other" style="margin-left: {$margin}em">\r
+                     <xsl:text>Model group reference (not shown): </xsl:text>\r
+                     <xsl:copy-of select="$grpLink"/>\r
+                     <!-- Occurrence info -->\r
+                     <xsl:text> </xsl:text>\r
+                     <xsl:copy-of select="$occursInfo"/>\r
+                     <!-- Documentation -->\r
+                     <xsl:call-template name="PrintSampleDocumentation">\r
+                        <xsl:with-param name="component" select="."/>\r
+                     </xsl:call-template>\r
+                  </div>\r
+               </xsl:when>\r
+               <!-- Found in current schema -->\r
+               <xsl:when test="normalize-space($grpDefLoc)='this'">\r
+                  <xsl:variable name="grpDef" select="key('group', $grpName)"/>\r
+                  <xsl:call-template name="PrintSampleGroup">\r
+                     <xsl:with-param name="margin" select="$margin"/>\r
+                     <xsl:with-param name="isInherited" select="$isInherited"/>\r
+                     <xsl:with-param name="isNewField" select="$isNewField"/>\r
+                     <xsl:with-param name="parentGroups" select="concat($parentGroups, concat('*', normalize-space($grpName), '+'))"/>\r
+                     <xsl:with-param name="occursInfo" select="$occursInfo"/>\r
+                     <xsl:with-param name="grpLink" select="$grpLink"/>\r
+                     <xsl:with-param name="grpRef" select="."/>\r
+                     <xsl:with-param name="grpDef" select="$grpDef"/>\r
+                     <xsl:with-param name="grpDefLoc" select="$grpDefLoc"/>\r
+                     <xsl:with-param name="typeList" select="$typeList"/>\r
+                  </xsl:call-template>\r
+               </xsl:when>\r
+               <!-- Found in external schema -->\r
+               <xsl:otherwise>\r
+                  <xsl:variable name="grpDef" select="document($grpDefLoc)/xsd:schema/xsd:group[@name=$grpName]"/>\r
+                  <xsl:call-template name="PrintSampleGroup">\r
+                     <xsl:with-param name="margin" select="$margin"/>\r
+                     <xsl:with-param name="isInherited" select="$isInherited"/>\r
+                     <xsl:with-param name="isNewField" select="$isNewField"/>\r
+                     <xsl:with-param name="parentGroups" select="concat($parentGroups, concat('*', normalize-space($grpName), '+'))"/>\r
+                     <xsl:with-param name="occursInfo" select="$occursInfo"/>\r
+                     <xsl:with-param name="grpLink" select="$grpLink"/>\r
+                     <xsl:with-param name="grpRef" select="."/>\r
+                     <xsl:with-param name="grpDef" select="$grpDef"/>\r
+                     <xsl:with-param name="grpDefLoc" select="$grpDefLoc"/>\r
+                     <xsl:with-param name="typeList" select="$typeList"/>\r
+                  </xsl:call-template>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a sample XML instance from a 'sequence' model group.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            isInherited (boolean) optional\r
+                If true, display elements using 'inherited' CSS class.\r
+            isNewField (boolean) optional\r
+                If true, display elements using 'newFields' CSS class.\r
+            parentGroups (String) optional\r
+                List of parent model group definitions that contain \r
+                this model group. Used to prevent infinite loops when \r
+                displaying model group definitions.\r
+            schemaLoc (String) optional\r
+                Schema file containing this sequence model group;\r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+            typeList (String) optional\r
+                List of types in this call chain. Name of type starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+     -->\r
+   <xsl:template match="xsd:sequence" mode="sample">\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="isInherited">false</xsl:param>\r
+      <xsl:param name="isNewField">false</xsl:param>\r
+      <xsl:param name="parentGroups"/>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+      <xsl:param name="typeList"/>\r
+\r
+      <xsl:if test="normalize-space(@maxOccurs)!='0'">\r
+         <!-- Get occurrence info -->\r
+         <xsl:variable name="occursInfo">\r
+            <xsl:call-template name="PrintOccurs">\r
+               <xsl:with-param name="component" select="."/>\r
+            </xsl:call-template>\r
+         </xsl:variable>\r
+\r
+         <!-- Header -->\r
+         <xsl:if test="normalize-space($occursInfo)!='[1]'">\r
+            <!-- Don't display header if min/max occurs is one. -->\r
+            <span class="group" style="margin-left: {$margin}em">\r
+               <xsl:text>Start </xsl:text>\r
+               <xsl:call-template name="PrintGlossaryTermRef">\r
+                  <xsl:with-param name="code">Sequence</xsl:with-param>\r
+                  <xsl:with-param name="term">Sequence</xsl:with-param>\r
+               </xsl:call-template>\r
+\r
+               <xsl:text> </xsl:text>\r
+               <xsl:copy-of select="$occursInfo"/>\r
+               <!-- Documentation -->\r
+               <xsl:call-template name="PrintSampleDocumentation">\r
+                  <xsl:with-param name="component" select="."/>\r
+               </xsl:call-template>\r
+            </span><br/>\r
+         </xsl:if>\r
+\r
+         <xsl:apply-templates select="xsd:*" mode="sample">\r
+            <xsl:with-param name="margin">\r
+               <xsl:choose>\r
+                  <xsl:when test="normalize-space($occursInfo)='[1]'">\r
+                     <xsl:value-of select="$margin"/>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:value-of select="number($margin)+number($ELEM_INDENT)"/>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </xsl:with-param>\r
+            <xsl:with-param name="isInherited" select="$isInherited"/>\r
+            <xsl:with-param name="isNewField" select="$isNewField"/>\r
+            <xsl:with-param name="parentGroups" select="$parentGroups"/>\r
+            <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            <xsl:with-param name="typeList" select="$typeList"/>\r
+         </xsl:apply-templates>\r
+\r
+         <!-- Footer -->\r
+         <xsl:if test="normalize-space($occursInfo)!='[1]'">\r
+            <!-- Don't display footer if min/max occurs is one. -->\r
+            <span class="group" style="margin-left: {$margin}em">\r
+               <xsl:text>End Sequence</xsl:text>\r
+            </span><br/>\r
+         </xsl:if>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the constraints of a complex type with simple content \r
+     to be displayed within a sample XML instance.\r
+     Param(s):\r
+            schemaLoc (String) optional\r
+                Schema file containing this simple content \r
+                restriction; if in current schema, 'schemaLoc' is \r
+                set to 'this'\r
+     -->\r
+   <xsl:template match="xsd:simpleContent[xsd:restriction]" mode="sample">\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <span class="constraint">\r
+         <xsl:call-template name="PrintSampleSimpleRestriction">\r
+            <xsl:with-param name="restriction" select="./xsd:restriction"/>\r
+            <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+         </xsl:call-template>\r
+      </span>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the constraints of a simple type definition to be \r
+     displayed within a sample XML instance.\r
+     Param(s):\r
+            schemaLoc (String) optional\r
+                Schema file containing this simple type definition; \r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+     -->\r
+   <xsl:template match="xsd:simpleType" mode="sample">\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <span class="constraint">\r
+         <xsl:call-template name="PrintSampleSimpleConstraints">\r
+            <xsl:with-param name="simpleContent" select="."/>\r
+            <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+         </xsl:call-template>\r
+      </span>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the identity constraints of an element to be displayed \r
+     within a sample XML instance.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            schemaLoc (String) optional\r
+                Schema file containing this simple type definition; \r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+     -->\r
+   <xsl:template match="xsd:unique | xsd:key | xsd:keyref" mode="sample">\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <div class="other" style="margin-left: {$margin}em">\r
+         <xsl:text>&lt;!-- </xsl:text><br/>\r
+\r
+         <xsl:choose>\r
+            <xsl:when test="local-name(.)='unique'">\r
+               <xsl:call-template name="PrintGlossaryTermRef">\r
+                  <xsl:with-param name="code">Unique</xsl:with-param>\r
+                  <xsl:with-param name="term">Uniqueness</xsl:with-param>\r
+               </xsl:call-template>\r
+            </xsl:when>\r
+            <xsl:when test="local-name(.)='key'">\r
+               <xsl:call-template name="PrintGlossaryTermRef">\r
+                  <xsl:with-param name="code">Key</xsl:with-param>\r
+                  <xsl:with-param name="term">Key</xsl:with-param>\r
+               </xsl:call-template>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+               <xsl:call-template name="PrintGlossaryTermRef">\r
+                  <xsl:with-param name="code">KeyRef</xsl:with-param>\r
+                  <xsl:with-param name="term">Key Reference</xsl:with-param>\r
+               </xsl:call-template>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+         <xsl:text> Constraint - </xsl:text>\r
+         <strong>\r
+            <xsl:choose>\r
+               <xsl:when test="local-name(.)='keyref'">\r
+                  <xsl:value-of select="@name"/>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                  <xsl:variable name="componentID">\r
+                     <xsl:call-template name="GetComponentID">\r
+                        <xsl:with-param name="component" select="."/>\r
+                     </xsl:call-template>\r
+                  </xsl:variable>\r
+                  <a name="{$componentID}"><xsl:value-of select="@name"/></a>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+         </strong><br/>\r
+\r
+         <xsl:text>Selector - </xsl:text>\r
+         <strong>\r
+            <xsl:value-of select="xsd:selector/@xpath"/>\r
+         </strong><br/>\r
+\r
+         <xsl:text>Field(s) - </xsl:text>\r
+         <xsl:for-each select="xsd:field">\r
+            <xsl:if test="position()!=1">\r
+               <xsl:text>, </xsl:text>\r
+            </xsl:if>\r
+            <strong>\r
+               <xsl:value-of select="@xpath"/>\r
+            </strong>\r
+         </xsl:for-each>\r
+         <br/>\r
+\r
+         <xsl:if test="local-name(.)='keyref'">\r
+            <xsl:text>Refers to - </xsl:text>\r
+            <xsl:call-template name="PrintKeyRef">\r
+               <xsl:with-param name="ref" select="@refer"/>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            </xsl:call-template>\r
+            <br/>\r
+         </xsl:if>\r
+\r
+         <xsl:text>--></xsl:text>\r
+      </div>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Unmatched template for 'sample' mode\r
+     -->\r
+   <xsl:template match="*" mode="sample"/>\r
+\r
+   <!--\r
+     Prints out a link which will open up a window, displaying a \r
+     schema component's documentation.\r
+     Param(s):\r
+            component (Node) required\r
+                Schema component\r
+  -->\r
+   <xsl:template name="PrintSampleDocumentation">\r
+      <xsl:param name="component"/>\r
+\r
+      <xsl:if test="normalize-space(translate($useJavaScript,'TRUE','true'))='true' and $component and $component/xsd:annotation/xsd:documentation">\r
+         <xsl:variable name="documentation">\r
+            <xsl:for-each select="$component/xsd:annotation/xsd:documentation">\r
+               <!-- Check for two dashes, which will break the JavaScript \r
+                    code -->\r
+               <xsl:if test="contains(., '--') or contains(@source, '--')">\r
+                  <xsl:call-template name="HandleError">\r
+                     <xsl:with-param name="isTerminating">true</xsl:with-param>\r
+                     <xsl:with-param name="errorMsg">\r
+A local schema component contains two dashes in \r
+'documentation' elements within its 'annotation' element.\r
+                     </xsl:with-param>\r
+                  </xsl:call-template>\r
+               </xsl:if>\r
+\r
+               <xsl:if test="position()!=1">\r
+                  <xsl:text>,</xsl:text>\r
+               </xsl:if>\r
+               <xsl:text>'</xsl:text>\r
+               <xsl:choose>\r
+                  <xsl:when test="@source">\r
+                     <xsl:text>More information at: </xsl:text>\r
+                     <xsl:call-template name="EscapeQuotes">\r
+                        <xsl:with-param name="value" select="@source"/>\r
+                     </xsl:call-template>\r
+                     <xsl:text>.</xsl:text>\r
+                  </xsl:when>\r
+                  <xsl:when test="normalize-space(.)!=''">\r
+                     <xsl:call-template name="EscapeQuotes">\r
+                        <xsl:with-param name="value" select="normalize-space(.)"/>\r
+                     </xsl:call-template>\r
+                  </xsl:when>\r
+               </xsl:choose>\r
+               <xsl:text>'</xsl:text>\r
+            </xsl:for-each>\r
+         </xsl:variable>\r
+\r
+         <xsl:text> </xsl:text>\r
+         <a href="javascript:void(0)" title="View Documentation" class="documentation">\r
+            <!-- onclick attribute -->\r
+            <xsl:attribute name="onclick">\r
+               <xsl:text>docArray = new Array(</xsl:text>\r
+               <xsl:value-of select="$documentation"/>\r
+               <xsl:text>); viewDocumentation('</xsl:text>\r
+               <xsl:call-template name="GetComponentDescription">\r
+                  <xsl:with-param name="component" select="$component"/>\r
+               </xsl:call-template>\r
+               <xsl:text>', '</xsl:text>\r
+               <xsl:choose>\r
+                  <xsl:when test="$component/@name">\r
+                     <xsl:value-of select="$component/@name"/>\r
+                  </xsl:when>\r
+                  <xsl:when test="$component/@ref">\r
+                     <xsl:call-template name="GetRefName">\r
+                        <xsl:with-param name="ref" select="$component/@ref"/>\r
+                     </xsl:call-template>\r
+                  </xsl:when>\r
+               </xsl:choose>\r
+               <xsl:text>', docArray);</xsl:text>\r
+            </xsl:attribute>\r
+            <xsl:text>?</xsl:text>\r
+         </a>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Translates occurrences of single and double quotes\r
+     in a piece of text with single and double quote\r
+     escape characters.\r
+     Param(s):\r
+            value (String) required\r
+                Text to translate\r
+     -->\r
+   <xsl:template name="EscapeQuotes">\r
+      <xsl:param name="value"/>\r
+\r
+      <xsl:variable name="noSingleQuotes">\r
+         <xsl:call-template name="TranslateStr">\r
+            <xsl:with-param name="value" select="$value"/>\r
+            <xsl:with-param name="strToReplace">'</xsl:with-param>\r
+            <xsl:with-param name="replacementStr">\'</xsl:with-param>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+      <xsl:variable name="noDoubleQuotes">\r
+         <xsl:call-template name="TranslateStr">\r
+            <xsl:with-param name="value" select="$noSingleQuotes"/>\r
+            <xsl:with-param name="strToReplace">"</xsl:with-param>\r
+            <xsl:with-param name="replacementStr">\"</xsl:with-param>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+      <xsl:value-of select="$noDoubleQuotes"/>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Helper template for template, match="xsd:group[@ref]" \r
+     mode="sample". Basically prints out a group reference, for \r
+     which we are able to look up the group definition that it\r
+     is referring to. This template is a work-around because XSLT\r
+     doesn't have variables (in the traditional sense of \r
+     programming languages) and it doesn't allow you to query\r
+     result tree fragments. \r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            isInherited (boolean) optional\r
+                If true, display elements using 'inherited' CSS class.\r
+            isNewField (boolean) optional\r
+                If true, display elements using 'newFields' CSS class.\r
+            parentGroups (String) optional\r
+                List of parent model group definitions that contain this \r
+                model group. Used to prevent infinite loops when \r
+                displaying model group definitions.\r
+            occursInfo (Result tree fragment) required\r
+                Pre-formatted occurrence info of group reference\r
+            grpLink (Result tree fragment) required\r
+                Pre-formatted <a> link representing group reference\r
+            grpRef (Node) required\r
+                Group reference\r
+            grpDef (Node) required\r
+                Group definition that the reference is pointing to\r
+            grpDefLoc (String) optional\r
+                Schema file containing 'grpDef' group definition;\r
+                if current schema, 'schemaLoc' is set to 'this'\r
+            typeList (String) optional\r
+                List of types in this call chain. Name of type starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+     -->\r
+   <xsl:template name="PrintSampleGroup">\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="isInherited">false</xsl:param>\r
+      <xsl:param name="isNewField">false</xsl:param>\r
+      <xsl:param name="parentGroups"/>\r
+      <xsl:param name="occursInfo"/>\r
+      <xsl:param name="grpLink"/>\r
+      <xsl:param name="grpRef"/>\r
+      <xsl:param name="grpDef"/>\r
+      <xsl:param name="grpDefLoc">this</xsl:param>\r
+      <xsl:param name="typeList"/>\r
+\r
+      <!-- Header -->\r
+      <xsl:if test="normalize-space($occursInfo)!='[1]'">\r
+         <!-- Don't print out header if min/max occurs is one. -->\r
+         <span class="group" style="margin-left: {$margin}em">\r
+            <xsl:text>Start Group: </xsl:text>\r
+            <xsl:copy-of select="$grpLink"/>\r
+            <!-- Occurrence info -->\r
+            <xsl:text> </xsl:text>\r
+            <xsl:copy-of select="$occursInfo"/>\r
+            <!-- Documentation -->\r
+            <xsl:call-template name="PrintSampleDocumentation">\r
+               <xsl:with-param name="component" select="$grpRef"/>\r
+            </xsl:call-template>\r
+         </span><br/>\r
+      </xsl:if>\r
+\r
+      <!-- Content -->\r
+      <xsl:apply-templates select="$grpDef/xsd:*" mode="sample">\r
+         <xsl:with-param name="margin">\r
+            <xsl:choose>\r
+               <xsl:when test="normalize-space($occursInfo)!='[1]'">\r
+                  <xsl:value-of select="number($margin)+number($ELEM_INDENT)"/>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                  <xsl:value-of select="$margin"/>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="isInherited" select="$isInherited"/>\r
+         <xsl:with-param name="isNewField" select="$isNewField"/>\r
+         <xsl:with-param name="parentGroups" select="$parentGroups"/>\r
+         <xsl:with-param name="schemaLoc" select="$grpDefLoc"/>\r
+         <xsl:with-param name="typeList" select="$typeList"/>\r
+      </xsl:apply-templates>\r
+\r
+      <!-- Footer -->\r
+      <xsl:if test="normalize-space($occursInfo)!='[1]'">\r
+         <!-- Don't print out footer if min/max occurs is one. -->\r
+         <span class="group" style="margin-left: {$margin}em">\r
+            <xsl:text>End Group: </xsl:text>\r
+            <xsl:copy-of select="$grpLink"/>\r
+         </span><br/>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a sample element instance in one line.\r
+     Param(s):\r
+            element (Node) required\r
+                Element declaration or reference\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            isInherited (boolean) optional\r
+                If true, display element using 'inherited' CSS class.\r
+            isNewField (boolean) optional\r
+                If true, display element using 'newFields' CSS class.\r
+            schemaLoc (String) optional\r
+                Schema file containing this element declaration\r
+                or reference; if in current schema, 'schemaLoc' is \r
+                set to 'this'.\r
+     -->\r
+   <xsl:template name="PrintSampleSimpleElement">\r
+      <xsl:param name="element"/>\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="isInherited">false</xsl:param>\r
+      <xsl:param name="isNewField">false</xsl:param>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <!-- Element Tag -->\r
+      <xsl:variable name="elemTag">\r
+         <!-- Local Name -->\r
+         <xsl:choose>\r
+            <!-- Element reference -->\r
+            <xsl:when test="$element/@ref">\r
+               <!-- Note: Prefix will be automatically written out\r
+                    in call to 'PrintElementRef'. -->\r
+               <xsl:call-template name="PrintElementRef">\r
+                  <xsl:with-param name="ref" select="@ref"/>\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               </xsl:call-template>\r
+            </xsl:when>\r
+            <!-- Element declaration -->\r
+            <xsl:otherwise>\r
+               <!-- Prefix -->\r
+               <xsl:variable name="prefix">\r
+                  <xsl:call-template name="GetElementPrefix">\r
+                     <xsl:with-param name="element" select="$element"/>\r
+                  </xsl:call-template>\r
+               </xsl:variable>\r
+               <xsl:call-template name="PrintNSPrefix">\r
+                  <xsl:with-param name="prefix" select="$prefix"/>\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               </xsl:call-template>\r
+               <xsl:value-of select="$element/@name"/>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+      </xsl:variable>\r
+\r
+      <div style="margin-left: {$margin}em">\r
+         <xsl:choose>\r
+            <xsl:when test="$isNewField!='false'">\r
+               <xsl:attribute name="class">newFields</xsl:attribute>\r
+            </xsl:when>\r
+            <xsl:when test="$isInherited!='false'">\r
+               <xsl:attribute name="class">inherited</xsl:attribute>\r
+            </xsl:when>\r
+         </xsl:choose>\r
+\r
+         <!-- Start Tag -->\r
+         <xsl:text>&lt;</xsl:text>\r
+         <xsl:copy-of select="$elemTag"/>\r
+         <xsl:text>></xsl:text>\r
+\r
+         <!-- Contents -->\r
+         <xsl:text> </xsl:text>\r
+         <xsl:choose>\r
+            <!-- Fixed value is provided -->\r
+            <xsl:when test="$element/@fixed">\r
+               <span class="fixed">\r
+                  <xsl:value-of select="$element/@fixed"/>\r
+               </span>\r
+            </xsl:when>\r
+            <!-- Type reference is provided -->\r
+            <xsl:when test="$element/@name and $element/@type">\r
+               <xsl:call-template name="PrintTypeRef">\r
+                  <xsl:with-param name="ref" select="$element/@type"/>\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               </xsl:call-template>\r
+            </xsl:when>\r
+            <!-- Local simple type definition is provided -->\r
+            <xsl:when test="$element/@name and $element/xsd:simpleType">\r
+               <xsl:apply-templates select="$element/xsd:simpleType" mode="sample">\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               </xsl:apply-templates>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+               <xsl:text>...</xsl:text>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+         <xsl:text> </xsl:text>\r
+\r
+         <!-- Identity Constraints -->\r
+         <xsl:if test="$element/xsd:unique or $element/xsd:key or $element/xsd:keyref">\r
+            <xsl:apply-templates select="$element/xsd:unique | $element/xsd:key | $element/xsd:keyref" mode="sample">\r
+               <xsl:with-param name="margin" select="$ELEM_INDENT"/>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            </xsl:apply-templates>\r
+         </xsl:if>\r
+\r
+         <!-- End Tag -->\r
+         <xsl:text>&lt;/</xsl:text>\r
+         <xsl:copy-of select="$elemTag"/>\r
+         <xsl:text>></xsl:text>\r
+\r
+         <xsl:if test="local-name($element/..)!='schema'">\r
+            <!-- Min/max occurs information -->\r
+            <xsl:text> </xsl:text>\r
+            <xsl:call-template name="PrintOccurs">\r
+               <xsl:with-param name="component" select="$element"/>\r
+            </xsl:call-template>\r
+            <!-- Documentation -->\r
+            <xsl:call-template name="PrintSampleDocumentation">\r
+               <xsl:with-param name="component" select="$element"/>\r
+            </xsl:call-template>\r
+         </xsl:if>\r
+      </div>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a sample element instance that has complex content.\r
+     Param(s):\r
+            type (Node) required\r
+                Complex type definition\r
+            element (Node) optional\r
+                Element declaration\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            isInherited (boolean) optional\r
+                If true, display element using 'inherited' CSS class.\r
+            isNewField (boolean) optional\r
+                If true, display element using 'newFields' CSS class.\r
+            schemaLoc (String) optional\r
+                Schema file containing this element declaration\r
+                or type definition; if in current schema, 'schemaLoc' \r
+                is set to 'this'.\r
+            typeList (String) optional\r
+                List of types in this call chain. Name of type starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+     -->\r
+   <xsl:template name="PrintSampleComplexElement">\r
+      <xsl:param name="type"/>\r
+      <xsl:param name="element"/>\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="isInherited">false</xsl:param>\r
+      <xsl:param name="isNewField">false</xsl:param>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+      <xsl:param name="typeList"/>\r
+      <xsl:param name="parentGroups"/>\r
+\r
+      <xsl:choose>\r
+         <!-- Circular type hierarchy -->\r
+         <xsl:when test="$type/@name and contains($typeList, concat('*', $type/@name, '+'))"/>\r
+         <xsl:otherwise>\r
+            <xsl:variable name="tag">\r
+               <xsl:choose>\r
+                  <xsl:when test="$element">\r
+                     <!-- Prefix -->\r
+                     <xsl:variable name="prefix">\r
+                        <xsl:call-template name="GetElementPrefix">\r
+                           <xsl:with-param name="element" select="$element"/>\r
+                        </xsl:call-template>\r
+                     </xsl:variable>\r
+                     <xsl:call-template name="PrintNSPrefix">\r
+                        <xsl:with-param name="prefix" select="$prefix"/>\r
+                        <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                     </xsl:call-template>\r
+                     <xsl:value-of select="$element/@name"/>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:text>...</xsl:text>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </xsl:variable>\r
+\r
+            <xsl:variable name="fromTopCType">\r
+               <xsl:choose>\r
+                  <xsl:when test="not($element) and local-name($type/..)='schema'">\r
+                     <xsl:text>true</xsl:text>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:text>false</xsl:text>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </xsl:variable>\r
+\r
+            <div style="margin-left: {$margin}em">\r
+               <xsl:choose>\r
+                  <xsl:when test="$isNewField!='false'">\r
+                     <xsl:attribute name="class">newFields</xsl:attribute>\r
+                  </xsl:when>\r
+                  <xsl:when test="$isInherited!='false'">\r
+                     <xsl:attribute name="class">inherited</xsl:attribute>\r
+                  </xsl:when>\r
+               </xsl:choose>\r
+         \r
+               <!-- Start Tag -->\r
+               <xsl:text>&lt;</xsl:text>\r
+               <xsl:copy-of select="$tag"/>\r
+\r
+               <!-- Print attributes -->\r
+               <xsl:call-template name="PrintSampleTypeAttrs">\r
+                  <xsl:with-param name="type" select="$type"/>\r
+                  <xsl:with-param name="isInherited" select="$isInherited"/>\r
+                  <xsl:with-param name="isNewField" select="$isNewField"/>\r
+                  <xsl:with-param name="margin" select="$ATTR_INDENT"/>\r
+                  <xsl:with-param name="fromTopCType" select="$fromTopCType"/>\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                  <xsl:with-param name="typeList" select="$typeList"/>\r
+               </xsl:call-template>\r
+\r
+               <!-- Get content -->\r
+               <xsl:variable name="content">\r
+                  <xsl:call-template name="PrintSampleTypeContent">\r
+                     <xsl:with-param name="type" select="$type"/>\r
+                     <xsl:with-param name="margin" select="$ELEM_INDENT"/>\r
+                     <xsl:with-param name="isInherited" select="$isInherited"/>\r
+                     <xsl:with-param name="isNewField" select="$isNewField"/>\r
+                     <xsl:with-param name="fromTopCType" select="$fromTopCType"/>\r
+                     <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                     <xsl:with-param name="typeList" select="$typeList"/>\r
+                     <xsl:with-param name="parentGroups" select="$parentGroups"/>\r
+                  </xsl:call-template>\r
+               </xsl:variable>\r
+\r
+               <!-- Find out if content type is mixed -->\r
+               <xsl:variable name="mixed">\r
+                  <xsl:choose>\r
+                     <xsl:when test="normalize-space(translate($type/xsd:complexContent/@mixed, 'TRUE', 'true'))='true' or normalize-space($type/xsd:complexContent/@mixed)='1'">\r
+                        <xsl:text>true</xsl:text>\r
+                     </xsl:when>\r
+                     <xsl:when test="normalize-space(translate($type/@mixed, 'TRUE', 'true'))='true' or normalize-space($type/@mixed)='1'">\r
+                        <xsl:text>true</xsl:text>\r
+                     </xsl:when>\r
+                     <xsl:otherwise>\r
+                        <xsl:text>false</xsl:text>\r
+                     </xsl:otherwise>\r
+                  </xsl:choose>\r
+               </xsl:variable>\r
+\r
+               <!-- Find out if there are identity constraints -->\r
+               <xsl:variable name="hasIdConstraints">\r
+                  <xsl:if test="$element and ($element/xsd:unique or $element/xsd:key or $element/xsd:keyref)">\r
+                     <xsl:text>true</xsl:text>\r
+                  </xsl:if>\r
+               </xsl:variable>\r
+\r
+               <!-- Print content -->\r
+               <xsl:choose>\r
+                  <!-- Empty content -->\r
+                  <xsl:when test="$hasIdConstraints!='true' and normalize-space($content)=''">\r
+                     <!-- Close start tag -->\r
+                     <xsl:text>/> </xsl:text>\r
+\r
+                     <xsl:if test="$element and local-name($element/..)!='schema'">\r
+                        <!-- Occurrence info -->\r
+                        <xsl:text> </xsl:text>\r
+                        <xsl:call-template name="PrintOccurs">\r
+                           <xsl:with-param name="component" select="$element"/>\r
+                        </xsl:call-template>\r
+\r
+                        <!-- Documentation -->\r
+                        <xsl:call-template name="PrintSampleDocumentation">\r
+                           <xsl:with-param name="component" select="$element"/>\r
+                        </xsl:call-template>\r
+                     </xsl:if>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <!-- Close start tag -->\r
+                     <xsl:text>> </xsl:text>\r
+\r
+                     <xsl:if test="$element and local-name($element/..)!='schema'">\r
+                        <!-- Occurrence info -->\r
+                        <xsl:text> </xsl:text>\r
+                        <xsl:call-template name="PrintOccurs">\r
+                           <xsl:with-param name="component" select="$element"/>\r
+                        </xsl:call-template>\r
+\r
+                        <!-- Documentation -->\r
+                        <xsl:text> </xsl:text>\r
+                        <xsl:call-template name="PrintSampleDocumentation">\r
+                           <xsl:with-param name="component" select="$element"/>\r
+                        </xsl:call-template>\r
+                     </xsl:if>\r
+\r
+                     <!-- Identity Constraints -->\r
+                     <xsl:if test="$element">\r
+                        <xsl:apply-templates select="$element/xsd:unique | $element/xsd:key | $element/xsd:keyref" mode="sample">\r
+                           <xsl:with-param name="margin" select="$ELEM_INDENT"/>\r
+                        </xsl:apply-templates>\r
+                     </xsl:if>\r
+\r
+                     <!-- Print out restriction/extension information -->\r
+                     <xsl:choose>\r
+                        <xsl:when test="false()">\r
+                        <!--<xsl:when test="$type/xsd:complexContent/xsd:restriction/@base">-->\r
+                           <br/><span class="other" style="margin-left: {$ELEM_INDENT}em">\r
+                              <xsl:text>&lt;!-- Restricts : </xsl:text>\r
+                              <xsl:call-template name="PrintTypeRef">\r
+                                 <xsl:with-param name="ref" select="$type/xsd:complexContent/xsd:restriction/@base"/>\r
+                                 <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                              </xsl:call-template>\r
+                              <xsl:text> --></xsl:text>\r
+                           </span>\r
+                        </xsl:when>\r
+                        <xsl:when test="false()">\r
+                        <!--<xsl:when test="$type/xsd:complexContent/xsd:extension/@base">-->\r
+                           <br/><span class="other" style="margin-left: {$ELEM_INDENT}em">\r
+                              <xsl:text>&lt;!-- Extends : </xsl:text>\r
+                              <xsl:call-template name="PrintTypeRef">\r
+                                 <xsl:with-param name="ref" select="$type/xsd:complexContent/xsd:extension/@base"/>\r
+                                 <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                              </xsl:call-template>\r
+                              <xsl:text> --></xsl:text>\r
+                           </span>\r
+                        </xsl:when>\r
+                     </xsl:choose>\r
+\r
+                     <!-- Print out message if has mixed content -->\r
+                     <xsl:if test="$mixed='true'">\r
+                        <br/><span class="other" style="margin-left: {$ELEM_INDENT}em">\r
+                           <xsl:text>&lt;!-- Mixed content --></xsl:text>\r
+                        </span>\r
+                     </xsl:if>\r
+\r
+                     <!-- Element Content -->\r
+                     <xsl:copy-of select="$content"/>\r
+\r
+                     <!-- End Tag -->\r
+                     <xsl:text>&lt;/</xsl:text>\r
+                     <xsl:copy-of select="$tag"/>\r
+                     <xsl:text>></xsl:text>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </div>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out attributes of a complex type definition, including \r
+     those inherited from a base type.\r
+     Param(s):\r
+            type (Node) required\r
+                Complex type definition\r
+            subTypeAttrs (String) optional\r
+                List of attributes in sub-types of this current type \r
+                definition\r
+            isInherited (boolean) optional\r
+                If true, display attributes using 'inherited' CSS class.\r
+            isNewField (boolean) optional\r
+                If true, display attributes using 'newFields' CSS class.\r
+            fromTopCType (boolean) optional\r
+                Set to true if this is being displayed in the XML \r
+                Instance Representation table of a top-level complex \r
+                type definition, in which case, 'inherited' attributes \r
+                and elements are distinguished.\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            schemaLoc (String) optional\r
+                Schema file containing this complex type definition; \r
+                if in current schema, 'schemaLoc' is set to 'this'.\r
+            typeList (String) optional\r
+                List of types in this call chain. Name of type starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+     -->\r
+   <xsl:template name="PrintSampleTypeAttrs">\r
+      <xsl:param name="type"/>\r
+      <xsl:param name="subTypeAttrs"/>\r
+      <xsl:param name="isInherited">false</xsl:param>\r
+      <xsl:param name="isNewField">false</xsl:param>\r
+      <xsl:param name="fromTopCType">false</xsl:param>\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+      <xsl:param name="typeList"/>\r
+\r
+      <xsl:choose>\r
+         <!-- Circular type hierarchy -->\r
+         <xsl:when test="$type/@name and contains($typeList, concat('*', $type/@name, '+'))">\r
+            <!-- Do nothing. \r
+                 Error message will be written out by 'PrintSampleTypeContent' template. \r
+            -->\r
+         </xsl:when>\r
+         <!-- Derivation -->\r
+         <xsl:when test="$type/xsd:complexContent or $type/xsd:simpleContent">\r
+            <xsl:choose>\r
+               <xsl:when test="$type/xsd:complexContent/xsd:restriction">\r
+                  <xsl:call-template name="PrintSampleDerivedTypeAttrs">\r
+                     <xsl:with-param name="derivationElem" select="$type/xsd:complexContent/xsd:restriction"/>\r
+                     <xsl:with-param name="subTypeAttrs" select="$subTypeAttrs"/>\r
+                     <xsl:with-param name="isInherited" select="$isInherited"/>\r
+                     <xsl:with-param name="isNewField" select="$isNewField"/>\r
+                     <xsl:with-param name="fromTopCType" select="$fromTopCType"/>\r
+                     <xsl:with-param name="margin" select="$margin"/>\r
+                     <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                     <xsl:with-param name="typeList" select="concat($typeList, '*', $type/@name, '+')"/>\r
+                  </xsl:call-template>\r
+               </xsl:when>\r
+               <xsl:when test="$type/xsd:simpleContent/xsd:restriction">\r
+                  <xsl:call-template name="PrintSampleDerivedTypeAttrs">\r
+                     <xsl:with-param name="derivationElem" select="$type/xsd:simpleContent/xsd:restriction"/>\r
+                     <xsl:with-param name="subTypeAttrs" select="$subTypeAttrs"/>\r
+                     <xsl:with-param name="isInherited" select="$isInherited"/>\r
+                     <xsl:with-param name="isNewField" select="$isNewField"/>\r
+                     <xsl:with-param name="fromTopCType" select="$fromTopCType"/>\r
+                     <xsl:with-param name="margin" select="$margin"/>\r
+                     <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                     <xsl:with-param name="typeList" select="concat($typeList, '*', $type/@name, '+')"/>\r
+                  </xsl:call-template>\r
+               </xsl:when>\r
+               <xsl:when test="$type/xsd:complexContent/xsd:extension">\r
+                  <xsl:call-template name="PrintSampleDerivedTypeAttrs">\r
+                     <xsl:with-param name="derivationElem" select="$type/xsd:complexContent/xsd:extension"/>\r
+                     <xsl:with-param name="subTypeAttrs" select="$subTypeAttrs"/>\r
+                     <xsl:with-param name="isInherited" select="$isInherited"/>\r
+                     <xsl:with-param name="isNewField" select="$isNewField"/>\r
+                     <xsl:with-param name="fromTopCType" select="$fromTopCType"/>\r
+                     <xsl:with-param name="margin" select="$margin"/>\r
+                     <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                     <xsl:with-param name="typeList" select="concat($typeList, '*', $type/@name, '+')"/>\r
+                  </xsl:call-template>\r
+               </xsl:when>\r
+               <xsl:when test="$type/xsd:simpleContent/xsd:extension">\r
+                  <xsl:call-template name="PrintSampleDerivedTypeAttrs">\r
+                     <xsl:with-param name="derivationElem" select="$type/xsd:simpleContent/xsd:extension"/>\r
+                     <xsl:with-param name="subTypeAttrs" select="$subTypeAttrs"/>\r
+                     <xsl:with-param name="isInherited" select="$isInherited"/>\r
+                     <xsl:with-param name="isNewField" select="$isNewField"/>\r
+                     <xsl:with-param name="fromTopCType" select="$fromTopCType"/>\r
+                     <xsl:with-param name="margin" select="$margin"/>\r
+                     <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                     <xsl:with-param name="typeList" select="concat($typeList, '*', $type/@name, '+')"/>\r
+                  </xsl:call-template>\r
+               </xsl:when>\r
+            </xsl:choose>\r
+         </xsl:when>\r
+         <!-- No derivation -->\r
+         <xsl:when test="local-name($type)='complexType'">\r
+            <xsl:call-template name="PrintSampleAttrList">\r
+               <xsl:with-param name="list" select="$type"/>\r
+               <xsl:with-param name="subTypeAttrs" select="$subTypeAttrs"/>\r
+               <xsl:with-param name="isInherited" select="$isInherited"/>\r
+               <xsl:with-param name="isNewField" select="$isNewField"/>\r
+               <xsl:with-param name="margin" select="$margin"/>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               <xsl:with-param name="typeList" select="concat($typeList, '*', $type/@name, '+')"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <!-- Ignore base types that are simple types -->\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Helper function 'PrintSampleTypeAttrs' template to\r
+     handle case of derived types.\r
+     Param(s):\r
+            derivationElem (Node) required\r
+                'restriction' or 'extension' element\r
+            subTypeAttrs (String) optional\r
+                List of attributes in sub-types of \r
+                this current type definition\r
+            isInherited (boolean) optional\r
+                If true, display attributes using 'inherited' CSS class.\r
+            isNewField (boolean) optional\r
+                If true, display attributes using 'newFields' CSS class.\r
+            fromTopCType (boolean) optional\r
+                Set to true if this is being displayed \r
+                in the XML Instance Representation table \r
+                of a top-level complex type definition, in\r
+                which case, 'inherited' attributes and\r
+                elements are distinguished.\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            schemaLoc (String) optional\r
+                Schema file containing this derivation element; \r
+                if in current schema, 'schemaLoc' is set to 'this'.\r
+            typeList (String) optional\r
+                List of types in this call chain. Name of type starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+     -->\r
+   <xsl:template name="PrintSampleDerivedTypeAttrs">\r
+      <xsl:param name="derivationElem"/>\r
+      <xsl:param name="subTypeAttrs"/>\r
+      <xsl:param name="isInherited">false</xsl:param>\r
+      <xsl:param name="isNewField">false</xsl:param>\r
+      <xsl:param name="fromTopCType">false</xsl:param>\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+      <xsl:param name="typeList"/>\r
+\r
+      <!-- Get attributes from this type to add to \r
+            'subTypeAttrs' list for recursive call on base type -->\r
+      <xsl:variable name="thisAttrs">\r
+         <xsl:call-template name="GetAttrList">\r
+            <xsl:with-param name="list" select="$derivationElem"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <!-- Look for base type -->\r
+      <xsl:variable name="baseTypeName">\r
+         <xsl:call-template name="GetRefName">\r
+            <xsl:with-param name="ref" select="$derivationElem/@base"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+      <xsl:variable name="defLoc">\r
+         <xsl:call-template name="FindComponent">\r
+            <xsl:with-param name="ref" select="$derivationElem/@base"/>\r
+            <xsl:with-param name="compType">complex type</xsl:with-param>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+      <xsl:choose>\r
+         <!-- Complex type was found in current schema. -->\r
+         <xsl:when test="normalize-space($defLoc)='this'">\r
+            <xsl:variable name="ctype" select="key('complexType', $baseTypeName)"/>\r
+            <xsl:call-template name="PrintSampleTypeAttrs">\r
+               <xsl:with-param name="type" select="$ctype"/>\r
+               <xsl:with-param name="subTypeAttrs" select="concat($subTypeAttrs, $thisAttrs)"/>\r
+               <xsl:with-param name="isInherited">\r
+                  <xsl:choose>\r
+                     <xsl:when test="$fromTopCType!='false'">\r
+                        <xsl:text>true</xsl:text>\r
+                     </xsl:when>\r
+                     <xsl:otherwise>\r
+                        <xsl:text>false</xsl:text>\r
+                     </xsl:otherwise>\r
+                  </xsl:choose>\r
+               </xsl:with-param>\r
+               <xsl:with-param name="isNewField" select="$isNewField"/>\r
+               <xsl:with-param name="fromTopCType" select="$fromTopCType"/>\r
+               <xsl:with-param name="margin" select="$margin"/>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               <xsl:with-param name="typeList" select="$typeList"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <!-- Complex type was not found. -->\r
+         <xsl:when test="normalize-space($defLoc)='' or normalize-space($defLoc)='none' or normalize-space($defLoc)='xml' or normalize-space($defLoc)='xsd'">\r
+            <!-- IGNORE: Error message will be printed out be\r
+                 'PrintSampleTypeContent' template. -->\r
+         </xsl:when>\r
+         <!-- Complex type was found in external schema. -->\r
+         <xsl:otherwise>\r
+            <xsl:variable name="ctype" select="document($defLoc)/xsd:schema/xsd:complexType[@name=$baseTypeName]"/>\r
+            <xsl:call-template name="PrintSampleTypeAttrs">\r
+               <xsl:with-param name="type" select="$ctype"/>\r
+               <xsl:with-param name="subTypeAttrs" select="concat($subTypeAttrs, $thisAttrs)"/>\r
+               <xsl:with-param name="isInherited">\r
+                  <xsl:choose>\r
+                     <xsl:when test="$fromTopCType!='false'">\r
+                        <xsl:text>true</xsl:text>\r
+                     </xsl:when>\r
+                     <xsl:otherwise>\r
+                        <xsl:text>false</xsl:text>\r
+                     </xsl:otherwise>\r
+                  </xsl:choose>\r
+               </xsl:with-param>\r
+               <xsl:with-param name="isNewField" select="$isNewField"/>\r
+               <xsl:with-param name="fromTopCType" select="$fromTopCType"/>\r
+               <xsl:with-param name="margin" select="$margin"/>\r
+               <xsl:with-param name="schemaLoc" select="$defLoc"/>\r
+               <xsl:with-param name="typeList" select="$typeList"/>\r
+            </xsl:call-template>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+\r
+      <!-- Print out attributes in this type -->\r
+      <xsl:call-template name="PrintSampleAttrList">\r
+         <xsl:with-param name="list" select="$derivationElem"/>\r
+         <xsl:with-param name="subTypeAttrs" select="$subTypeAttrs"/>\r
+         <xsl:with-param name="isInherited" select="$isInherited"/>\r
+         <xsl:with-param name="isNewField">\r
+            <xsl:choose>\r
+               <xsl:when test="$fromTopCType!='false' and $isInherited='false'">\r
+                  <xsl:text>true</xsl:text>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                  <xsl:text>false</xsl:text>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="margin" select="$margin"/>\r
+         <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Returns the names and namespaces of attributes\r
+     in a list of attributes and attribute groups.\r
+     Param(s):\r
+            list (Node) required\r
+                Node containing list of attributes and attribute groups\r
+     -->\r
+   <xsl:template name="GetAttrList">\r
+      <xsl:param name="list"/>\r
+\r
+      <xsl:if test="$list">\r
+         <xsl:for-each select="$list/xsd:attribute | $list/xsd:attributeGroup | $list/xsd:anyAttribute">\r
+            <xsl:choose>\r
+               <!-- Attribute declaration -->\r
+               <xsl:when test="local-name(.)='attribute' and @name">\r
+                  <!-- Get attribute name -->\r
+                  <xsl:variable name="attrName" select="@name"/>\r
+                  <!-- Get attribute namespace -->\r
+                  <xsl:variable name="attrNS">\r
+                     <xsl:call-template name="GetAttributeNS">\r
+                        <xsl:with-param name="attribute" select="."/>\r
+                     </xsl:call-template>\r
+                  </xsl:variable>\r
+\r
+                  <xsl:value-of select="concat('*', normalize-space($attrNS), '+', normalize-space($attrName), '+')"/>\r
+               </xsl:when>\r
+               <!-- Attribute reference -->\r
+               <xsl:when test="local-name(.)='attribute' and @ref">\r
+                  <!-- Get attribute name -->\r
+                  <xsl:variable name="attrName">\r
+                     <xsl:call-template name="GetRefName">\r
+                        <xsl:with-param name="ref" select="@ref"/>\r
+                     </xsl:call-template>\r
+                  </xsl:variable>\r
+                  <!-- Get attribute namespace -->\r
+                  <xsl:variable name="attrNS">\r
+                     <xsl:call-template name="GetAttributeNS">\r
+                        <xsl:with-param name="attribute" select="."/>\r
+                     </xsl:call-template>\r
+                  </xsl:variable>\r
+\r
+                  <xsl:value-of select="concat('*', normalize-space($attrNS), '+', normalize-space($attrName), '+')"/>\r
+               </xsl:when>\r
+               <!-- Attribute Group reference -->\r
+               <xsl:when test="local-name(.)='attributeGroup' and @ref">\r
+                  <xsl:variable name="attrGrpName">\r
+                     <xsl:call-template name="GetRefName">\r
+                        <xsl:with-param name="ref" select="@ref"/>\r
+                     </xsl:call-template>\r
+                  </xsl:variable>\r
+                  <xsl:call-template name="GetAttrList">\r
+                     <xsl:with-param name="list" select="key('attributeGroup', $attrGrpName)"/>\r
+                  </xsl:call-template>\r
+               </xsl:when>\r
+               <!-- Attribute wildcard -->\r
+               <xsl:when test="local-name(.)='anyAttribute'">\r
+               </xsl:when>\r
+            </xsl:choose>\r
+         </xsl:for-each>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out sample XML instances from a list of attributes and \r
+     attribute groups.\r
+     Param(s):\r
+            list (Node) required\r
+                Node containing list of attributes and attribute groups\r
+            subTypeAttrs (String) optional\r
+                List of attributes in sub-types of \r
+                the type definition containing this list\r
+            isInherited (boolean) optional\r
+                If true, display attributes using 'inherited' CSS class.\r
+            isNewField (boolean) optional\r
+                If true, display attributes using 'newFields' CSS class.\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            schemaLoc (String) optional\r
+                Schema file containing this attribute list; \r
+                if in current schema, 'schemaLoc' is set to 'this'.\r
+     -->\r
+   <xsl:template name="PrintSampleAttrList">\r
+      <xsl:param name="list"/>\r
+      <xsl:param name="subTypeAttrs"/>\r
+      <xsl:param name="isInherited">false</xsl:param>\r
+      <xsl:param name="isNewField">false</xsl:param>\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <xsl:apply-templates select="$list/xsd:attribute | $list/xsd:attributeGroup | $list/xsd:anyAttribute" mode="sample">\r
+         <xsl:with-param name="subTypeAttrs" select="$subTypeAttrs"/>\r
+         <xsl:with-param name="isInherited" select="$isInherited"/>\r
+         <xsl:with-param name="isNewField" select="$isNewField"/>\r
+         <xsl:with-param name="margin" select="$margin"/>\r
+         <xsl:with-param name="addBR">true</xsl:with-param>\r
+         <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+      </xsl:apply-templates>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the element content of a complex type definition,\r
+     including those inherited from a base type.\r
+     Param(s):\r
+            type (Node) required\r
+                Complex type definition\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            isInherited (boolean) optional\r
+                If true, display elements using 'inherited' CSS class.\r
+            isNewField (boolean) optional\r
+                If true, display elements using 'newFields' CSS class.\r
+            fromTopCType (boolean) optional\r
+                Set to true if this is being displayed in the XML \r
+                Instance Representation table of a top-level complex \r
+                type definition, in which case, 'inherited' attributes \r
+                and elements are distinguished.\r
+            addBR (boolean) optional\r
+                If true, can add <br/> before element content.\r
+                Applicable only if displaying complex content.\r
+            schemaLoc (String) optional\r
+                Schema file containing this type definition; \r
+                if in current schema, 'schemaLoc' is set to 'this'.\r
+            typeList (String) optional\r
+                List of types in this call chain. Name of type starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+     -->\r
+   <xsl:template name="PrintSampleTypeContent">\r
+      <xsl:param name="type"/>\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="isInherited">false</xsl:param>\r
+      <xsl:param name="isNewField">false</xsl:param>\r
+      <xsl:param name="fromTopCType">false</xsl:param>\r
+      <xsl:param name="addBR">true</xsl:param>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+      <xsl:param name="typeList"/>\r
+      <xsl:param name="parentGroups"/>\r
+\r
+      <xsl:if test="$addBR='true'"><br/></xsl:if>\r
+\r
+      <xsl:choose>\r
+         <!-- Circular type hierarchy -->\r
+         <xsl:when test="$type/@name and contains($typeList, concat('*', $type/@name, '+'))"/>\r
+         <!-- Derivation by restriction on complex content -->\r
+         <xsl:when test="$type/xsd:complexContent/xsd:restriction">\r
+            <xsl:variable name="restriction" select="$type/xsd:complexContent/xsd:restriction"/>\r
+\r
+            <!-- Test if base type is in schema to print out warning comment-->\r
+            <xsl:variable name="baseTypeName">\r
+               <xsl:call-template name="GetRefName">\r
+                  <xsl:with-param name="ref" select="$restriction/@base"/>\r
+               </xsl:call-template>\r
+            </xsl:variable>\r
+            <!-- Look for base type -->\r
+            <xsl:variable name="defLoc">\r
+               <xsl:call-template name="FindComponent">\r
+                  <xsl:with-param name="ref" select="$restriction/@base"/>\r
+                  <xsl:with-param name="compType">complex type</xsl:with-param>\r
+               </xsl:call-template>\r
+            </xsl:variable>\r
+\r
+            <xsl:choose>\r
+               <!-- Complex type was not found. -->\r
+               <xsl:when test="normalize-space($defLoc)='' or normalize-space($defLoc)='none' or normalize-space($defLoc)='xml' or normalize-space($defLoc)='xsd'">\r
+                  <div class="other" style="margin-left: {$margin}em;">\r
+                     <xsl:text>&lt;!-- '</xsl:text>\r
+                     <xsl:call-template name="PrintTypeRef">\r
+                        <xsl:with-param name="ref" select="$restriction/@base"/>\r
+                        <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                     </xsl:call-template>\r
+                     <xsl:text>' super type was not found in this schema. Some elements and attributes may be missing. --></xsl:text>\r
+                  </div>\r
+               </xsl:when>\r
+               <!-- Complex type was found. -->\r
+               <xsl:otherwise>\r
+                  <!-- IGNORE element content of base type if by restriction,\r
+                       since current content will override restricted\r
+                       base type's content. -->\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+\r
+            <!-- Print out content from this type -->\r
+            <xsl:if test="$restriction/xsd:*[local-name(.)!='annotation']">\r
+               <xsl:call-template name="PrintSampleParticleList">\r
+                  <xsl:with-param name="list" select="$restriction"/>\r
+                  <xsl:with-param name="margin" select="$margin"/>\r
+                  <xsl:with-param name="isInherited" select="$isInherited"/>\r
+                  <xsl:with-param name="isNewField">\r
+                     <xsl:choose>\r
+                        <xsl:when test="$fromTopCType!='false' and $isInherited='false'">\r
+                           <xsl:text>true</xsl:text>\r
+                        </xsl:when>\r
+                        <xsl:otherwise>\r
+                           <xsl:text>false</xsl:text>\r
+                        </xsl:otherwise>\r
+                     </xsl:choose>\r
+                  </xsl:with-param>\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                  <xsl:with-param name="typeList" select="concat($typeList, '*', $type/@name, '+')"/>\r
+                  <xsl:with-param name="parentGroups" select="$parentGroups"/>\r
+               </xsl:call-template>\r
+            </xsl:if>\r
+         </xsl:when>\r
+         <!-- Derivation by extension on complex content -->\r
+         <xsl:when test="$type/xsd:complexContent/xsd:extension">\r
+            <xsl:variable name="extension" select="$type/xsd:complexContent/xsd:extension"/>\r
+\r
+            <xsl:variable name="baseTypeName">\r
+               <xsl:call-template name="GetRefName">\r
+                  <xsl:with-param name="ref" select="$extension/@base"/>\r
+               </xsl:call-template>\r
+            </xsl:variable>\r
+\r
+            <xsl:choose>\r
+               <xsl:when test="contains($typeList, concat('*', $baseTypeName, '+'))">\r
+                  <div class="other" style="margin-left: {$margin}em">\r
+                     <xsl:text>&lt;-- Extends: </xsl:text>\r
+                     <xsl:call-template name="PrintTypeRef">\r
+                        <xsl:with-param name="ref" select="$extension/@base"/>\r
+                        <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                     </xsl:call-template>\r
+                     <xsl:text> (Circular type hierarchy) --&gt;</xsl:text>\r
+                  </div>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                  <!-- Look for base type -->\r
+                  <xsl:variable name="defLoc">\r
+                     <xsl:call-template name="FindComponent">\r
+                        <xsl:with-param name="ref" select="$extension/@base"/>\r
+                        <xsl:with-param name="compType">complex type</xsl:with-param>\r
+                     </xsl:call-template>\r
+                  </xsl:variable>\r
+\r
+                  <xsl:choose>\r
+                     <!-- Complex type was found in current schema. -->\r
+                     <xsl:when test="normalize-space($defLoc)='this'">\r
+                        <xsl:variable name="ctype" select="key('complexType', $baseTypeName)"/>\r
+                        <xsl:call-template name="PrintSampleTypeContent">\r
+                           <xsl:with-param name="type" select="$ctype"/>\r
+                           <xsl:with-param name="margin" select="$margin"/>\r
+                           <xsl:with-param name="isInherited">\r
+                              <xsl:choose>\r
+                                 <xsl:when test="$fromTopCType!='false'">\r
+                                    <xsl:text>true</xsl:text>\r
+                                 </xsl:when>\r
+                                 <xsl:otherwise>\r
+                                    <xsl:text>false</xsl:text>\r
+                                 </xsl:otherwise>\r
+                              </xsl:choose>\r
+                           </xsl:with-param>\r
+                           <xsl:with-param name="isNewField" select="$isNewField"/>\r
+                           <xsl:with-param name="fromTopCType" select="$fromTopCType"/>\r
+                           <xsl:with-param name="addBR">false</xsl:with-param>\r
+                           <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                           <xsl:with-param name="typeList" select="concat($typeList, '*', $type/@name, '+')"/>\r
+                          <xsl:with-param name="parentGroups" select="$parentGroups"/>\r
+                        </xsl:call-template>\r
+                     </xsl:when>\r
+                     <!-- Complex type was not found. -->\r
+                     <xsl:when test="normalize-space($defLoc)='' or normalize-space($defLoc)='none' or normalize-space($defLoc)='xml' or normalize-space($defLoc)='xsd'">\r
+                        <div class="other" style="margin-left: {$margin}em;">\r
+                           <xsl:text>&lt;!-- '</xsl:text>\r
+                           <xsl:call-template name="PrintTypeRef">\r
+                              <xsl:with-param name="ref" select="$extension/@base"/>\r
+                              <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                           </xsl:call-template>\r
+                           <xsl:text>' super type was not found in this schema. Some elements and attributes may be missing. --></xsl:text>\r
+                        </div>\r
+                     </xsl:when>\r
+                     <!-- Complex type was found in external schema. -->\r
+                     <xsl:otherwise>\r
+                        <xsl:variable name="ctype" select="document($defLoc)/xsd:schema/xsd:complexType[@name=$baseTypeName]"/>\r
+                        <xsl:call-template name="PrintSampleTypeContent">\r
+                           <xsl:with-param name="type" select="$ctype"/>\r
+                           <xsl:with-param name="margin" select="$margin"/>\r
+                           <xsl:with-param name="isInherited">\r
+                              <xsl:choose>\r
+                                 <xsl:when test="$fromTopCType!='false'">\r
+                                    <xsl:text>true</xsl:text>\r
+                                 </xsl:when>\r
+                                 <xsl:otherwise>\r
+                                    <xsl:text>false</xsl:text>\r
+                                 </xsl:otherwise>\r
+                              </xsl:choose>\r
+                           </xsl:with-param>\r
+                           <xsl:with-param name="isNewField" select="$isNewField"/>\r
+                           <xsl:with-param name="fromTopCType" select="$fromTopCType"/>\r
+                           <xsl:with-param name="addBR">false</xsl:with-param>\r
+                           <xsl:with-param name="schemaLoc" select="$defLoc"/>\r
+                           <xsl:with-param name="typeList" select="concat($typeList, '*', $type/@name, '+')"/>\r
+                          <xsl:with-param name="parentGroups" select="$parentGroups"/>\r
+                        </xsl:call-template>\r
+                     </xsl:otherwise>\r
+                  </xsl:choose>\r
+\r
+                  <!-- Print out content from this type -->\r
+                  <xsl:if test="$extension/xsd:*[local-name(.)!='annotation']">\r
+                     <xsl:call-template name="PrintSampleParticleList">\r
+                        <xsl:with-param name="list" select="$extension"/>\r
+                        <xsl:with-param name="margin" select="$margin"/>\r
+                        <xsl:with-param name="isInherited" select="$isInherited"/>\r
+                        <xsl:with-param name="isNewField">\r
+                           <xsl:choose>\r
+                              <xsl:when test="$fromTopCType!='false' and $isInherited='false'">\r
+                                 <xsl:text>true</xsl:text>\r
+                              </xsl:when>\r
+                              <xsl:otherwise>\r
+                                 <xsl:text>false</xsl:text>\r
+                              </xsl:otherwise>\r
+                           </xsl:choose>\r
+                        </xsl:with-param>\r
+                        <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                        <xsl:with-param name="typeList" select="concat($typeList, '*', $type/@name, '+')"/>\r
+                       <xsl:with-param name="parentGroups" select="$parentGroups"/>\r
+                     </xsl:call-template>\r
+                  </xsl:if>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+         </xsl:when>\r
+         <!-- Derivation by restriction on simple content -->\r
+         <xsl:when test="$type/xsd:simpleContent/xsd:restriction">\r
+            <!-- Print out simple type constraints-->\r
+            <span style="margin-left: {$margin}em">\r
+               <xsl:text> </xsl:text>\r
+               <xsl:apply-templates select="$type/xsd:simpleContent" mode="sample">\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               </xsl:apply-templates>\r
+               <xsl:text> </xsl:text>\r
+            </span><br/>\r
+         </xsl:when>\r
+         <!-- Derivation by extension on simple content -->\r
+         <xsl:when test="$type/xsd:simpleContent/xsd:extension">\r
+            <!-- Print out base type name -->\r
+            <span style="margin-left: {$margin}em">\r
+               <xsl:text> </xsl:text>\r
+               <xsl:call-template name="PrintTypeRef">\r
+                  <xsl:with-param name="ref" select="$type/xsd:simpleContent/xsd:extension/@base"/>\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               </xsl:call-template>\r
+               <xsl:text> </xsl:text>\r
+            </span><br/>\r
+         </xsl:when>\r
+         <!-- No derivation: complex type definition -->\r
+         <xsl:when test="local-name($type)='complexType'">\r
+            <!-- Print out content from this type -->\r
+            <xsl:call-template name="PrintSampleParticleList">\r
+               <xsl:with-param name="list" select="$type"/>\r
+               <xsl:with-param name="margin" select="$margin"/>\r
+               <xsl:with-param name="isInherited" select="$isInherited"/>\r
+               <xsl:with-param name="isNewField" select="$isNewField"/>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               <xsl:with-param name="typeList" select="concat($typeList, '*', $type/@name, '+')"/>\r
+               <xsl:with-param name="parentGroups" select="$parentGroups"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out sample XML instances from a list of \r
+     element particle.\r
+     Param(s):\r
+            list (Node) required\r
+                Node containing list of element particles\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            isInherited (boolean) optional\r
+                If true, display elements using 'inherited' CSS class.\r
+            isNewField (boolean) optional\r
+                If true, display elements using 'newFields' CSS class.\r
+            schemaLoc (String) optional\r
+                Schema file containing this particle list; \r
+                if in current schema, 'schemaLoc' is set to 'this'.\r
+            typeList (String) optional\r
+                List of types in this call chain. Name of type starts\r
+                with '*', and ends with '+'. (Used to prevent infinite\r
+                recursive loop.)\r
+     -->\r
+   <xsl:template name="PrintSampleParticleList">\r
+      <xsl:param name="list"/>\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="isInherited">false</xsl:param>\r
+      <xsl:param name="isNewField">false</xsl:param>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+      <xsl:param name="typeList"/>\r
+      <xsl:param name="parentGroups"/>\r
+\r
+      <xsl:if test="$list">\r
+         <xsl:apply-templates select="$list/xsd:group | $list/xsd:sequence | $list/xsd:choice | $list/xsd:all | $list/xsd:element" mode="sample">\r
+            <xsl:with-param name="margin" select="$margin"/>\r
+            <xsl:with-param name="isInherited" select="$isInherited"/>\r
+            <xsl:with-param name="isNewField" select="$isNewField"/>\r
+            <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            <xsl:with-param name="typeList" select="$typeList"/>\r
+           <xsl:with-param name="parentGroups" select="$parentGroups"/>\r
+         </xsl:apply-templates>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the constraints of simple content\r
+     to be displayed within a sample XML instance.\r
+     Param(s):\r
+            simpleContent (Node) required\r
+                Node containing with the simple content\r
+            schemaLoc (String) optional\r
+                Schema file containing these simple constraints; \r
+                if in current schema, 'schemaLoc' is set to 'this'.\r
+     -->\r
+   <xsl:template name="PrintSampleSimpleConstraints">\r
+      <xsl:param name="simpleContent"/>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+      <xsl:param name="typeList"/>\r
+\r
+      <xsl:choose>\r
+         <!-- Derivation by restriction -->\r
+         <xsl:when test="$simpleContent/xsd:restriction">\r
+            <xsl:call-template name="PrintSampleSimpleRestriction">\r
+               <xsl:with-param name="restriction" select="$simpleContent/xsd:restriction"/>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               <xsl:with-param name="typeList" select="$typeList"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <!-- Derivation by list -->\r
+         <xsl:when test="$simpleContent/xsd:list">\r
+            <xsl:choose>\r
+               <xsl:when test="$simpleContent/xsd:list/@itemType">\r
+                  <xsl:text>list of: </xsl:text>\r
+                  <xsl:call-template name="PrintTypeRef">\r
+                     <xsl:with-param name="ref" select="$simpleContent/xsd:list/@itemType"/>\r
+                     <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                  </xsl:call-template>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                  <xsl:text>list of: [ </xsl:text>\r
+                  <xsl:call-template name="PrintSampleSimpleConstraints">\r
+                     <xsl:with-param name="simpleContent" select="$simpleContent/xsd:list/xsd:simpleType"/>\r
+                     <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+                  </xsl:call-template>\r
+                  <xsl:text> ]</xsl:text>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+         </xsl:when>\r
+         <!-- Derivation by union -->\r
+         <xsl:when test="$simpleContent/xsd:union">\r
+            <xsl:text>union of: [ </xsl:text>\r
+\r
+            <xsl:variable name="hasMemberTypes">\r
+               <xsl:if test="normalize-space($simpleContent/xsd:union/@memberTypes)!=''">\r
+                  <xsl:text>true</xsl:text>\r
+               </xsl:if>\r
+            </xsl:variable>\r
+            <xsl:if test="$hasMemberTypes='true'">\r
+               <xsl:call-template name="PrintWhitespaceList">\r
+                  <xsl:with-param name="value" select="$simpleContent/xsd:union/@memberTypes"/>\r
+                  <xsl:with-param name="compType">type</xsl:with-param>\r
+                  <xsl:with-param name="separator">,</xsl:with-param>\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               </xsl:call-template>\r
+            </xsl:if>\r
+            <xsl:for-each select="$simpleContent/xsd:union/xsd:simpleType">\r
+               <xsl:if test="position()!=1 or $hasMemberTypes='true'">\r
+                  <xsl:text>, </xsl:text>\r
+               </xsl:if>\r
+               <xsl:text>[ </xsl:text>\r
+               <xsl:call-template name="PrintSampleSimpleConstraints">\r
+                  <xsl:with-param name="simpleContent" select="."/>\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               </xsl:call-template>\r
+               <xsl:text> ]</xsl:text>\r
+            </xsl:for-each>\r
+\r
+            <xsl:text> ]</xsl:text>\r
+         </xsl:when>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the constraints of simple content\r
+     derived by restriction, which is to be displayed \r
+     within a sample XML instance.\r
+     Param(s):\r
+            restriction (Node) required\r
+                Node containing with the restriction\r
+            schemaLoc (String) optional\r
+                Schema file containing this restriction element; \r
+                if in current schema, 'schemaLoc' is set to 'this'.\r
+     -->\r
+   <xsl:template name="PrintSampleSimpleRestriction">\r
+      <xsl:param name="restriction"/>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+      <xsl:param name="typeList"/>\r
+\r
+      <xsl:variable name="typeName" select="$restriction/parent::xsd:simpleType/@name"/>\r
+\r
+      <!-- Print out base type info -->\r
+      <xsl:choose>\r
+         <!-- Circular type hierarchy -->\r
+         <xsl:when test="$typeName != '' and contains($typeList, concat('*', $typeName, '+'))">\r
+            <xsl:call-template name="HandleError">\r
+               <xsl:with-param name="isTerminating">false</xsl:with-param>\r
+               <xsl:with-param name="errorMsg">\r
+                  <xsl:text>Circular type reference to '</xsl:text>\r
+                  <xsl:value-of select="$typeName"/>\r
+                  <xsl:text>' in type hierarchy.</xsl:text>\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <!-- Locally-defined base type -->\r
+         <xsl:when test="$restriction/xsd:simpleType">\r
+            <xsl:call-template name="PrintSampleSimpleConstraints">\r
+               <xsl:with-param name="simpleContent" select="$restriction/xsd:simpleType"/>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               <xsl:with-param name="typeList" select="$typeList"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <!-- Base type reference -->\r
+         <xsl:when test="$restriction">\r
+            <xsl:variable name="baseTypeRef" select="$restriction/@base"/>\r
+            <xsl:variable name="baseTypeName">\r
+               <xsl:call-template name="GetRefName">\r
+                  <xsl:with-param name="ref" select="$baseTypeRef"/>\r
+               </xsl:call-template>\r
+            </xsl:variable>\r
+            <xsl:variable name="baseTypeNS">\r
+               <xsl:call-template name="GetRefNS">\r
+                  <xsl:with-param name="ref" select="$baseTypeRef"/>\r
+               </xsl:call-template>\r
+            </xsl:variable>\r
+            <!-- Write out reference to base type -->\r
+            <xsl:call-template name="PrintTypeRef">\r
+               <xsl:with-param name="ref" select="$baseTypeRef"/>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+      </xsl:choose>\r
+\r
+      <!-- Regular Expression Pattern -->\r
+      <xsl:variable name="pattern">\r
+         <xsl:call-template name="PrintPatternFacet">\r
+            <xsl:with-param name="simpleRestrict" select="$restriction"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+      <!-- Range -->\r
+      <xsl:variable name="range">\r
+         <xsl:call-template name="PrintRangeFacets">\r
+            <xsl:with-param name="simpleRestrict" select="$restriction"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+      <!-- Length -->\r
+      <xsl:variable name="length">\r
+         <xsl:call-template name="PrintLengthFacets">\r
+            <xsl:with-param name="simpleRestrict" select="$restriction"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <!-- Print out facets -->\r
+      <xsl:if test="$restriction/xsd:enumeration">\r
+         <xsl:text> (</xsl:text>\r
+         <xsl:call-template name="PrintEnumFacets">\r
+            <xsl:with-param name="simpleRestrict" select="$restriction"/>\r
+         </xsl:call-template>\r
+         <xsl:text>)</xsl:text>\r
+      </xsl:if>\r
+      <xsl:if test="$pattern !=''">\r
+         <xsl:text> (</xsl:text>\r
+         <xsl:copy-of select="$pattern"/>\r
+         <xsl:text>)</xsl:text>\r
+      </xsl:if>\r
+      <xsl:if test="$range !=''">\r
+         <xsl:text> (</xsl:text>\r
+         <xsl:copy-of select="$range"/>\r
+         <xsl:text>)</xsl:text>\r
+      </xsl:if>\r
+      <xsl:if test="$restriction/xsd:totalDigits">\r
+         <xsl:text> (</xsl:text>\r
+         <xsl:call-template name="PrintTotalDigitsFacet">\r
+            <xsl:with-param name="simpleRestrict" select="$restriction"/>\r
+         </xsl:call-template>\r
+         <xsl:text>)</xsl:text>\r
+      </xsl:if>\r
+      <xsl:if test="$restriction/xsd:fractionDigits">\r
+         <xsl:text> (</xsl:text>\r
+         <xsl:call-template name="PrintFractionDigitsFacet">\r
+            <xsl:with-param name="simpleRestrict" select="$restriction"/>\r
+         </xsl:call-template>\r
+         <xsl:text>)</xsl:text>\r
+      </xsl:if>\r
+      <xsl:if test="$length !=''">\r
+         <xsl:text> (</xsl:text>\r
+         <xsl:copy-of select="$length"/>\r
+         <xsl:text>)</xsl:text>\r
+      </xsl:if>\r
+      <xsl:if test="$restriction/xsd:whiteSpace">\r
+         <xsl:text> (</xsl:text>\r
+         <xsl:call-template name="PrintWhitespaceFacet">\r
+            <xsl:with-param name="simpleRestrict" select="$restriction"/>\r
+         </xsl:call-template>\r
+         <xsl:text>)</xsl:text>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!-- ******** Schema Component Representation table ******** -->\r
+\r
+   <!-- \r
+     Prints out the Schema Component Representation table \r
+     for a top-level schema component. \r
+     Param(s):\r
+            component (Node) required\r
+              Top-level schema component\r
+     -->\r
+   <xsl:template name="SchemaComponentTable">\r
+      <xsl:param name="component"/>\r
+\r
+      <xsl:variable name="componentID">\r
+         <xsl:call-template name="GetComponentID">\r
+            <xsl:with-param name="component" select="$component"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <xsl:call-template name="CollapseableBox">\r
+         <xsl:with-param name="id" select="concat($componentID, '_scbox')"/>\r
+         <xsl:with-param name="styleClass">schemaComponent</xsl:with-param>\r
+         <xsl:with-param name="caption">Schema Component Representation</xsl:with-param>\r
+         <xsl:with-param name="contents">\r
+            <xsl:apply-templates select="$component" mode="schemaComponent"/>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="isOpened">false</xsl:with-param>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out schema component representation of \r
+     declarations.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+     -->\r
+   <xsl:template match="xsd:attribute[@name] | xsd:element[@name]" mode="schemaComponent">\r
+      <xsl:param name="margin">0</xsl:param>\r
+\r
+      <xsl:call-template name="DisplaySchemaComponent">\r
+         <xsl:with-param name="component" select="."/>\r
+         <xsl:with-param name="margin" select="$margin"/>\r
+         <xsl:with-param name="attributes">\r
+            <!-- Attribute: name -->\r
+            <xsl:call-template name="DisplayAttr">\r
+               <xsl:with-param name="attrName">name</xsl:with-param>\r
+               <xsl:with-param name="attrValue" select="normalize-space(@name)"/>\r
+            </xsl:call-template>\r
+            <!-- Attribute: type -->\r
+            <xsl:if test="@type">\r
+               <xsl:call-template name="DisplayAttr">\r
+                  <xsl:with-param name="attrName">type</xsl:with-param>\r
+                  <xsl:with-param name="attrValue">\r
+                     <xsl:call-template name="PrintTypeRef">\r
+                        <xsl:with-param name="ref" select="normalize-space(@type)"/>\r
+                     </xsl:call-template>\r
+                  </xsl:with-param>\r
+               </xsl:call-template>\r
+            </xsl:if>\r
+            <!-- Other attributes -->\r
+            <xsl:call-template name="DisplayOtherAttributes">\r
+               <xsl:with-param name="component" select="."/>\r
+               <xsl:with-param name="attrsNotToDisplay">*name+*type+</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="excludeFilter">*annotation+</xsl:with-param>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out schema component representation of \r
+     definitions and key/uniqueness constraints.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+     -->\r
+   <xsl:template match="xsd:attributeGroup[@name] | xsd:complexType[@name] | xsd:simpleType[@name] | xsd:group[@name] | xsd:key | xsd:unique" mode="schemaComponent">\r
+      <xsl:param name="margin">0</xsl:param>\r
+\r
+      <xsl:call-template name="DisplaySchemaComponent">\r
+         <xsl:with-param name="component" select="."/>\r
+         <xsl:with-param name="margin" select="$margin"/>\r
+         <xsl:with-param name="attributes">\r
+            <!-- Attribute: name -->\r
+            <xsl:call-template name="DisplayAttr">\r
+               <xsl:with-param name="attrName">name</xsl:with-param>\r
+               <xsl:with-param name="attrValue" select="normalize-space(@name)"/>\r
+            </xsl:call-template>\r
+            <!-- Other attributes -->\r
+            <xsl:call-template name="DisplayOtherAttributes">\r
+               <xsl:with-param name="component" select="."/>\r
+               <xsl:with-param name="attrsNotToDisplay">*name+</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="excludeFilter">*annotation+</xsl:with-param>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out schema component representation of attribute\r
+     references.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+     -->\r
+   <xsl:template match="xsd:attribute[@ref]" mode="schemaComponent">\r
+      <xsl:param name="margin">0</xsl:param>\r
+\r
+      <xsl:call-template name="DisplaySchemaComponent">\r
+         <xsl:with-param name="component" select="."/>\r
+         <xsl:with-param name="margin" select="$margin"/>\r
+         <xsl:with-param name="attributes">\r
+            <!-- Attribute: ref -->\r
+            <xsl:call-template name="DisplayAttr">\r
+               <xsl:with-param name="attrName">ref</xsl:with-param>\r
+               <xsl:with-param name="attrValue">\r
+                  <xsl:call-template name="PrintAttributeRef">\r
+                     <xsl:with-param name="ref" select="normalize-space(@ref)"/>\r
+                  </xsl:call-template>\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+            <!-- Other attributes -->\r
+            <xsl:call-template name="DisplayOtherAttributes">\r
+               <xsl:with-param name="component" select="."/>\r
+               <xsl:with-param name="attrsNotToDisplay">*ref+</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="excludeFilter">*annotation+</xsl:with-param>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out schema component representation of attribute group\r
+     references.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+     -->\r
+   <xsl:template match="xsd:attributeGroup[@ref]" mode="schemaComponent">\r
+      <xsl:param name="margin">0</xsl:param>\r
+\r
+      <xsl:call-template name="DisplaySchemaComponent">\r
+         <xsl:with-param name="component" select="."/>\r
+         <xsl:with-param name="margin" select="$margin"/>\r
+         <xsl:with-param name="attributes">\r
+            <!-- Attribute: ref -->\r
+            <xsl:call-template name="DisplayAttr">\r
+               <xsl:with-param name="attrName">ref</xsl:with-param>\r
+               <xsl:with-param name="attrValue">\r
+                  <xsl:call-template name="PrintAttributeGroupRef">\r
+                     <xsl:with-param name="ref" select="normalize-space(@ref)"/>\r
+                  </xsl:call-template>\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+            <!-- Other attributes -->\r
+            <xsl:call-template name="DisplayOtherAttributes">\r
+               <xsl:with-param name="component" select="."/>\r
+               <xsl:with-param name="attrsNotToDisplay">*ref+</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="excludeFilter">*annotation+</xsl:with-param>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out schema component representation of element \r
+     references.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+     -->\r
+   <xsl:template match="xsd:element[@ref]" mode="schemaComponent">\r
+      <xsl:param name="margin">0</xsl:param>\r
+\r
+      <xsl:call-template name="DisplaySchemaComponent">\r
+         <xsl:with-param name="component" select="."/>\r
+         <xsl:with-param name="margin" select="$margin"/>\r
+         <xsl:with-param name="attributes">\r
+            <!-- Attribute: ref -->\r
+            <xsl:call-template name="DisplayAttr">\r
+               <xsl:with-param name="attrName">ref</xsl:with-param>\r
+               <xsl:with-param name="attrValue">\r
+                  <xsl:call-template name="PrintElementRef">\r
+                     <xsl:with-param name="ref" select="normalize-space(@ref)"/>\r
+                  </xsl:call-template>\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+            <!-- Other attributes -->\r
+            <xsl:call-template name="DisplayOtherAttributes">\r
+               <xsl:with-param name="component" select="."/>\r
+               <xsl:with-param name="attrsNotToDisplay">*ref+</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="excludeFilter">*annotation+</xsl:with-param>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out schema component representation of model group\r
+     references.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+     -->\r
+   <xsl:template match="xsd:group[@ref]" mode="schemaComponent">\r
+      <xsl:param name="margin">0</xsl:param>\r
+\r
+      <xsl:call-template name="DisplaySchemaComponent">\r
+         <xsl:with-param name="component" select="."/>\r
+         <xsl:with-param name="margin" select="$margin"/>\r
+         <xsl:with-param name="attributes">\r
+            <!-- Attribute: ref -->\r
+            <xsl:call-template name="DisplayAttr">\r
+               <xsl:with-param name="attrName">ref</xsl:with-param>\r
+               <xsl:with-param name="attrValue">\r
+                  <xsl:call-template name="PrintGroupRef">\r
+                     <xsl:with-param name="ref" select="normalize-space(@ref)"/>\r
+                  </xsl:call-template>\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+            <!-- Other attributes -->\r
+            <xsl:call-template name="DisplayOtherAttributes">\r
+               <xsl:with-param name="component" select="."/>\r
+               <xsl:with-param name="attrsNotToDisplay">*ref+</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="excludeFilter">*annotation+</xsl:with-param>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out schema component representation of \r
+     'appinfo' and 'documentation' elements.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+     -->\r
+   <xsl:template match="xsd:appinfo | xsd:documentation" mode="schemaComponent">\r
+      <xsl:param name="margin">0</xsl:param>\r
+\r
+      <xsl:call-template name="DisplaySchemaComponent">\r
+         <xsl:with-param name="component" select="."/>\r
+         <xsl:with-param name="margin" select="$margin"/>\r
+         <xsl:with-param name="attributes">\r
+            <!-- Attribute: source -->\r
+            <xsl:if test="@source">\r
+               <xsl:call-template name="DisplayAttr">\r
+                  <xsl:with-param name="attrName">source</xsl:with-param>\r
+                  <xsl:with-param name="attrValue">\r
+                     <xsl:call-template name="PrintURI">\r
+                        <xsl:with-param name="uri" select="normalize-space(@source)"/>\r
+                     </xsl:call-template>\r
+                  </xsl:with-param>\r
+               </xsl:call-template>\r
+            </xsl:if>\r
+            <!-- Other attributes -->\r
+            <xsl:call-template name="DisplayOtherAttributes">\r
+               <xsl:with-param name="component" select="."/>\r
+               <xsl:with-param name="attrsNotToDisplay">*source+</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="hasAnyContent">true</xsl:with-param>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out schema component representation of \r
+     key reference constraints.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+     -->\r
+   <xsl:template match="xsd:keyref" mode="schemaComponent">\r
+      <xsl:param name="margin">0</xsl:param>\r
+\r
+      <xsl:call-template name="DisplaySchemaComponent">\r
+         <xsl:with-param name="component" select="."/>\r
+         <xsl:with-param name="margin" select="$margin"/>\r
+         <xsl:with-param name="attributes">\r
+            <!-- Attribute: name -->\r
+            <xsl:call-template name="DisplayAttr">\r
+               <xsl:with-param name="attrName">name</xsl:with-param>\r
+               <xsl:with-param name="attrValue" select="normalize-space(@name)"/>\r
+            </xsl:call-template>\r
+            <!-- Attribute: refers -->\r
+            <xsl:call-template name="DisplayAttr">\r
+               <xsl:with-param name="attrName">refer</xsl:with-param>\r
+               <xsl:with-param name="attrValue">\r
+                  <xsl:call-template name="PrintKeyRef">\r
+                     <xsl:with-param name="ref">\r
+                        <xsl:value-of select="normalize-space(@refer)"/>\r
+                     </xsl:with-param>\r
+                  </xsl:call-template>\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+            <!-- Other attributes -->\r
+            <xsl:call-template name="DisplayOtherAttributes">\r
+               <xsl:with-param name="component" select="."/>\r
+               <xsl:with-param name="attrsNotToDisplay">*name+*refer+</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="excludeFilter">*annotation+</xsl:with-param>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out schema component representation of \r
+     derivations by extension and restrictions.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+     -->\r
+   <xsl:template match="xsd:extension | xsd:restriction" mode="schemaComponent">\r
+      <xsl:param name="margin">0</xsl:param>\r
+\r
+      <xsl:call-template name="DisplaySchemaComponent">\r
+         <xsl:with-param name="component" select="."/>\r
+         <xsl:with-param name="margin" select="$margin"/>\r
+         <xsl:with-param name="attributes">\r
+            <!-- Attribute: base -->\r
+            <xsl:if test="@base">\r
+               <xsl:call-template name="DisplayAttr">\r
+                  <xsl:with-param name="attrName">base</xsl:with-param>\r
+                  <xsl:with-param name="attrValue">\r
+                     <xsl:call-template name="PrintTypeRef">\r
+                        <xsl:with-param name="ref" select="normalize-space(@base)"/>\r
+                     </xsl:call-template>\r
+                  </xsl:with-param>\r
+               </xsl:call-template>\r
+            </xsl:if>\r
+            <!-- Other attributes -->\r
+            <xsl:call-template name="DisplayOtherAttributes">\r
+               <xsl:with-param name="component" select="."/>\r
+               <xsl:with-param name="attrsNotToDisplay">*base+</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="excludeFilter">*annotation+</xsl:with-param>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out schema component representation of \r
+     derivations by list.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+     -->\r
+   <xsl:template match="xsd:list" mode="schemaComponent">\r
+      <xsl:param name="margin">0</xsl:param>\r
+\r
+      <xsl:call-template name="DisplaySchemaComponent">\r
+         <xsl:with-param name="component" select="."/>\r
+         <xsl:with-param name="margin" select="$margin"/>\r
+         <xsl:with-param name="attributes">\r
+            <!-- Attribute: itemType-->\r
+            <xsl:if test="@itemType">\r
+               <xsl:call-template name="DisplayAttr">\r
+                  <xsl:with-param name="attrName">itemType</xsl:with-param>\r
+                  <xsl:with-param name="attrValue">\r
+                     <xsl:call-template name="PrintTypeRef">\r
+                        <xsl:with-param name="ref" select="normalize-space(@itemType)"/>\r
+                     </xsl:call-template>\r
+                  </xsl:with-param>\r
+               </xsl:call-template>\r
+            </xsl:if>\r
+            <!-- Other attributes -->\r
+            <xsl:call-template name="DisplayOtherAttributes">\r
+               <xsl:with-param name="component" select="."/>\r
+               <xsl:with-param name="attrsNotToDisplay">*itemType+</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="excludeFilter">*annotation+</xsl:with-param>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out schema component representation of \r
+     derivations by union.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+     -->\r
+   <xsl:template match="xsd:union" mode="schemaComponent">\r
+      <xsl:param name="margin">0</xsl:param>\r
+\r
+      <xsl:call-template name="DisplaySchemaComponent">\r
+         <xsl:with-param name="component" select="."/>\r
+         <xsl:with-param name="margin" select="$margin"/>\r
+         <xsl:with-param name="attributes">\r
+            <!-- Attribute: memberTypes-->\r
+            <xsl:if test="@memberTypes">\r
+               <xsl:call-template name="DisplayAttr">\r
+                  <xsl:with-param name="attrName">memberTypes</xsl:with-param>\r
+                  <xsl:with-param name="attrValue">\r
+                     <xsl:call-template name="PrintWhitespaceList">\r
+                        <xsl:with-param name="value" select="normalize-space(@memberTypes)"/>\r
+                        <xsl:with-param name="compType">type</xsl:with-param>\r
+                     </xsl:call-template>\r
+                  </xsl:with-param>\r
+               </xsl:call-template>\r
+            </xsl:if>\r
+            <!-- Other attributes -->\r
+            <xsl:call-template name="DisplayOtherAttributes">\r
+               <xsl:with-param name="component" select="."/>\r
+               <xsl:with-param name="attrsNotToDisplay">*memberTypes+</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="excludeFilter">*annotation+</xsl:with-param>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out schema component representation of \r
+     the root schema element.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+     -->\r
+   <xsl:template match="xsd:schema" mode="schemaComponent">\r
+      <xsl:param name="margin">0</xsl:param>\r
+\r
+      <xsl:call-template name="DisplaySchemaComponent">\r
+         <xsl:with-param name="component" select="."/>\r
+         <xsl:with-param name="margin" select="$margin"/>\r
+         <xsl:with-param name="attributes">\r
+            <!-- Attribute: source -->\r
+            <xsl:if test="@xml:lang">\r
+               <xsl:call-template name="DisplayAttr">\r
+                  <xsl:with-param name="attrName">xml:lang</xsl:with-param>\r
+                  <xsl:with-param name="attrValue" select="normalize-space(@xml:lang)"/>\r
+               </xsl:call-template>\r
+            </xsl:if>\r
+            <!-- Other attributes -->\r
+            <xsl:call-template name="DisplayOtherAttributes">\r
+               <xsl:with-param name="component" select="."/>\r
+               <xsl:with-param name="attrsNotToDisplay">*lang+</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="includeFilter">*include+*import+*redefine+</xsl:with-param>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Default way to print out schema component representation.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+     -->\r
+   <xsl:template match="*" mode="schemaComponent">\r
+      <xsl:param name="margin">0</xsl:param>\r
+\r
+      <xsl:call-template name="DisplaySchemaComponent">\r
+         <xsl:with-param name="component" select="."/>\r
+         <xsl:with-param name="margin" select="$margin"/>\r
+         <xsl:with-param name="attributes">\r
+            <xsl:call-template name="DisplayOtherAttributes">\r
+               <xsl:with-param name="component" select="."/>\r
+            </xsl:call-template>\r
+         </xsl:with-param>\r
+         <xsl:with-param name="excludeFilter">*annotation+</xsl:with-param>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out comments in schema component representation.\r
+     Param(s):\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+     -->\r
+   <xsl:template match="comment()" mode="schemaComponent">\r
+      <xsl:param name="margin">0</xsl:param>\r
+\r
+      <div class="comment" style="margin-left: {$margin}em">\r
+         <xsl:text>&lt;--</xsl:text>\r
+         <xsl:value-of select="."/>\r
+         <xsl:text>--&gt;</xsl:text>\r
+      </div>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Displays a schema element in the correct format\r
+     for the Schema Component Representation table, e.g.\r
+     tags are one color, and content are another.\r
+     Param(s):\r
+            component (Node) required\r
+                Schema element to be displayed\r
+            attributes (Result Tree Fragment) optional\r
+                Pre-formatted attributes of schema element\r
+            margin (nonNegativeInteger) optional\r
+                Number of 'em' to indent from left\r
+            hasAnyContent (boolean) optional\r
+                Set to true if schema element can accept \r
+                child elements from namespaces other than\r
+                the schema namespace, e.g. 'documentation'\r
+                and 'appinfo'\r
+            includeFilter (String) optional\r
+                List of element names, sandwiched between the\r
+                characters, '*' and '+'. If specified, only the\r
+                child elements of the component with tags in \r
+                the list will be displayed.\r
+            excludeFilter (String) optional\r
+                List of element names, sandwiched between the\r
+                characters, '*' and '+'. If specified, display\r
+                all child elements of the component, except\r
+                those with tags in the list.\r
+     -->\r
+   <xsl:template name="DisplaySchemaComponent">\r
+      <xsl:param name="component"/>\r
+      <xsl:param name="attributes"/>\r
+      <xsl:param name="margin">0</xsl:param>\r
+      <xsl:param name="hasAnyContent">false</xsl:param>\r
+      <xsl:param name="includeFilter"/>\r
+      <xsl:param name="excludeFilter"/>\r
+\r
+      <xsl:variable name="tag">\r
+         <xsl:call-template name="PrintNSPrefix">\r
+            <xsl:with-param name="prefix">\r
+               <xsl:call-template name="GetXSDPrefix"/>\r
+            </xsl:with-param>\r
+            <xsl:with-param name="nolink">true</xsl:with-param>\r
+         </xsl:call-template>\r
+         <xsl:value-of select="local-name($component)"/>\r
+      </xsl:variable>\r
+\r
+      <div style="margin-left: {$margin}em">\r
+         <!-- Start Tag -->\r
+         <xsl:text>&lt;</xsl:text>\r
+         <span class="scTag">\r
+            <xsl:copy-of select="$tag"/>\r
+         </span>\r
+         <!-- Attributes -->\r
+         <xsl:copy-of select="$attributes"/>\r
+         <!-- Content -->\r
+         <xsl:variable name="content">\r
+            <xsl:choose>\r
+               <!-- Include filter is on -->\r
+               <xsl:when test="$includeFilter!=''">\r
+                  <xsl:apply-templates select="$component/xsd:*[contains($includeFilter, concat('*', local-name(.), '+'))]" mode="schemaComponent">\r
+                     <xsl:with-param name="margin" select="$ELEM_INDENT"/>\r
+                  </xsl:apply-templates>\r
+                  <div class="scContent" style="margin-left: {$ELEM_INDENT}em">...</div>\r
+               </xsl:when>\r
+               <!-- Exclude filter is on -->\r
+               <xsl:when test="$excludeFilter!=''">\r
+                  <xsl:apply-templates select="comment() | $component/xsd:*[not(contains($excludeFilter, concat('*', local-name(.), '+')))]" mode="schemaComponent">\r
+                     <xsl:with-param name="margin" select="$ELEM_INDENT"/>\r
+                  </xsl:apply-templates>\r
+               </xsl:when>\r
+               <!-- Permits any content -->\r
+               <xsl:when test="$hasAnyContent='true'">\r
+                  <div class="scContent" style="margin-left: {$ELEM_INDENT}em">\r
+                     <xsl:apply-templates select="comment() | $component/* | $component/text()" mode="xpp"/>\r
+                  </div>\r
+               </xsl:when>\r
+               <!-- Contains schema elements -->\r
+               <xsl:otherwise>\r
+                  <xsl:apply-templates select="comment() | $component/xsd:*" mode="schemaComponent">\r
+                     <xsl:with-param name="margin" select="$ELEM_INDENT"/>\r
+                  </xsl:apply-templates>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+         </xsl:variable>\r
+\r
+         <xsl:choose>\r
+            <!-- Has content -->\r
+            <xsl:when test="normalize-space($content)!=''">\r
+               <!-- End of start tag -->\r
+               <xsl:text>></xsl:text>\r
+\r
+               <!-- Content -->\r
+               <xsl:copy-of select="$content"/>\r
+\r
+               <!-- End Tag -->\r
+               <xsl:text>&lt;/</xsl:text>\r
+               <span class="scTag">\r
+                  <xsl:copy-of select="$tag"/>\r
+               </span>\r
+               <xsl:text>></xsl:text>\r
+            </xsl:when>\r
+            <!-- Empty content -->\r
+            <xsl:otherwise>\r
+               <!-- End of start tag -->\r
+               <xsl:text>/></xsl:text>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+      </div>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Displays a schema attribute in the correct format\r
+     for the Schema Component Representation table, e.g.\r
+     tags are one color, and content are another.\r
+     Param(s):\r
+            attrName (String) required\r
+                Name of attribute\r
+            attrValue (Result Tree Fragment) required\r
+                Value of attribute, which may be links\r
+     -->\r
+   <xsl:template name="DisplayAttr">\r
+      <xsl:param name="attrName"/>\r
+      <xsl:param name="attrValue"/>\r
+\r
+      <xsl:text> </xsl:text>\r
+      <span class="scTag">\r
+         <xsl:value-of select="$attrName"/>\r
+      </span>\r
+      <xsl:text>="</xsl:text>\r
+      <xsl:if test="normalize-space($attrValue)!=''">\r
+         <span class="scContent">\r
+            <xsl:copy-of select="$attrValue"/>\r
+         </span>\r
+      </xsl:if>\r
+      <xsl:text>"</xsl:text>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Displays attributes from a schema element, unless\r
+     otherwise specified, in the correct format\r
+     for the Schema Component Representation table, e.g.\r
+     tags are one color, and content are another.\r
+     Param(s):\r
+            component (Node) required\r
+                Schema element whose attributes are to be displayed\r
+            attrsNotToDisplay (String) required\r
+                List of attributes not to be displayed\r
+                Each attribute name should prepended with '*'\r
+                and appended with '+'\r
+     -->\r
+   <xsl:template name="DisplayOtherAttributes">\r
+      <xsl:param name="component"/>\r
+      <xsl:param name="attrsNotToDisplay"/>\r
+\r
+      <xsl:for-each select="$component/attribute::*">\r
+         <xsl:variable name="attrName" select="local-name(.)"/>\r
+         <xsl:if test="not(contains($attrsNotToDisplay, concat('*', $attrName, '+')))">\r
+            <xsl:call-template name="DisplayAttr">\r
+               <xsl:with-param name="attrName" select="normalize-space($attrName)"/>\r
+               <xsl:with-param name="attrValue" select="normalize-space(.)"/>\r
+            </xsl:call-template>\r
+         </xsl:if>\r
+      </xsl:for-each>\r
+   </xsl:template>\r
+\r
+\r
+   <!-- ******** XML Pretty Printer ******** -->\r
+\r
+   <!--\r
+     Puts XHTML elements into the result.\r
+     -->\r
+   <xsl:template match="html:*" mode="html">\r
+      <xsl:element name="{local-name(.)}">\r
+         <xsl:for-each select="@*">\r
+            <xsl:copy-of select="."/>\r
+         </xsl:for-each>\r
+         <xsl:apply-templates select="* | text()" mode="html"/>\r
+      </xsl:element>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Displays non-XHTML elements found within XHTML elements.\r
+     -->\r
+   <xsl:template match="*" mode="html">\r
+      <xsl:call-template name="WriteElement">\r
+         <xsl:with-param name="element" select="."/>\r
+         <xsl:with-param name="mode">html</xsl:with-param>\r
+      </xsl:call-template>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Displays text node.\r
+     -->\r
+   <xsl:template match="text()" mode="html">\r
+      <xsl:value-of select="."/>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Displays an arbitrary XML element.\r
+     -->\r
+   <xsl:template match="*" mode="xpp">\r
+      <code>\r
+         <xsl:call-template name="WriteElement">\r
+            <xsl:with-param name="element" select="."/>\r
+            <xsl:with-param name="mode">xpp</xsl:with-param>\r
+         </xsl:call-template>\r
+      </code>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Displays an arbitrary XML text node.\r
+     -->\r
+   <xsl:template match="text()" mode="xpp">\r
+      <xsl:value-of select="."/>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Displays an XML comment.\r
+     -->\r
+   <xsl:template match="comment()" mode="xpp">\r
+      <div class="comment">\r
+         <xsl:text>&lt;--</xsl:text>\r
+         <xsl:value-of select="."/>\r
+         <xsl:text>--&gt;</xsl:text>\r
+      </div>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Displays an XML element in the documentation, e.g.\r
+     tags are escaped.\r
+     Param(s):\r
+            element (Node) required\r
+                XML element to display\r
+            mode (xpp|html) required\r
+                Which mode to invoke for child elements\r
+     -->\r
+   <xsl:template name="WriteElement">\r
+      <xsl:param name="element"/>\r
+      <xsl:param name="mode">xpp</xsl:param>\r
+\r
+      <!-- Start Tag -->\r
+      <xsl:text>&lt;</xsl:text>\r
+      <xsl:call-template name="PrintNSPrefix">\r
+         <xsl:with-param name="prefix">\r
+            <xsl:call-template name="GetRefPrefix">\r
+               <xsl:with-param name="ref" select="name($element)"/>\r
+            </xsl:call-template>\r
+         </xsl:with-param>\r
+      </xsl:call-template>\r
+      <xsl:value-of select="local-name($element)"/>\r
+      <!-- Attributes -->\r
+      <xsl:for-each select="$element/@*">\r
+         <xsl:text> </xsl:text>\r
+         <xsl:value-of select="name(.)"/>\r
+         <xsl:text>="</xsl:text>\r
+         <xsl:value-of select="."/>\r
+         <xsl:text>"</xsl:text>\r
+      </xsl:for-each>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="$element/* | $element/text()">\r
+            <!-- Close Start Tag -->\r
+            <xsl:text>> </xsl:text>\r
+            <!-- Content -->\r
+            <xsl:choose>\r
+               <xsl:when test="$mode!='xpp'">\r
+                  <xsl:apply-templates select="$element/* | $element/text()" mode="html"/>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                  <div style="margin-left: {$ELEM_INDENT}em">\r
+                     <xsl:apply-templates select="$element/* | $element/text()" mode="xpp"/>\r
+                  </div>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+            <!-- End Tag -->\r
+            <xsl:text>&lt;/</xsl:text>\r
+            <xsl:call-template name="PrintNSPrefix">\r
+               <xsl:with-param name="prefix">\r
+                  <xsl:call-template name="GetRefPrefix">\r
+                     <xsl:with-param name="ref" select="name($element)"/>\r
+                  </xsl:call-template>\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+            <xsl:value-of select="local-name($element)"/>\r
+            <xsl:text>></xsl:text>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <!-- Close Start Tag -->\r
+            <xsl:text>/></xsl:text>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+\r
+   <!-- ******** Templates for Handling References ******** -->\r
+\r
+   <!--\r
+     Prints out a reference to a term in the glossary section.\r
+     Param(s):\r
+            code (String) required\r
+              Unique ID of glossary term\r
+            term (String) optional\r
+              Glossary term\r
+     -->\r
+   <xsl:template name="PrintGlossaryTermRef">\r
+      <xsl:param name="code"/>\r
+      <xsl:param name="term"/>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="$code !='' and normalize-space(translate($printGlossary,'TRUE','true'))='true'">\r
+            <a title="Look up '{$term}' in glossary" href="#{concat($TERM_PREFIX, $code)}">\r
+               <xsl:choose>\r
+                  <xsl:when test="$term!=''">\r
+                     <xsl:value-of select="$term"/>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:text>[term]</xsl:text>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </a>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <xsl:value-of select="$term"/>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a reference to a namespace in the schema.\r
+     Param(s):\r
+            prefix (String) required\r
+              Namespace prefix referenced\r
+            schemaLoc (String) optional\r
+                Schema file containing this namespace prefix;\r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+     -->\r
+   <xsl:template name="PrintNamespaceRef">\r
+      <xsl:param name="prefix"/>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <xsl:if test="$prefix!=''">\r
+         <xsl:choose>\r
+            <xsl:when test="/xsd:schema/namespace::*[local-name(.)=normalize-space($prefix)]">\r
+               <xsl:variable name="link">\r
+                  <xsl:if test="normalize-space($schemaLoc)!='this'">\r
+                     <xsl:call-template name="GetSchemaDocLocation">\r
+                        <xsl:with-param name="uri" select="$schemaLoc"/>\r
+                     </xsl:call-template>\r
+                  </xsl:if>\r
+                  <xsl:value-of select="concat('#', $NS_PREFIX, $prefix)"/>\r
+               </xsl:variable>\r
+               <a href="{$link}" title="Find out namespace of '{$prefix}' prefix">\r
+                  <xsl:value-of select="$prefix"/>\r
+               </a>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+               <xsl:variable name="title">\r
+                  <xsl:text>Unknown namespace prefix, </xsl:text>\r
+                  <xsl:value-of select="$prefix"/>\r
+                  <xsl:text>.</xsl:text>\r
+               </xsl:variable>\r
+               <a href="javascript:void(0)" onclick="alert('{$title}')" title="{$title}">\r
+                  <xsl:value-of select="$prefix"/>\r
+               </a>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Generates a link to an attribute.\r
+     Param(s):\r
+            name (String) optional\r
+                Name of attribute\r
+            ref (String) optional\r
+                Reference to attribute\r
+            (One of 'name' and 'ref' must be provided.)\r
+            schemaLoc (String) optional\r
+                Schema file containing this attribute reference\r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+     -->\r
+   <xsl:template name="PrintAttributeRef">\r
+      <xsl:param name="name"/>\r
+      <xsl:param name="ref"/>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="$name!=''">\r
+            <xsl:call-template name="PrintCompName">\r
+               <xsl:with-param name="name" select="$name"/>\r
+               <xsl:with-param name="compType">attribute</xsl:with-param>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <xsl:when test="$ref!=''">\r
+            <xsl:call-template name="PrintCompRef">\r
+               <xsl:with-param name="ref" select="$ref"/>\r
+               <xsl:with-param name="compType">attribute</xsl:with-param>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Generates a link to an attribute group.\r
+     Param(s):\r
+            name (String) optional\r
+                Name of attribute group\r
+            ref (String) optional\r
+                Reference to attribute group\r
+            (One of 'name' and 'ref' must be provided.)\r
+            schemaLoc (String) optional\r
+                Schema file containing this attribute group reference\r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+     -->\r
+   <xsl:template name="PrintAttributeGroupRef">\r
+      <xsl:param name="name"/>\r
+      <xsl:param name="ref"/>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="$name!=''">\r
+            <xsl:call-template name="PrintCompName">\r
+               <xsl:with-param name="name" select="$name"/>\r
+               <xsl:with-param name="compType">attribute group</xsl:with-param>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <xsl:when test="$ref!=''">\r
+            <xsl:call-template name="PrintCompRef">\r
+               <xsl:with-param name="ref" select="$ref"/>\r
+               <xsl:with-param name="compType">attribute group</xsl:with-param>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Generates a link to an element.\r
+     Param(s):\r
+            name (String) optional\r
+                Name of element\r
+            ref (String) optional\r
+                Reference to element\r
+            (One of 'name' and 'ref' must be provided.)\r
+            schemaLoc (String) optional\r
+                Schema file containing this element reference\r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+     -->\r
+   <xsl:template name="PrintElementRef">\r
+      <xsl:param name="name"/>\r
+      <xsl:param name="ref"/>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="$name!=''">\r
+            <xsl:call-template name="PrintCompName">\r
+               <xsl:with-param name="name" select="$name"/>\r
+               <xsl:with-param name="compType">element</xsl:with-param>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <xsl:when test="$ref!=''">\r
+            <xsl:call-template name="PrintCompRef">\r
+               <xsl:with-param name="ref" select="$ref"/>\r
+               <xsl:with-param name="compType">element</xsl:with-param>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Generates a link to a group.\r
+     Param(s):\r
+            name (String) optional\r
+                Name of group\r
+            ref (String) optional\r
+                Reference to group\r
+            (One of 'name' and 'ref' must be provided.)\r
+            schemaLoc (String) optional\r
+                Schema file containing this group reference\r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+     -->\r
+   <xsl:template name="PrintGroupRef">\r
+      <xsl:param name="name"/>\r
+      <xsl:param name="ref"/>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="$name!=''">\r
+            <xsl:call-template name="PrintCompName">\r
+               <xsl:with-param name="name" select="$name"/>\r
+               <xsl:with-param name="compType">group</xsl:with-param>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <xsl:when test="$ref!=''">\r
+            <xsl:call-template name="PrintCompRef">\r
+               <xsl:with-param name="ref" select="$ref"/>\r
+               <xsl:with-param name="compType">group</xsl:with-param>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Generates a link to a key/uniqueness constraint.\r
+     Param(s):\r
+            name (String) optional\r
+                Name of key/uniqueness constraint\r
+            ref (String) optional\r
+                Reference to key/uniqueness constraint\r
+            (One of 'name' and 'ref' must be provided.)\r
+            schemaLoc (String) optional\r
+                Schema file containing this key/uniqueness constraint\r
+                reference; if in current schema, 'schemaLoc' is set \r
+                to 'this'\r
+     -->\r
+   <xsl:template name="PrintKeyRef">\r
+      <xsl:param name="name"/>\r
+      <xsl:param name="ref"/>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="$name!=''">\r
+            <xsl:call-template name="PrintCompName">\r
+               <xsl:with-param name="name" select="$name"/>\r
+               <xsl:with-param name="compType">uniqueness/key constraint</xsl:with-param>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <xsl:when test="$ref!=''">\r
+            <xsl:call-template name="PrintCompRef">\r
+               <xsl:with-param name="ref" select="$ref"/>\r
+               <xsl:with-param name="compType">uniqueness/key constraint</xsl:with-param>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Generates a link to a type.\r
+     Param(s):\r
+            name (String) optional\r
+                Name of type\r
+            ref (String) optional\r
+                Reference to type\r
+            (One of 'name' and 'ref' must be provided.)\r
+            schemaLoc (String) optional\r
+                Schema file containing this type reference'\r
+                if in current schema, 'schemaLoc' is set \r
+                to 'this'\r
+     -->\r
+   <xsl:template name="PrintTypeRef">\r
+      <xsl:param name="name"/>\r
+      <xsl:param name="ref"/>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="$name!=''">\r
+            <span class="type">\r
+               <xsl:call-template name="PrintCompName">\r
+                  <xsl:with-param name="name" select="$name"/>\r
+                  <xsl:with-param name="compType">type</xsl:with-param>\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               </xsl:call-template>\r
+            </span>\r
+         </xsl:when>\r
+         <xsl:when test="$ref!=''">\r
+            <span class="type">\r
+               <xsl:call-template name="PrintCompRef">\r
+                  <xsl:with-param name="ref" select="$ref"/>\r
+                  <xsl:with-param name="compType">type</xsl:with-param>\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               </xsl:call-template>\r
+            </span>\r
+         </xsl:when>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a link to a schema component's section.\r
+     Param(s):\r
+            baseFile (String) optional\r
+                Documentation file of schema containing this \r
+                component.\r
+                If this component belongs to the current schema, \r
+                omit this variable.\r
+                If this component is from an included or imported \r
+                schema, provide this variable.\r
+            name (String) required\r
+                Name of schema component\r
+            compType (String) required\r
+                Type of schema component\r
+            errMsg (String) optional\r
+                Sentence fragment.\r
+                If specified, link will open up an alert box with \r
+                an error message. For example, if 'errMsg' was set \r
+                to "could not be found", 'name' was "x", and\r
+                'compType' was "type", the error message would be:\r
+                "x" type definition could not be found.\r
+                The sentence fragment should not:\r
+                -start with a capital letter.\r
+                -have a space in front\r
+                -end with a period.\r
+            schemaLoc (String) optional\r
+                Schema file containing this component;\r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+     -->\r
+   <xsl:template name="PrintCompName">\r
+      <xsl:param name="baseFile"/>\r
+      <xsl:param name="name"/>\r
+      <xsl:param name="compType"/>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+      <xsl:param name="errMsg"/>\r
+\r
+      <!-- Get correct terminology for statements -->\r
+      <xsl:variable name="noun">\r
+         <xsl:choose>\r
+            <xsl:when test="$compType='element' or $compType='attribute'">\r
+               <xsl:text>declaration</xsl:text>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+               <xsl:text>definition</xsl:text>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+      </xsl:variable>\r
+\r
+      <!-- Get prefix to use in anchor name. -->\r
+      <xsl:variable name="compPrefix">\r
+         <xsl:choose>\r
+            <xsl:when test="$compType='attribute'">\r
+               <xsl:value-of select="$ATTR_PREFIX"/>\r
+            </xsl:when>\r
+            <xsl:when test="$compType='attribute group'">\r
+               <xsl:value-of select="$ATTR_GRP_PREFIX"/>\r
+            </xsl:when>\r
+            <xsl:when test="$compType='element'">\r
+               <xsl:value-of select="$ELEM_PREFIX"/>\r
+            </xsl:when>\r
+            <xsl:when test="$compType='group'">\r
+               <xsl:value-of select="$GRP_PREFIX"/>\r
+            </xsl:when>\r
+            <xsl:when test="$compType='type'">\r
+               <xsl:value-of select="$TYPE_PREFIX"/>\r
+            </xsl:when>\r
+            <xsl:when test="$compType='uniqueness/key constraint'">\r
+               <xsl:value-of select="$KEY_PREFIX"/>\r
+            </xsl:when>\r
+         </xsl:choose>\r
+      </xsl:variable>\r
+\r
+      <!-- Get base URI. -->\r
+      <xsl:variable name="baseURI">\r
+         <xsl:choose>\r
+            <xsl:when test="$baseFile!=''">\r
+               <xsl:value-of select="$baseFile"/>\r
+            </xsl:when>\r
+            <xsl:when test="normalize-space($schemaLoc)!='this'">\r
+               <xsl:call-template name="GetSchemaDocLocation">\r
+                  <xsl:with-param name="uri" select="$schemaLoc"/>\r
+               </xsl:call-template>\r
+            </xsl:when>\r
+         </xsl:choose>\r
+      </xsl:variable>\r
+\r
+      <!-- Generate message. -->\r
+      <xsl:variable name="title">\r
+         <xsl:choose>\r
+            <!-- Error message was provided. -->\r
+            <xsl:when test="$errMsg!=''">\r
+               <xsl:text>"</xsl:text><xsl:value-of select="$name"/><xsl:text>" </xsl:text>\r
+               <xsl:value-of select="$compType"/><xsl:text> </xsl:text>\r
+               <xsl:value-of select="$noun"/><xsl:text> </xsl:text>\r
+               <xsl:value-of select="$errMsg"/>\r
+            </xsl:when>\r
+            <!-- There exists a link to the schema component's\r
+                 documentation. -->\r
+            <xsl:otherwise>\r
+               <xsl:text>Jump to "</xsl:text>\r
+               <xsl:value-of select="$name"/>\r
+               <xsl:text>" </xsl:text>\r
+               <xsl:value-of select="$compType"/>\r
+               <xsl:text> </xsl:text>\r
+               <xsl:value-of select="$noun"/>\r
+               <!-- External link -->\r
+               <xsl:if test="normalize-space($baseURI)!=''">\r
+                  <xsl:text>(located in external schema documentation)</xsl:text>\r
+               </xsl:if>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+         <xsl:text>.</xsl:text>\r
+      </xsl:variable>\r
+\r
+      <!-- Generate href link -->\r
+      <xsl:variable name="link">\r
+         <xsl:choose>\r
+            <!-- Error message was provided. -->\r
+            <xsl:when test="$errMsg!=''">\r
+               <xsl:text>javascript:void(0)</xsl:text>\r
+            </xsl:when>\r
+            <!-- There exists a link to the schema component's\r
+                 documentation. -->\r
+            <xsl:otherwise>\r
+               <!-- Base URI -->\r
+               <xsl:value-of select="normalize-space($baseURI)"/>\r
+               <!-- Anchor within URI -->\r
+               <xsl:value-of select="concat('#',normalize-space($compPrefix),normalize-space($name))"/>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+      </xsl:variable>\r
+\r
+      <a title="{$title}" href="{$link}">\r
+         <!-- External link -->\r
+         <xsl:if test="normalize-space($baseURI)!=''">\r
+            <xsl:attribute name="class">externalLink</xsl:attribute>\r
+         </xsl:if>\r
+\r
+         <!-- Error message was provided. -->\r
+         <xsl:if test="$errMsg!=''">\r
+            <xsl:attribute name="onclick">\r
+               <xsl:text>alert('</xsl:text>\r
+               <xsl:value-of select="$title"/>\r
+               <xsl:text>');</xsl:text>\r
+            </xsl:attribute>\r
+         </xsl:if>\r
+\r
+         <xsl:value-of select="$name"/>\r
+      </a>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a reference to a schema component.\r
+     This template will try to work out which schema that this\r
+     component belongs to and print out the appropriate link.\r
+     component.\r
+     It will also print out the namespace prefix given\r
+     in the reference.\r
+     Param(s):\r
+            ref (String) required\r
+                Reference to schema component\r
+            compType (String) required\r
+                Type of schema component\r
+            schemaLoc (String) optional\r
+                Schema file containing this component reference;\r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+     -->\r
+   <xsl:template name="PrintCompRef">\r
+      <xsl:param name="ref"/>\r
+      <xsl:param name="compType"/>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <!-- Get correct terminology for statements -->\r
+      <xsl:variable name="noun">\r
+         <xsl:choose>\r
+            <xsl:when test="$compType='element' or $compType='attribute'">\r
+               <xsl:text>declaration</xsl:text>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+               <xsl:text>definition</xsl:text>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+      </xsl:variable>\r
+\r
+      <!-- Get local name -->\r
+      <xsl:variable name="refName">\r
+         <xsl:call-template name="GetRefName">\r
+            <xsl:with-param name="ref" select="$ref"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <!-- Get prefix -->\r
+      <xsl:variable name="refPrefix">\r
+         <xsl:call-template name="GetRefPrefix">\r
+            <xsl:with-param name="ref" select="$ref"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <!-- Get prefix of this schema's target namespace -->\r
+      <xsl:variable name="tnPrefix">\r
+         <xsl:call-template name="GetThisPrefix"/>\r
+      </xsl:variable>\r
+\r
+      <!-- Get file location of the schema component that is\r
+           being referenced. -->\r
+      <xsl:variable name="compLoc">\r
+         <xsl:call-template name="FindComponent">\r
+            <xsl:with-param name="ref" select="$ref"/>\r
+            <xsl:with-param name="compType" select="$compType"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <!-- Print prefix -->\r
+      <xsl:call-template name="PrintNSPrefix">\r
+         <xsl:with-param name="prefix" select="$refPrefix"/>\r
+         <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+      </xsl:call-template>\r
+\r
+      <!-- Print local name -->\r
+      <xsl:choose>\r
+         <!-- Component from XML Schema's or XML's namespace -->\r
+         <xsl:when test="normalize-space($compLoc)='xsd' or normalize-space($compLoc)='xml'">\r
+            <xsl:value-of select="$refName"/>\r
+         </xsl:when>\r
+         <!-- Component found in this schema. -->\r
+         <xsl:when test="normalize-space($compLoc)='this'">\r
+            <xsl:call-template name="PrintCompName">\r
+               <xsl:with-param name="name" select="$refName"/>\r
+               <xsl:with-param name="compType" select="$compType"/>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <!-- Component not found. -->\r
+         <xsl:when test="normalize-space($compLoc)='' or normalize-space($compLoc)='none'">\r
+            <xsl:call-template name="PrintCompName">\r
+               <xsl:with-param name="name" select="$refName"/>\r
+               <xsl:with-param name="compType" select="$compType"/>\r
+               <xsl:with-param name="errMsg">could not be found</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <!-- Component found in an external schema. -->\r
+         <xsl:otherwise>\r
+            <!-- Get documentation file for included schema. -->\r
+            <xsl:variable name="docFile">\r
+               <xsl:call-template name="GetSchemaDocLocation">\r
+                  <xsl:with-param name="uri" select="$compLoc"/>\r
+               </xsl:call-template>\r
+            </xsl:variable>\r
+\r
+            <xsl:call-template name="PrintCompName">\r
+               <xsl:with-param name="baseFile" select="$docFile"/>\r
+               <xsl:with-param name="name" select="$refName"/>\r
+               <xsl:with-param name="compType" select="$compType"/>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            </xsl:call-template>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+\r
+   <!-- ******** Templates for Finding Components in Different\r
+             Schema documents ******** -->\r
+\r
+   <!-- Special key words: xml, xsd, this, none -->\r
+   <xsl:template name="FindComponent">\r
+      <xsl:param name="ref"/>\r
+      <xsl:param name="compType"/>\r
+\r
+      <!-- Get local name -->\r
+      <xsl:variable name="refName">\r
+         <xsl:call-template name="GetRefName">\r
+            <xsl:with-param name="ref" select="$ref"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <!-- Get prefix -->\r
+      <xsl:variable name="refPrefix">\r
+         <xsl:call-template name="GetRefPrefix">\r
+            <xsl:with-param name="ref" select="$ref"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <!-- Get prefix of this schema's target namespace -->\r
+      <xsl:variable name="tnPrefix">\r
+         <xsl:call-template name="GetThisPrefix"/>\r
+      </xsl:variable>\r
+\r
+      <!-- Get prefix of XML Schema -->\r
+      <xsl:variable name="xsdPrefix">\r
+         <xsl:call-template name="GetXSDPrefix"/>\r
+      </xsl:variable>\r
+\r
+      <xsl:choose>\r
+         <!-- Schema component from XML Schema's namespace,\r
+              unless this schema is for XML Schema -->\r
+         <xsl:when test="$refPrefix=$xsdPrefix and $xsdPrefix!=$tnPrefix">\r
+            <xsl:text>xsd</xsl:text>\r
+         </xsl:when>\r
+         <!-- Schema component from XML's namespace -->\r
+         <xsl:when test="$refPrefix='xml'">\r
+            <xsl:text>xml</xsl:text>\r
+         </xsl:when>\r
+         <!-- Schema component from current schema's namespace -->\r
+         <xsl:when test="$refPrefix=$tnPrefix">\r
+            <xsl:call-template name="FindComponentInSchema">\r
+               <xsl:with-param name="name" select="$refName"/>\r
+               <xsl:with-param name="compType" select="$compType"/>\r
+               <xsl:with-param name="schema" select="/xsd:schema"/>\r
+               <xsl:with-param name="schemaFileLoc">this</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <!-- Schema component from imported namespace -->\r
+         <xsl:when test="normalize-space(translate($searchImportedSchemas, 'TRUE', 'true'))='true'">\r
+            <xsl:variable name="refNS" select="/xsd:schema/namespace::*[local-name(.)=normalize-space($refPrefix)]"/>\r
+            <xsl:call-template name="FindComponentInImportedSchemas">\r
+               <xsl:with-param name="name" select="$refName"/>\r
+               <xsl:with-param name="compType" select="$compType"/>\r
+               <xsl:with-param name="compNS" select="$refNS"/>\r
+               <xsl:with-param name="schema" select="/xsd:schema"/>\r
+               <xsl:with-param name="index">1</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <xsl:template name="FindComponentInSchema">\r
+      <xsl:param name="name"/>\r
+      <xsl:param name="compType"/>\r
+      <xsl:param name="schema"/>\r
+      <xsl:param name="schemaFileLoc"/>\r
+      <xsl:param name="schemasSearched"/>\r
+\r
+      <!-- Don't examine this schema if we've already\r
+           searched it. Prevents infinite recursion.\r
+           Also check if schema actually exists. -->\r
+      <xsl:if test="$schema and not(contains($schemasSearched, concat('*', $schemaFileLoc, '+')))">\r
+         <!-- Find out if the component is in this schema -->\r
+         <xsl:variable name="thisResult">\r
+            <xsl:call-template name="IsComponentInSchema">\r
+               <xsl:with-param name="name" select="$name"/>\r
+               <xsl:with-param name="compType" select="$compType"/>\r
+               <xsl:with-param name="schema" select="$schema"/>\r
+            </xsl:call-template>\r
+         </xsl:variable>\r
+\r
+         <xsl:choose>\r
+            <!-- Component found -->\r
+            <xsl:when test="normalize-space($thisResult)='true'">\r
+               <xsl:value-of select="$schemaFileLoc"/>\r
+            </xsl:when>\r
+            <!-- Component not found -->\r
+            <xsl:when test="normalize-space(translate($searchIncludedSchemas, 'TRUE', 'true'))='true'">\r
+               <!-- Search included schemas -->\r
+               <xsl:variable name="includeResult">\r
+                  <xsl:call-template name="FindComponentInIncludedSchemas">\r
+                     <xsl:with-param name="schema" select="$schema"/>\r
+                     <xsl:with-param name="name" select="$name"/>\r
+                     <xsl:with-param name="compType" select="$compType"/>\r
+                     <xsl:with-param name="index">1</xsl:with-param>\r
+                     <xsl:with-param name="schemasSearched" select="concat($schemasSearched, '*', $schemaFileLoc, '+')"/>\r
+                  </xsl:call-template>\r
+               </xsl:variable>\r
+\r
+               <xsl:choose>\r
+                  <xsl:when test="normalize-space($includeResult)!='' and normalize-space($includeResult)!='none'">\r
+                     <xsl:value-of select="$includeResult"/>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <!-- Search redefined schemas -->\r
+                     <xsl:call-template name="FindComponentInRedefinedSchemas">\r
+                        <xsl:with-param name="schema" select="$schema"/>\r
+                        <xsl:with-param name="name" select="$name"/>\r
+                        <xsl:with-param name="compType" select="$compType"/>\r
+                        <xsl:with-param name="index">1</xsl:with-param>\r
+                        <xsl:with-param name="schemasSearched" select="concat($schemasSearched, '*', $schemaFileLoc, '+')"/>\r
+                     </xsl:call-template>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </xsl:when>\r
+         </xsl:choose>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <xsl:template name="IsComponentInSchema">\r
+      <xsl:param name="name"/>\r
+      <xsl:param name="compType"/>\r
+      <xsl:param name="schema"/>\r
+\r
+      <xsl:choose>\r
+         <!-- Schema not found. -->\r
+         <xsl:when test="not($schema)">\r
+            <xsl:text>false</xsl:text>\r
+         </xsl:when>\r
+         <!-- Search for attribute declaration. -->\r
+         <xsl:when test="$compType='attribute' and $schema/xsd:attribute[@name=$name]">\r
+            <xsl:text>true</xsl:text>\r
+         </xsl:when>\r
+         <!-- Search for attribute group definition. -->\r
+         <xsl:when test="$compType='attribute group' and ($schema/xsd:attributeGroup[@name=$name] or $schema/xsd:redefine/xsd:attributeGroup[@name=$name])">\r
+            <xsl:text>true</xsl:text>\r
+         </xsl:when>\r
+         <!-- Search for element declaration. -->\r
+         <xsl:when test="$compType='element' and $schema/xsd:element[@name=$name]">\r
+            <xsl:text>true</xsl:text>\r
+         </xsl:when>\r
+         <!-- Search for group definition. -->\r
+         <xsl:when test="$compType='group' and ($schema/xsd:group[@name=$name] or $schema/xsd:redefine/xsd:group[@name=$name])">\r
+            <xsl:text>true</xsl:text>\r
+         </xsl:when>\r
+         <!-- Search for complex type definition. -->\r
+         <xsl:when test="($compType='type' or $compType='complex type') and ($schema/xsd:complexType[@name=$name] or $schema/xsd:redefine/xsd:complexType[@name=$name])">\r
+            <xsl:text>true</xsl:text>\r
+         </xsl:when>\r
+         <!-- Search for simple type definition. -->\r
+         <xsl:when test="($compType='type' or $compType='simple type') and ($schema/xsd:simpleType[@name=$name] or $schema/xsd:redefine/xsd:simpleType[@name=$name])">\r
+            <xsl:text>true</xsl:text>\r
+         </xsl:when>\r
+         <!-- Search for uniqueness/key constraint definition. -->\r
+         <xsl:when test="$compType='uniqueness/key constraint' and ($schema//xsd:element/xsd:key[@name=$name] or $schema//xsd:element/xsd:unique[@name=$name])">\r
+            <xsl:text>true</xsl:text>\r
+         </xsl:when>\r
+         <!-- Component not found. -->\r
+         <xsl:otherwise>\r
+            <xsl:text>false</xsl:text>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <xsl:template name="FindComponentInIncludedSchemas">\r
+      <xsl:param name="schema"/>\r
+      <xsl:param name="name"/>\r
+      <xsl:param name="compType"/>\r
+      <xsl:param name="schemasSearched"/>\r
+      <xsl:param name="index">1</xsl:param>\r
+\r
+      <xsl:if test="count($schema/xsd:include) &gt;= number($index)">\r
+         <!-- Get the 'schemaLocation' attribute of the 'include'\r
+              element in this schema at position, 'index'. -->\r
+         <xsl:variable name="schemaLoc" select="$schema/xsd:include[position()=$index]/@schemaLocation"/>\r
+\r
+         <xsl:variable name="thisResult">\r
+            <!-- Search for the component in the current \r
+                 included schema. -->\r
+            <xsl:call-template name="FindComponentInSchema">\r
+               <xsl:with-param name="name" select="$name"/>\r
+               <xsl:with-param name="compType" select="$compType"/>\r
+               <xsl:with-param name="schema" select="document($schemaLoc)/xsd:schema"/>\r
+               <xsl:with-param name="schemaFileLoc" select="$schemaLoc"/>\r
+               <xsl:with-param name="schemasSearched" select="$schemasSearched"/>\r
+            </xsl:call-template>\r
+         </xsl:variable>\r
+\r
+         <xsl:choose>\r
+            <!-- Component was found, so return result. -->\r
+            <xsl:when test="normalize-space($thisResult)!='' and normalize-space($thisResult)!='none'">\r
+               <xsl:value-of select="$thisResult"/>\r
+            </xsl:when>\r
+            <!-- Component was not found, so keep on searching. -->\r
+            <xsl:otherwise>\r
+               <!-- Examine other included schemas in this schema -->\r
+               <xsl:call-template name="FindComponentInIncludedSchemas">\r
+                  <xsl:with-param name="schema" select="$schema"/>\r
+                  <xsl:with-param name="name" select="$name"/>\r
+                  <xsl:with-param name="compType" select="$compType"/>\r
+                  <xsl:with-param name="index" select="number($index)+1"/>\r
+                  <xsl:with-param name="schemasSearched" select="concat($schemasSearched, '*', $schemaLoc, '+')"/>\r
+               </xsl:call-template>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <xsl:template name="FindComponentInRedefinedSchemas">\r
+      <xsl:param name="schema"/>\r
+      <xsl:param name="name"/>\r
+      <xsl:param name="compType"/>\r
+      <xsl:param name="schemasSearched"/>\r
+      <xsl:param name="index">1</xsl:param>\r
+\r
+      <xsl:if test="count($schema/xsd:redefine) &gt;= number($index)">\r
+         <!-- Get the 'schemaLocation' attribute of the 'redefine'\r
+              element in this schema at position, 'index'. -->\r
+         <xsl:variable name="schemaLoc" select="$schema/xsd:redefine[position()=$index]/@schemaLocation"/>\r
+\r
+         <xsl:variable name="thisResult">\r
+            <!-- Search for the component in the current \r
+                 redefined schema. -->\r
+            <xsl:call-template name="FindComponentInSchema">\r
+               <xsl:with-param name="name" select="$name"/>\r
+               <xsl:with-param name="compType" select="$compType"/>\r
+               <xsl:with-param name="schema" select="document($schemaLoc)/xsd:schema"/>\r
+               <xsl:with-param name="schemaFileLoc" select="$schemaLoc"/>\r
+               <xsl:with-param name="schemasSearched" select="$schemasSearched"/>\r
+            </xsl:call-template>\r
+         </xsl:variable>\r
+\r
+         <xsl:choose>\r
+            <!-- Component was found, so return result. -->\r
+            <xsl:when test="normalize-space($thisResult)!='' and normalize-space($thisResult)!='none'">\r
+               <xsl:value-of select="$thisResult"/>\r
+            </xsl:when>\r
+            <!-- Component was not found, so keep on searching. -->\r
+            <xsl:otherwise>\r
+               <!-- Examine other redefined schemas in this schema -->\r
+               <xsl:call-template name="FindComponentInRedefinedSchemas">\r
+                  <xsl:with-param name="schema" select="$schema"/>\r
+                  <xsl:with-param name="name" select="$name"/>\r
+                  <xsl:with-param name="compType" select="$compType"/>\r
+                  <xsl:with-param name="index" select="number($index)+1"/>\r
+                  <xsl:with-param name="schemasSearched" select="concat($schemasSearched, '*', $schemaLoc, '+')"/>\r
+               </xsl:call-template>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <xsl:template name="FindComponentInImportedSchemas">\r
+      <xsl:param name="schema"/>\r
+      <xsl:param name="name"/>\r
+      <xsl:param name="compType"/>\r
+      <xsl:param name="compNS"/>\r
+      <xsl:param name="schemasSearched"/>\r
+      <xsl:param name="index">1</xsl:param>\r
+\r
+      <xsl:if test="count($schema/xsd:import) &gt;= number($index)">\r
+         <!-- Get the 'namespace' attribute of the 'import'\r
+              element in this schema at position, 'index'. -->\r
+         <xsl:variable name="schemaNS" select="$schema/xsd:import[position()=$index]/@namespace"/>\r
+         <!-- Get the 'schemaLocation' attribute. -->\r
+         <xsl:variable name="schemaLoc" select="$schema/xsd:import[position()=$index]/@schemaLocation"/>\r
+\r
+         <xsl:variable name="thisResult">\r
+            <!-- Check that the imported schema has the matching\r
+                 namespace as the component that we're looking\r
+                 for. -->\r
+            <xsl:if test="normalize-space($compNS)=normalize-space($schemaNS)">\r
+               <!-- Search for the component in the current \r
+                    imported schema. -->\r
+               <xsl:call-template name="FindComponentInSchema">\r
+                  <xsl:with-param name="name" select="$name"/>\r
+                  <xsl:with-param name="compType" select="$compType"/>\r
+                  <xsl:with-param name="schema" select="document($schemaLoc)/xsd:schema"/>\r
+                  <xsl:with-param name="schemaFileLoc" select="$schemaLoc"/>\r
+                  <xsl:with-param name="schemasSearched" select="$schemasSearched"/>\r
+               </xsl:call-template>\r
+            </xsl:if>\r
+         </xsl:variable>\r
+\r
+         <xsl:choose>\r
+            <!-- Component was found, so return result. -->\r
+            <xsl:when test="normalize-space($thisResult)!='' and normalize-space($thisResult)!='none'">\r
+               <xsl:value-of select="$thisResult"/>\r
+            </xsl:when>\r
+            <!-- Component was not found, so keep on searching. -->\r
+            <xsl:otherwise>\r
+               <!-- Examine other included schemas in this schema -->\r
+               <xsl:call-template name="FindComponentInImportedSchemas">\r
+                  <xsl:with-param name="schema" select="$schema"/>\r
+                  <xsl:with-param name="name" select="$name"/>\r
+                  <xsl:with-param name="compType" select="$compType"/>\r
+                  <xsl:with-param name="compNS" select="$compNS"/>\r
+                  <xsl:with-param name="index" select="number($index)+1"/>\r
+                  <xsl:with-param name="schemasSearched" select="concat($schemasSearched, '*', $schemaLoc, '+')"/>\r
+               </xsl:call-template>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+\r
+   <!-- ******** General Utility Templates ******** -->\r
+\r
+   <!-- \r
+     Creates a box that can be opened and closed, such\r
+     that the contents can be hidden away until a button\r
+     is pressed.\r
+     Param(s):\r
+            id (String) required\r
+              Unique ID of the 'div' box\r
+            caption (String) required\r
+              Text describing the contents of the box;\r
+              it will always be shown even when the box\r
+              is closed\r
+            contents (String) required\r
+              Contents of box, which may appear and disappear\r
+              with the press of a button.\r
+            anchor (String) optional\r
+              Anchor, e.g. <a name="...", for this box\r
+            styleClass (String) optional\r
+              Additional CSS class for the entire collapseable box\r
+            isOpened (String) optional\r
+              Set to true if initially opened, and\r
+              false if initially closed\r
+     -->\r
+   <xsl:template name="CollapseableBox">\r
+      <xsl:param name="id"/>\r
+      <xsl:param name="caption"/>\r
+      <xsl:param name="contents"/>\r
+      <xsl:param name="anchor"/>\r
+      <xsl:param name="styleClass"/>\r
+      <xsl:param name="isOpened">false</xsl:param>\r
+\r
+      <xsl:variable name="buttonID" select="concat($id, '_button')"/>\r
+\r
+      <div class="{$styleClass} box">\r
+         <div>\r
+            <!-- Button to control the opening and closing of the 'div' box -->\r
+            <xsl:if test="normalize-space(translate($useJavaScript,'TRUE','true'))='true'">\r
+               <input type="button" id="{$buttonID}" class="control" onclick="switchState('{$id}'); return false;" style="display: none"/>\r
+               <!--\r
+                 Button's 'display' property is set to 'none', \r
+                 so that button will only be displayed if\r
+                 box can be successfully opened and closed.\r
+                 -->\r
+            </xsl:if>\r
+            <!-- Box Title -->\r
+            <xsl:text> </xsl:text>\r
+            <span class="caption">\r
+               <xsl:choose>\r
+                  <xsl:when test="$anchor != ''">\r
+                     <a name="{$anchor}">\r
+                        <xsl:value-of select="$caption"/>\r
+                     </a>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:value-of select="$caption"/>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </span>\r
+         </div>\r
+\r
+         <!-- Box Contents -->\r
+         <div id="{$id}" class="contents">\r
+            <xsl:copy-of select="$contents"/>\r
+         </div>\r
+         <xsl:if test="normalize-space(translate($useJavaScript,'TRUE','true'))='true'">\r
+            <xsl:call-template name="PrintJSCode">\r
+               <xsl:with-param name="code">setState('<xsl:value-of select="$id"/>', <xsl:value-of select="$isOpened"/>);</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:if>\r
+      </div>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Returns the namespace of an attribute\r
+     declaration or reference.\r
+     Param(s):\r
+            attribute (Node) required\r
+                Attribute declaration or reference\r
+     -->\r
+   <xsl:template name="GetAttributeNS">\r
+      <xsl:param name="attribute"/>\r
+\r
+      <xsl:choose>\r
+         <!-- Qualified local attribute declaration -->\r
+         <xsl:when test="$attribute[@name] and (normalize-space(translate($attribute/@form, 'QUALIFED', 'qualifed'))='qualified' or normalize-space(translate(/xsd:schema/@attributeFormDefault, 'QUALIFED', 'qualifed'))='qualified')">\r
+            <xsl:value-of select="/xsd:schema/@targetNamespace"/>\r
+         </xsl:when>\r
+         <!-- Reference to global attribute declaration -->\r
+         <xsl:when test="$attribute[@ref]">\r
+            <xsl:call-template name="GetRefNS">\r
+               <xsl:with-param name="ref" select="$attribute/@ref"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <!-- Otherwise, attribute has no namespace -->\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Returns the description that can be used in \r
+     headers for a schema component.\r
+     Param(s):\r
+            component (Node) required\r
+                Schema component\r
+     -->\r
+   <xsl:template name="GetComponentDescription">\r
+      <xsl:param name="component"/>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="local-name($component)='all'">\r
+            <xsl:text>All Model Group</xsl:text>\r
+         </xsl:when>\r
+         <xsl:when test="local-name($component)='attribute'">\r
+            <xsl:text>Attribute</xsl:text>\r
+         </xsl:when>\r
+         <xsl:when test="local-name($component)='attributeGroup'">\r
+            <xsl:text>Attribute Group</xsl:text>\r
+         </xsl:when>\r
+         <xsl:when test="local-name($component)='choice'">\r
+            <xsl:text>Choice Model Group</xsl:text>\r
+         </xsl:when>\r
+         <xsl:when test="local-name($component)='complexType'">\r
+            <xsl:text>Complex Type</xsl:text>\r
+         </xsl:when>\r
+         <xsl:when test="local-name($component)='element'">\r
+            <xsl:text>Element</xsl:text>\r
+         </xsl:when>\r
+         <xsl:when test="local-name($component)='group'">\r
+            <xsl:text>Model Group</xsl:text>\r
+         </xsl:when>\r
+         <xsl:when test="local-name($component)='notation'">\r
+            <xsl:text>Notation</xsl:text>\r
+         </xsl:when>\r
+         <xsl:when test="local-name($component)='sequence'">\r
+            <xsl:text>Sequence Model Group</xsl:text>\r
+         </xsl:when>\r
+         <xsl:when test="local-name($component)='simpleType'">\r
+            <xsl:text>Simple Type</xsl:text>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <xsl:call-template name="HandleError">\r
+               <xsl:with-param name="isTerminating">true</xsl:with-param>\r
+               <xsl:with-param name="errorMsg">\r
+Unknown schema component, <xsl:value-of select="local-name($component)"/>.\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Returns the unique identifier for a top-level schema\r
+     component. Returns the string "schema" if the 'component' \r
+     is the root schema element.\r
+     Param(s):\r
+            component (Node) required\r
+                Schema component\r
+     -->\r
+   <xsl:template name="GetComponentID">\r
+      <xsl:param name="component"/>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="local-name($component)='schema'">\r
+            <xsl:text>schema</xsl:text>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <xsl:variable name="componentPrefix">\r
+               <xsl:call-template name="GetComponentPrefix">\r
+                  <xsl:with-param name="component" select="$component"/>\r
+               </xsl:call-template>\r
+            </xsl:variable>\r
+            <xsl:value-of select="concat($componentPrefix, $component/@name)"/>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Returns the prefix to add in front of a schema component\r
+     name when generating anchor names.\r
+     Param(s):\r
+            component (Node) required\r
+                Schema component\r
+     -->\r
+   <xsl:template name="GetComponentPrefix">\r
+      <xsl:param name="component"/>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="local-name($component)='attribute'">\r
+            <xsl:value-of select="$ATTR_PREFIX"/>\r
+         </xsl:when>\r
+         <xsl:when test="local-name($component)='attributeGroup'">\r
+            <xsl:value-of select="$ATTR_GRP_PREFIX"/>\r
+         </xsl:when>\r
+         <xsl:when test="local-name($component)='complexType'">\r
+            <xsl:value-of select="$CTYPE_PREFIX"/>\r
+         </xsl:when>\r
+         <xsl:when test="local-name($component)='element'">\r
+            <xsl:value-of select="$ELEM_PREFIX"/>\r
+         </xsl:when>\r
+         <xsl:when test="local-name($component)='group'">\r
+            <xsl:value-of select="$GRP_PREFIX"/>\r
+         </xsl:when>\r
+         <xsl:when test="local-name($component)='notation'">\r
+            <xsl:value-of select="$NOTA_PREFIX"/>\r
+         </xsl:when>\r
+         <xsl:when test="local-name($component)='simpleType'">\r
+            <xsl:value-of select="$STYPE_PREFIX"/>\r
+         </xsl:when>\r
+         <xsl:when test="local-name($component)='key' or local-name($component)='unique'">\r
+            <xsl:value-of select="$KEY_PREFIX"/>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <xsl:call-template name="HandleError">\r
+               <xsl:with-param name="isTerminating">true</xsl:with-param>\r
+               <xsl:with-param name="errorMsg">\r
+Unknown schema component, <xsl:value-of select="local-name($component)"/>.\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Returns a glossary term reference for the \r
+     schema component type, if applicable.\r
+     Param(s):\r
+            component (Node) required\r
+                Schema component\r
+     -->\r
+   <xsl:template name="GetComponentTermRef">\r
+      <xsl:param name="component"/>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="local-name($component)='notation'">\r
+            <xsl:text>Notation</xsl:text>\r
+         </xsl:when>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Returns the namespace prefix of an attribute.\r
+     Param(s):\r
+            attribute (Node) required\r
+                Attribute declaration or reference\r
+     -->\r
+   <xsl:template name="GetAttributePrefix">\r
+      <xsl:param name="attribute"/>\r
+\r
+      <xsl:choose>\r
+         <!-- Element reference -->\r
+         <xsl:when test="$attribute/@ref">\r
+            <xsl:call-template name="GetRefPrefix">\r
+               <xsl:with-param name="ref" select="$attribute/@ref"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <!-- Global element declaration -->\r
+         <xsl:when test="local-name($attribute/..)='schema'">\r
+            <xsl:call-template name="GetThisPrefix"/>\r
+         </xsl:when>\r
+         <!-- Local element declaration -->\r
+         <xsl:otherwise>\r
+            <xsl:if test="($attribute/@form and normalize-space($attribute/@form)='qualified') or (/xsd:schema/@attributeFormDefault and normalize-space(/xsd:schema/@attributeFormDefault)='qualified')">\r
+               <xsl:call-template name="GetThisPrefix"/>\r
+            </xsl:if>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Returns the namespace prefix of an element.\r
+     Param(s):\r
+            element (Node) required\r
+                Element declaration or reference\r
+     -->\r
+   <xsl:template name="GetElementPrefix">\r
+      <xsl:param name="element"/>\r
+\r
+      <xsl:choose>\r
+         <!-- Element reference -->\r
+         <xsl:when test="$element/@ref">\r
+            <xsl:call-template name="GetRefPrefix">\r
+               <xsl:with-param name="ref" select="$element/@ref"/>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <!-- Global element declaration -->\r
+         <xsl:when test="local-name($element/..)='schema'">\r
+            <xsl:call-template name="GetThisPrefix"/>\r
+         </xsl:when>\r
+         <!-- Local element declaration -->\r
+         <xsl:otherwise>\r
+            <xsl:if test="($element/@form and normalize-space($element/@form)='qualified') or (/xsd:schema/@elementFormDefault and normalize-space(/xsd:schema/@elementFormDefault)='qualified')">\r
+               <xsl:call-template name="GetThisPrefix"/>\r
+            </xsl:if>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Returns the local name of a reference.\r
+     Param(s):\r
+            ref (String) required\r
+                Reference\r
+     -->\r
+   <xsl:template name="GetRefName">\r
+      <xsl:param name="ref"/>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="contains($ref, ':')">\r
+            <!-- Ref has namespace prefix -->\r
+            <xsl:value-of select="substring-after($ref, ':')"/>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <!-- Ref has no namespace prefix -->\r
+            <xsl:value-of select="$ref"/>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Returns the namespace prefix of a reference.\r
+     Param(s):\r
+            ref (String) required\r
+                Reference\r
+     -->\r
+   <xsl:template name="GetRefPrefix">\r
+      <xsl:param name="ref"/>\r
+      <!-- Get namespace prefix -->\r
+      <xsl:value-of select="substring-before($ref, ':')"/>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Returns the namespace of a reference.\r
+     Param(s):\r
+            ref (String) required\r
+                Reference\r
+     -->\r
+   <xsl:template name="GetRefNS">\r
+      <xsl:param name="ref"/>\r
+      <!-- Get namespace prefix -->\r
+      <xsl:variable name="refPrefix" select="substring-before($ref, ':')"/>\r
+      <!-- Get namespace -->\r
+      <xsl:value-of select="/xsd:schema/namespace::*[local-name(.)=normalize-space($refPrefix)]"/>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Returns the declared prefix of this schema's target namespace.\r
+     -->\r
+   <xsl:template name="GetThisPrefix">\r
+      <xsl:if test="/xsd:schema/@targetNamespace">\r
+         <xsl:value-of select="local-name(/xsd:schema/namespace::*[normalize-space(.)=normalize-space(/xsd:schema/@targetNamespace)])"/>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Returns the declared prefix of XML Schema namespace.\r
+     -->\r
+   <xsl:template name="GetXSDPrefix">\r
+      <xsl:value-of select="local-name(/xsd:schema/namespace::*[normalize-space(.)=$XSD_NS])"/>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Returns the schema documentation file location for a\r
+     given URI for a schema, done by looking up the file\r
+     specified in 'linksFile' variable.\r
+     It'll throw a fatal error if a value for 'linksFile' was \r
+     provided and the documentation file for 'uri' could not be\r
+     found.\r
+     Param(s):\r
+            uri (String) required\r
+              Location of schema file\r
+     -->\r
+   <xsl:template name="GetSchemaDocLocation">\r
+      <xsl:param name="uri"/>\r
+\r
+      <xsl:if test="$linksFile!=''">\r
+         <xsl:variable name="schemaDocFile" select="document($linksFile)/ppp:links/ppp:schema[@file-location=$uri]/@docfile-location"/>\r
+         <xsl:if test="$schemaDocFile=''">\r
+            <xsl:call-template name="HandleError">\r
+               <xsl:with-param name="isTerminating">true</xsl:with-param>\r
+               <xsl:with-param name="errorMsg">\r
+Documentation file for the schema at, <xsl:value-of select="$uri"/>,\r
+was not specified in the links file, <xsl:value-of select="$linksFile"/>.\r
+               </xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:if>\r
+         <xsl:value-of select="$schemaDocFile"/>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a boolean value.\r
+     Param(s):\r
+            boolean (String) required\r
+                Boolean value\r
+     -->\r
+   <xsl:template name="PrintBoolean">\r
+      <xsl:param name="boolean"/>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="normalize-space(translate($boolean,'TRUE', 'true'))='true' or normalize-space($boolean)='1'">\r
+            <xsl:text>yes</xsl:text>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <xsl:text>no</xsl:text>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out a link to the namespace of a prefix,\r
+     and tacks on a colon in the end.\r
+     Param(s):\r
+            prefix (String) required\r
+                Namespace prefix\r
+            nolink (boolean) optional\r
+                If true, doesn't provide a link to the\r
+                namespace in the namespaces table.\r
+            schemaLoc (String) optional\r
+                Schema file containing this namespace prefix;\r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+     -->\r
+   <xsl:template name="PrintNSPrefix">\r
+      <xsl:param name="prefix"/>\r
+      <xsl:param name="nolink">false</xsl:param>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <xsl:if test="$prefix!='' and normalize-space(translate($printNSPrefixes,'TRUE','true'))='true'">\r
+         <xsl:choose>\r
+            <xsl:when test="$nolink='false'">\r
+               <xsl:call-template name="PrintNamespaceRef">\r
+                  <xsl:with-param name="prefix" select="$prefix"/>\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               </xsl:call-template>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+               <xsl:value-of select="$prefix"/>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+         <xsl:text>:</xsl:text>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out the min/max occurrences of a schema component.\r
+     Param(s):\r
+            component (Node) optional\r
+                Schema component\r
+            minOccurs (String) optional\r
+                Minimum occurrences\r
+            maxOccurs (String) optional\r
+                Maximum occurrences\r
+     -->\r
+   <xsl:template name="PrintOccurs">\r
+      <xsl:param name="component"/>\r
+      <xsl:param name="minOccurs"/>\r
+      <xsl:param name="maxOccurs"/>\r
+\r
+      <!-- Get min occurs -->\r
+      <xsl:variable name="min">\r
+         <xsl:choose>\r
+            <xsl:when test="$component and local-name($component)='attribute'">\r
+               <xsl:choose>\r
+                  <xsl:when test="normalize-space($component/@use)='required'">\r
+                     <xsl:text>1</xsl:text>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:text>0</xsl:text>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+               <xsl:choose>\r
+                  <xsl:when test="$component and $component/@minOccurs">\r
+                     <xsl:value-of select="$component/@minOccurs"/>\r
+                  </xsl:when>\r
+                  <xsl:when test="$minOccurs != ''">\r
+                     <xsl:value-of select="$minOccurs"/>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:text>1</xsl:text>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+      </xsl:variable>\r
+      <!-- Get max occurs -->\r
+      <xsl:variable name="max">\r
+         <xsl:choose>\r
+            <xsl:when test="$component and local-name($component)='attribute'">\r
+               <xsl:choose>\r
+                  <xsl:when test="normalize-space($component/@use)='prohibited'">\r
+                     <xsl:text>0</xsl:text>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:text>1</xsl:text>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+               <xsl:choose>\r
+                  <xsl:when test="($component and normalize-space($component/@maxOccurs)='unbounded') or $maxOccurs='unbounded'">\r
+                     <xsl:text>*</xsl:text>\r
+                  </xsl:when>\r
+                  <xsl:when test="$component and $component/@maxOccurs">\r
+                     <xsl:value-of select="$component/@maxOccurs"/>\r
+                  </xsl:when>\r
+                  <xsl:when test="$maxOccurs != ''">\r
+                     <xsl:value-of select="$maxOccurs"/>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:text>1</xsl:text>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+      </xsl:variable>\r
+\r
+      <span class="occurs">\r
+         <xsl:choose>\r
+            <xsl:when test="number($min)=1 and number($max)=1">\r
+               <xsl:text>[1]</xsl:text>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+               <xsl:text>[</xsl:text>\r
+               <xsl:value-of select="$min"/>\r
+               <xsl:text>..</xsl:text>\r
+               <xsl:value-of select="$max"/>\r
+               <xsl:text>]</xsl:text>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+      </span>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Translates occurrence of '#all' in 'block' value\r
+     of element declarations.\r
+     Param(s):\r
+            EBV (String) required\r
+                Value\r
+     -->\r
+   <xsl:template name="PrintBlockSet">\r
+      <xsl:param name="EBV"/>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="normalize-space($EBV)='#all'">\r
+            <xsl:text>restriction, extension, substitution</xsl:text>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <xsl:value-of select="$EBV"/>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Translates occurrence of '#all' in 'final' value\r
+     of element declarations, and 'block' and 'final' values \r
+     in complex type definitions.\r
+     Param(s):\r
+            EBV (String) required\r
+                Value\r
+     -->\r
+   <xsl:template name="PrintDerivationSet">\r
+      <xsl:param name="EBV"/>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="normalize-space($EBV)='#all'">\r
+            <xsl:text>restriction, extension</xsl:text>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <xsl:value-of select="$EBV"/>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Translates occurrence of '#all' in 'final' value\r
+     of simple type definitions.\r
+     Param(s):\r
+            EBV (String) required\r
+                Value\r
+     -->\r
+   <xsl:template name="PrintSimpleDerivationSet">\r
+      <xsl:param name="EBV"/>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="normalize-space($EBV)='#all'">\r
+            <xsl:text>restriction, list, union</xsl:text>\r
+         </xsl:when>\r
+         <xsl:when test="normalize-space($EBV)!=''">\r
+            <xsl:value-of select="$EBV"/>\r
+         </xsl:when>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Print out a URI. If it starts with 'http', a link is provided.\r
+     Param(s):\r
+            uri (String) required\r
+              URI to be printed\r
+     -->\r
+   <xsl:template name="PrintURI">\r
+      <xsl:param name="uri"/>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="starts-with($uri, 'http')">\r
+            <a title="{$uri}" href="{$uri}">\r
+               <xsl:value-of select="$uri"/>\r
+            </a>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <xsl:value-of select="$uri"/>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Print out a link to the documentation of schema document.\r
+     For this happen, the 'linksFile' variable must be provided,\r
+     it must point to an actual file, and in that file, there\r
+     must be a mapping from the schema file location to the\r
+     schema documentation file location.\r
+     Param(s):\r
+            uri (String) required\r
+              Location of schema file\r
+     -->\r
+   <xsl:template name="PrintSchemaLink">\r
+      <xsl:param name="uri"/>\r
+\r
+      <xsl:variable name="docFileLoc">\r
+         <xsl:call-template name="GetSchemaDocLocation">\r
+            <xsl:with-param name="uri" select="$uri"/>\r
+         </xsl:call-template>\r
+      </xsl:variable>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="$docFileLoc!=''">\r
+            <a title="Jump to schema documentation for '{$uri}'." href="{$docFileLoc}">\r
+               <xsl:value-of select="$uri"/>\r
+            </a>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <xsl:value-of select="$uri"/>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Tokenises a whitespace-separated list of values, and\r
+     displays them appropriately.\r
+     Param(s):\r
+            value (String) required\r
+              Whitespace-separated list\r
+            compType (String) optional\r
+              Specify schema component type if values in list are\r
+              schema components, so appropriate links can be provided.\r
+            isInList (boolean) optional\r
+              If true, place each value within 'li' tags.\r
+              Assumes that this template is called within an HTML\r
+              list element.\r
+            separator (String) optional\r
+              Character(s) to use to separate resulting values in list.\r
+              Only used if 'isInList' is false.\r
+              If none is provided, uses a space character, ' '.\r
+            isFirst (boolean) optional\r
+              If false, it's a recursive call from 'PrintWhitespaceList'.\r
+            schemaLoc (String) optional\r
+                Schema file containing this all model group;\r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+     -->\r
+   <xsl:template name="PrintWhitespaceList">\r
+      <xsl:param name="value"/>\r
+      <xsl:param name="compType"/>\r
+      <xsl:param name="isInList">false</xsl:param>\r
+      <xsl:param name="separator"/>\r
+      <xsl:param name="isFirst">true</xsl:param>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <xsl:variable name="token" select="normalize-space(substring-before($value, ' '))"/>\r
+      <xsl:choose>\r
+         <xsl:when test="$token!=''">\r
+            <!-- Whitespace found in value -->\r
+            <!-- Print out token -->\r
+            <xsl:call-template name="PrintWhitespaceListToken">\r
+               <xsl:with-param name="token" select="$token"/>\r
+               <xsl:with-param name="compType" select="$compType"/>\r
+               <xsl:with-param name="isInList" select="$isInList"/>\r
+               <xsl:with-param name="separator" select="$separator"/>\r
+               <xsl:with-param name="isFirst" select="$isFirst"/>\r
+               <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+            </xsl:call-template>\r
+            <!-- Continue parsing -->\r
+            <xsl:variable name="rest" select="normalize-space(substring-after($value, $token))"/>\r
+            <xsl:if test="$rest!=''">\r
+               <xsl:call-template name="PrintWhitespaceList">\r
+                  <xsl:with-param name="value" select="$rest"/>\r
+                  <xsl:with-param name="compType" select="$compType"/>\r
+                  <xsl:with-param name="isInList" select="$isInList"/>\r
+                  <xsl:with-param name="separator" select="$separator"/>\r
+                  <xsl:with-param name="isFirst">false</xsl:with-param>\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               </xsl:call-template>\r
+            </xsl:if>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <!-- No more whitespaces  -->\r
+            <!-- Print out one last token -->\r
+            <xsl:if test="normalize-space($value)!=''">\r
+               <xsl:call-template name="PrintWhitespaceListToken">\r
+                  <xsl:with-param name="token" select="$value"/>\r
+                  <xsl:with-param name="compType" select="$compType"/>\r
+                  <xsl:with-param name="isInList" select="$isInList"/>\r
+                  <xsl:with-param name="separator" select="$separator"/>\r
+                  <xsl:with-param name="isFirst" select="$isFirst"/>\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               </xsl:call-template>\r
+            </xsl:if>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Helper template for 'PrintWhitespaceList' template,\r
+     which prints out one token in the list.\r
+     Param(s):\r
+            token (String) required\r
+              Token to be printed\r
+            compType (String) optional\r
+              Schema component type of token, if applicable.\r
+            isInList (boolean) optional\r
+              If true, place token within 'li' tags.\r
+            separator (String) optional\r
+              Character(s) use to separate one token from another.\r
+              Only used if 'isInList' is false.\r
+              If none is provided, uses a space character, ' '.\r
+            isFirst (boolean) optional\r
+              If true, token is the first value in the list.\r
+            schemaLoc (String) optional\r
+                Schema file containing this all model group;\r
+                if in current schema, 'schemaLoc' is set to 'this'\r
+     -->\r
+   <xsl:template name="PrintWhitespaceListToken">\r
+      <xsl:param name="token"/>\r
+      <xsl:param name="compType"/>\r
+      <xsl:param name="isInList">false</xsl:param>\r
+      <xsl:param name="separator"/>\r
+      <xsl:param name="isFirst">true</xsl:param>\r
+      <xsl:param name="schemaLoc">this</xsl:param>\r
+\r
+      <xsl:variable name="displayValue">\r
+         <xsl:choose>\r
+            <xsl:when test="$compType!=''">\r
+               <xsl:call-template name="PrintCompRef">\r
+                  <xsl:with-param name="ref" select="normalize-space($token)"/>\r
+                  <xsl:with-param name="compType" select="$compType"/>\r
+                  <xsl:with-param name="schemaLoc" select="$schemaLoc"/>\r
+               </xsl:call-template>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+               <xsl:value-of select="normalize-space($token)"/>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+      </xsl:variable>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="$isInList!='false'">\r
+            <li>\r
+               <xsl:copy-of select="$displayValue"/>\r
+            </li>\r
+         </xsl:when>\r
+         <xsl:when test="$isFirst!='true'">\r
+            <xsl:choose>\r
+               <xsl:when test="$separator!=''">\r
+                  <xsl:value-of select="$separator"/>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                  <xsl:text> </xsl:text>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+            <xsl:copy-of select="$displayValue"/>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <xsl:copy-of select="$displayValue"/>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Print out a wildcard.\r
+     Param(s):\r
+            componentType (attribute|element) required\r
+              XML Schema component type\r
+            namespaces (String) required\r
+              Namespace attribute of wildcard\r
+            processContents (String) required\r
+              Process contents attribute of wildcard\r
+            namespaces (String) required\r
+              Namespace attribute of wildcard\r
+     -->\r
+   <xsl:template name="PrintWildcard">\r
+      <xsl:param name="componentType">element</xsl:param>\r
+      <xsl:param name="namespace"/>\r
+      <xsl:param name="processContents"/>\r
+      <xsl:param name="minOccurs"/>\r
+      <xsl:param name="maxOccurs"/>\r
+\r
+      <xsl:text>Allow any </xsl:text>\r
+      <xsl:value-of select="$componentType"/>\r
+      <xsl:text>s from </xsl:text>\r
+\r
+      <xsl:choose>\r
+         <!-- ##any -->\r
+         <xsl:when test="not($namespace) or normalize-space($namespace)='##any'">\r
+            <xsl:text>any namespace</xsl:text>\r
+         </xsl:when>\r
+         <!-- ##other -->\r
+         <xsl:when test="normalize-space($namespace)='##other'">\r
+            <xsl:text>a namespace other than this schema's namespace</xsl:text>\r
+         </xsl:when>\r
+         <!-- ##targetNamespace, ##local, specific namespaces -->\r
+         <xsl:otherwise>\r
+            <!-- ##targetNamespace -->\r
+            <xsl:variable name="hasTargetNS">\r
+               <xsl:if test="contains($namespace, '##targetNamespace')">\r
+                  <xsl:text>true</xsl:text>\r
+               </xsl:if>\r
+            </xsl:variable>\r
+            <!-- ##local -->\r
+            <xsl:variable name="hasLocalNS">\r
+               <xsl:if test="contains($namespace, '##local')">\r
+                  <xsl:text>true</xsl:text>\r
+               </xsl:if>\r
+            </xsl:variable>\r
+            <!-- Specific namespaces -->\r
+            <!-- Remove '##targetNamespace' string if any-->\r
+            <xsl:variable name="temp">\r
+               <xsl:choose>\r
+                  <xsl:when test="$hasTargetNS='true'">\r
+                     <xsl:value-of select="concat(substring-before($namespace, '##targetNamespace'), substring-after($namespace, '##targetNamespace'))"/>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:value-of select="$namespace"/>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </xsl:variable>\r
+            <!-- Remove '##local' string if any -->\r
+            <xsl:variable name="specificNS">\r
+               <xsl:choose>\r
+                  <xsl:when test="$hasLocalNS='true'">\r
+                     <xsl:value-of select="concat(substring-before($temp, '##local'), substring-after($temp, '##local'))"/>\r
+                  </xsl:when>\r
+                  <xsl:otherwise>\r
+                     <xsl:value-of select="$temp"/>\r
+                  </xsl:otherwise>\r
+               </xsl:choose>\r
+            </xsl:variable>\r
+            <xsl:variable name="hasSpecificNS">\r
+               <xsl:if test="normalize-space($specificNS)!=''">\r
+                  <xsl:text>true</xsl:text>\r
+               </xsl:if>\r
+            </xsl:variable>\r
+\r
+            <xsl:if test="$hasLocalNS='true'">\r
+               <xsl:text>no namespace</xsl:text>\r
+            </xsl:if>\r
+\r
+            <xsl:if test="$hasTargetNS='true'">\r
+               <xsl:choose>\r
+                  <xsl:when test="$hasLocalNS='true' and $hasSpecificNS!='true'">\r
+                     <xsl:text> and </xsl:text>\r
+                  </xsl:when>\r
+                  <xsl:when test="$hasLocalNS='true'">\r
+                     <xsl:text>, </xsl:text>\r
+                  </xsl:when>\r
+               </xsl:choose>\r
+               <xsl:text>this schema's namespace</xsl:text>\r
+            </xsl:if>\r
+\r
+            <xsl:if test="$hasSpecificNS='true'">\r
+               <xsl:choose>\r
+                  <xsl:when test="$hasTargetNS='true' and $hasLocalNS='true'">\r
+                     <xsl:text>, and </xsl:text>\r
+                  </xsl:when>\r
+                  <xsl:when test="$hasTargetNS='true' or $hasLocalNS='true'">\r
+                     <xsl:text> and </xsl:text>\r
+                  </xsl:when>\r
+               </xsl:choose>\r
+               <xsl:text>the following namespace(s): </xsl:text>\r
+               <xsl:call-template name="PrintWhitespaceList">\r
+                  <xsl:with-param name="value" select="normalize-space($specificNS)"/>\r
+                  <xsl:with-param name="separator">,</xsl:with-param>\r
+               </xsl:call-template>\r
+            </xsl:if>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+      <!-- Process contents -->\r
+      <xsl:text> (</xsl:text>\r
+      <xsl:choose>\r
+         <xsl:when test="$processContents">\r
+            <xsl:value-of select="normalize-space($processContents)"/>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <xsl:text>strict</xsl:text>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+      <xsl:text> validation)</xsl:text>\r
+      <xsl:text>.</xsl:text>\r
+\r
+      <!-- Print min/max occurs -->\r
+      <xsl:if test="$componentType='element'">\r
+         <xsl:text> </xsl:text>\r
+         <xsl:call-template name="PrintOccurs">\r
+            <xsl:with-param name="minOccurs" select="$minOccurs"/>\r
+            <xsl:with-param name="maxOccurs" select="$maxOccurs"/>\r
+         </xsl:call-template>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Print out the pattern property for derivations by\r
+     restriction on simple content.\r
+     Param(s):\r
+            simpleRestrict (Node) required\r
+              'restriction' element\r
+     -->\r
+   <xsl:template name="PrintPatternFacet">\r
+      <xsl:param name="simpleRestrict"/>\r
+\r
+      <xsl:if test="$simpleRestrict/xsd:pattern">\r
+         <em>pattern</em>\r
+         <xsl:text> = </xsl:text>\r
+         <xsl:value-of select="$simpleRestrict/xsd:pattern/@value"/>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Print out the total digits property for derivations by\r
+     restriction on simple content.\r
+     Param(s):\r
+            simpleRestrict (Node) required\r
+              'restriction' element\r
+     -->\r
+   <xsl:template name="PrintTotalDigitsFacet">\r
+      <xsl:param name="simpleRestrict"/>\r
+\r
+      <xsl:if test="$simpleRestrict/xsd:totalDigits">\r
+         <em>total no. of digits</em>\r
+         <xsl:text> = </xsl:text>\r
+         <xsl:value-of select="$simpleRestrict/xsd:totalDigits/@value"/>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Print out the fraction digits property for derivations by\r
+     restriction on simple content.\r
+     Param(s):\r
+            simpleRestrict (Node) required\r
+              'restriction' element\r
+     -->\r
+   <xsl:template name="PrintFractionDigitsFacet">\r
+      <xsl:param name="simpleRestrict"/>\r
+\r
+      <xsl:if test="$simpleRestrict/xsd:fractionDigits">\r
+         <em>\r
+            <xsl:text>no. of fraction digits</xsl:text>\r
+         </em>\r
+         <xsl:text> = </xsl:text>\r
+         <xsl:value-of select="$simpleRestrict/xsd:fractionDigits/@value"/>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Print out the enumeration list for derivations by\r
+     restriction on simple content.\r
+     Param(s):\r
+            simpleRestrict (Node) required\r
+              'restriction' element\r
+     -->\r
+   <xsl:template name="PrintEnumFacets">\r
+      <xsl:param name="simpleRestrict"/>\r
+\r
+      <xsl:if test="$simpleRestrict/xsd:enumeration">\r
+         <em>value</em>\r
+         <xsl:text> comes from list: {</xsl:text>\r
+\r
+         <xsl:for-each select="$simpleRestrict/xsd:enumeration">\r
+            <xsl:if test="position()!=1">\r
+               <xsl:text>|</xsl:text>\r
+            </xsl:if>\r
+            <xsl:text>'</xsl:text>\r
+            <xsl:value-of select="@value"/>\r
+            <xsl:text>'</xsl:text>\r
+         </xsl:for-each>\r
+\r
+         <xsl:text>}</xsl:text>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Print out the length property for derivations by\r
+     restriction on simple content.\r
+     Param(s):\r
+            simpleRestrict (Node) required\r
+              'restriction' element\r
+     -->\r
+   <xsl:template name="PrintLengthFacets">\r
+      <xsl:param name="simpleRestrict"/>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="$simpleRestrict/xsd:length">\r
+            <em>\r
+               <xsl:text>length</xsl:text>\r
+            </em>\r
+            <xsl:text> = </xsl:text>\r
+            <xsl:value-of select="$simpleRestrict/xsd:length/@value"/>\r
+         </xsl:when>\r
+         <xsl:when test="$simpleRestrict/xsd:minLength">\r
+            <em>\r
+               <xsl:text>length</xsl:text>\r
+            </em>\r
+            <xsl:text> >= </xsl:text>\r
+            <xsl:value-of select="$simpleRestrict/xsd:minLength/@value"/>\r
+         </xsl:when>\r
+         <xsl:when test="$simpleRestrict/xsd:maxLength">\r
+            <em>\r
+               <xsl:text>length</xsl:text>\r
+            </em>\r
+            <xsl:text> &lt;= </xsl:text>\r
+            <xsl:value-of select="$simpleRestrict/xsd:maxLength/@value"/>\r
+         </xsl:when>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Print out the whitespace property for derivations by\r
+     restriction on simple content.\r
+     Param(s):\r
+            simpleRestrict (Node) required\r
+              'restriction' element\r
+     -->\r
+   <xsl:template name="PrintWhitespaceFacet">\r
+      <xsl:param name="simpleRestrict"/>\r
+\r
+      <xsl:variable name="facetValue" select="normalize-space(translate($simpleRestrict/xsd:whiteSpace/@value, 'ACELOPRSV', 'aceloprsv'))"/>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="$facetValue='preserve'">\r
+            <em>Whitespace policy: </em>\r
+            <xsl:call-template name="PrintGlossaryTermRef">\r
+               <xsl:with-param name="code">PreserveWS</xsl:with-param>\r
+               <xsl:with-param name="term">preserve</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <xsl:when test="$facetValue='replace'">\r
+            <em>Whitespace policy: </em>\r
+            <xsl:call-template name="PrintGlossaryTermRef">\r
+               <xsl:with-param name="code">ReplaceWS</xsl:with-param>\r
+               <xsl:with-param name="term">replace</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+         <xsl:when test="$facetValue='collapse'">\r
+            <em>Whitespace policy: </em>\r
+            <xsl:call-template name="PrintGlossaryTermRef">\r
+               <xsl:with-param name="code">CollapseWS</xsl:with-param>\r
+               <xsl:with-param name="term">collapse</xsl:with-param>\r
+            </xsl:call-template>\r
+         </xsl:when>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Print out the value ranges for derivations by\r
+     restriction on simple content.\r
+     Param(s):\r
+            simpleRestrict (Node) required\r
+              'restriction' element\r
+     -->\r
+   <xsl:template name="PrintRangeFacets">\r
+      <xsl:param name="simpleRestrict"/>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="($simpleRestrict/xsd:minInclusive or $simpleRestrict/xsd:minExclusive) and ($simpleRestrict/xsd:maxInclusive or $simpleRestrict/xsd:maxExclusive)">\r
+            <xsl:choose>\r
+               <xsl:when test="$simpleRestrict/xsd:minInclusive">\r
+                  <xsl:value-of select="$simpleRestrict/xsd:minInclusive/@value"/>\r
+                  <xsl:text> &lt;= </xsl:text>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                  <xsl:value-of select="$simpleRestrict/xsd:minExclusive/@value"/>\r
+                  <xsl:text> &lt; </xsl:text>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+            <em>\r
+               <xsl:text>value</xsl:text>\r
+            </em>\r
+            <xsl:choose>\r
+               <xsl:when test="$simpleRestrict/xsd:maxInclusive">\r
+                  <xsl:text> &lt;= </xsl:text>\r
+                  <xsl:value-of select="$simpleRestrict/xsd:maxInclusive/@value"/>\r
+               </xsl:when>\r
+               <xsl:otherwise>\r
+                  <xsl:text> &lt; </xsl:text>\r
+                  <xsl:value-of select="$simpleRestrict/xsd:maxExclusive/@value"/>\r
+               </xsl:otherwise>\r
+            </xsl:choose>\r
+         </xsl:when>\r
+         <xsl:when test="$simpleRestrict/xsd:minInclusive">\r
+            <em>\r
+               <xsl:text>value</xsl:text>\r
+            </em>\r
+            <xsl:text> >= </xsl:text>\r
+            <xsl:value-of select="$simpleRestrict/xsd:minInclusive/@value"/>\r
+         </xsl:when>\r
+         <xsl:when test="$simpleRestrict/xsd:minExclusive">\r
+            <em>\r
+               <xsl:text>value</xsl:text>\r
+            </em>\r
+            <xsl:text> > </xsl:text>\r
+            <xsl:value-of select="$simpleRestrict/xsd:minExclusive/@value"/>\r
+         </xsl:when>\r
+         <xsl:when test="$simpleRestrict/xsd:maxInclusive">\r
+            <em>\r
+               <xsl:text>value</xsl:text>\r
+            </em>\r
+            <xsl:text> &lt;= </xsl:text>\r
+            <xsl:value-of select="$simpleRestrict/xsd:maxInclusive/@value"/>\r
+         </xsl:when>\r
+         <xsl:when test="$simpleRestrict/xsd:maxExclusive">\r
+            <em>\r
+               <xsl:text>value</xsl:text>\r
+            </em>\r
+            <xsl:text> &lt; </xsl:text>\r
+            <xsl:value-of select="$simpleRestrict/xsd:maxExclusive/@value"/>\r
+         </xsl:when>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Prints out JavaScript code.\r
+     NOTE: Javascript code is placed within comments to make it\r
+     work with current browsers. In strict XHTML, JavaScript code \r
+     should be placed within CDATA sections. However, most\r
+     browsers generate a syntax error if the page contains \r
+     CDATA sections. Placing Javascript code within comments\r
+     means that the code cannot contain two dashes.\r
+     Param(s):\r
+            code (Result Tree Fragment) required\r
+                Javascript code\r
+  -->\r
+   <xsl:template name="PrintJSCode">\r
+      <xsl:param name="code"/>\r
+\r
+      <script type="text/javascript">\r
+         <!-- If browsers start supporting CDATA sections, \r
+              uncomment the following piece of code. -->\r
+         <!-- <xsl:text disable-output-escaping="yes">\r
+&lt;![CDATA[\r
+</xsl:text> -->\r
+         <!-- If browsers start supporting CDATA sections, \r
+              remove the following piece of code. -->\r
+         <xsl:text disable-output-escaping="yes">\r
+&lt;!--\r
+</xsl:text>\r
+\r
+         <xsl:value-of select="$code" disable-output-escaping="yes"/>\r
+         <!-- If browsers start supporting CDATA sections, \r
+              remove the following piece of code. -->\r
+         <xsl:text disable-output-escaping="yes">\r
+// --&gt;\r
+</xsl:text>\r
+         <!-- If browsers start supporting CDATA sections, \r
+              uncomment the following piece of code. -->\r
+         <!-- <xsl:text disable-output-escaping="yes">\r
+]]&gt;\r
+</xsl:text> -->\r
+      </script>\r
+   </xsl:template>\r
+\r
+   <!--\r
+     Translates occurrences of a string\r
+     in a piece of text with another string.\r
+     Param(s):\r
+            value (String) required\r
+                Text to translate\r
+            strToReplace (String) required\r
+                String to be replaced\r
+            replacementStr (String) required\r
+                Replacement text\r
+     -->\r
+   <xsl:template name="TranslateStr">\r
+      <xsl:param name="value"/>\r
+      <xsl:param name="strToReplace"/>\r
+      <xsl:param name="replacementStr"/>\r
+\r
+      <xsl:if test="$value != ''">\r
+         <xsl:variable name="beforeText" select="substring-before($value, $strToReplace)"/>\r
+         <xsl:choose>\r
+            <xsl:when test="$beforeText != ''">\r
+               <xsl:value-of select="$beforeText"/>\r
+               <xsl:value-of select="$replacementStr"/>\r
+               <xsl:call-template name="TranslateStr">\r
+                  <xsl:with-param name="value" select="substring-after($value, $strToReplace)"/>\r
+                  <xsl:with-param name="strToReplace" select="$strToReplace"/>\r
+                  <xsl:with-param name="replacementStr" select="$replacementStr"/>\r
+               </xsl:call-template>\r
+            </xsl:when>\r
+            <xsl:otherwise>\r
+               <xsl:value-of select="$value"/>\r
+            </xsl:otherwise>\r
+         </xsl:choose>\r
+      </xsl:if>\r
+   </xsl:template>\r
+\r
+   <xsl:template name="HandleError">\r
+      <xsl:param name="errorMsg"/>\r
+      <xsl:param name="isTerminating">false</xsl:param>\r
+\r
+      <xsl:choose>\r
+         <xsl:when test="$isTerminating='true'">\r
+            <xsl:message terminate="yes">\r
+               <xsl:text>XS3P ERROR: </xsl:text>\r
+               <xsl:value-of select="$errorMsg"/>\r
+            </xsl:message>\r
+         </xsl:when>\r
+         <xsl:otherwise>\r
+            <span style="font-weight: bold; color: red">\r
+               <xsl:text>ERROR: </xsl:text>\r
+               <xsl:value-of select="$errorMsg"/>\r
+            </span>\r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
+   </xsl:template>\r
+</xsl:stylesheet>\r