W3C's XML Schema komt de laatste tijd onder steeds grotere druk te staan. Met name de laatste week is er op diverse plaatsen scherpe kritiek geuit op de:
1. grote complexiteit van de nieuwe schema taal voor XML van het W3C
2. ontoegankelijkheid van de W3C recommendation: er is niet door te komen.
3. gebrekkige formele onderbouwing
De grote complexiteit van XML Schema is niet alleen gebaseerd op de kritiek van gebruikers, maar eigenlijk nog meer op het geringe aantal degelijke implementaties van XML Schema validators. Er zijn in feite maar twee echt degelijke implementaties: MSXML en Xerces, beide van grote organisaties (Microsoft voor MSXML en IBM voor Xerces, wat nu van Apache is). Deze implementaties hebben zelfs echter nog vervelende verschillen, waardoor schemas slecht uitwisselbaar zijn.
Simon St. Laurent heeft een weblog gemaakt van de kritiek van de afgelopen week: Rising Rebellion Against W3C XML Schema
De directe 'vijand' van W3C's XML Schema is Relax NG, wat jullie wellicht kennen vanuit mijn signature
. Relax NG wordt alom geprezen vanwege:
1. lage complexiteit: Relax NG is goed te begrijpen en het doorbladeren van de tutorial zorgt over het algemeen voor veel 'aha' gevoel bij de lezers.
2. uitmuntende formele onderbouwing: de semantiek van een Relax NG is ondubbelzinnig en formeel beschreven. Het maken van implementaties laat dus geen vragen open.
3. er is een prettig, niet-xml, syntax
Wat de meeste mensen wel aanvoelen, maar lastig kunnen omschrijven hebben anderen bewezen. Ondanks de grote omvang van W3C's XML Schema blijkt namelijk dat Relax NG een grotere klasse van XML documenten te kan beschrijven dan W3C's XML Schema. Je kan dus elk W3C XML Schema omschrijven naar een Relax NG schema, maar niet elk Relax NG schema naar een W3C XML Schema.
Dit is niet alleen leuk omdat je nu dus een krachtigere schema taal kunt gebruiken, maar deze grotere klasse heeft ook enkele hele aardige en unieke eigenschappen die er voor zorgen dat Relax NG van een zeer modulaire opzet kan genieten.
Het artikel wat deze vergelijking tussen diverse schema talen heeft gemaakt kan je hier vinden: Taxonomy of XML schema languages using formal language theory. Dit is wel een wetenschappelijk artikel, dus het kan een beetje pittig zijn.
James Clark, de man achter XSLT en 1 van de ontwerpers van Relax NG, heeft deze week nog vrij uitgebreid omschreven wat de voordelen van Relax NG tov W3C XML Schema zijn en waarom het in ieder geval een serieuze plaats naar XML Schema verdient:
http://www.imc.org/ietf-xml-use/mail-archive/msg00217.html
Ik heb al eerder het een en ander over Relax NG geschreven. Misschien vind je dat leuk om te lezen:
W3C XML Schema versus RELAX NG (Javahova.net)
XML schema taal strijd begint? (Webgoeroe.net)
Relax NG is gestandaardiseerd door OASIS. Op de website van Relax NG kan je uiteraard de standaard vinden, maar ook een leuke tutorial kunt vinden en links naar implementaties voor vele talen.
http://www.oasis-open.org/committees/relax-ng/
De boodschap van deze strijd is met name dat je niet blind achter de standaarden van het W3C moet aanlopen. Andere organisaties kunnen ook serieuze standaarden neer zetten die technologisch gezien zelfs superieur kunnen zijn aan het werk van het W3C.
Overigens is het nu ook weer niet zo dat W3C's XML Schema in de meeste ideale situatie volledig afgeschreven zou moeten worden: W3C's XML Schema biedt enkele mogelijkheden die het juist weer geschikter maken voor bepaalde toepassingen (typering, overerving).
1. grote complexiteit van de nieuwe schema taal voor XML van het W3C
2. ontoegankelijkheid van de W3C recommendation: er is niet door te komen.
3. gebrekkige formele onderbouwing
De grote complexiteit van XML Schema is niet alleen gebaseerd op de kritiek van gebruikers, maar eigenlijk nog meer op het geringe aantal degelijke implementaties van XML Schema validators. Er zijn in feite maar twee echt degelijke implementaties: MSXML en Xerces, beide van grote organisaties (Microsoft voor MSXML en IBM voor Xerces, wat nu van Apache is). Deze implementaties hebben zelfs echter nog vervelende verschillen, waardoor schemas slecht uitwisselbaar zijn.
Simon St. Laurent heeft een weblog gemaakt van de kritiek van de afgelopen week: Rising Rebellion Against W3C XML Schema
De directe 'vijand' van W3C's XML Schema is Relax NG, wat jullie wellicht kennen vanuit mijn signature
1. lage complexiteit: Relax NG is goed te begrijpen en het doorbladeren van de tutorial zorgt over het algemeen voor veel 'aha' gevoel bij de lezers.
2. uitmuntende formele onderbouwing: de semantiek van een Relax NG is ondubbelzinnig en formeel beschreven. Het maken van implementaties laat dus geen vragen open.
3. er is een prettig, niet-xml, syntax
Wat de meeste mensen wel aanvoelen, maar lastig kunnen omschrijven hebben anderen bewezen. Ondanks de grote omvang van W3C's XML Schema blijkt namelijk dat Relax NG een grotere klasse van XML documenten te kan beschrijven dan W3C's XML Schema. Je kan dus elk W3C XML Schema omschrijven naar een Relax NG schema, maar niet elk Relax NG schema naar een W3C XML Schema.
Dit is niet alleen leuk omdat je nu dus een krachtigere schema taal kunt gebruiken, maar deze grotere klasse heeft ook enkele hele aardige en unieke eigenschappen die er voor zorgen dat Relax NG van een zeer modulaire opzet kan genieten.
Het artikel wat deze vergelijking tussen diverse schema talen heeft gemaakt kan je hier vinden: Taxonomy of XML schema languages using formal language theory. Dit is wel een wetenschappelijk artikel, dus het kan een beetje pittig zijn.
James Clark, de man achter XSLT en 1 van de ontwerpers van Relax NG, heeft deze week nog vrij uitgebreid omschreven wat de voordelen van Relax NG tov W3C XML Schema zijn en waarom het in ieder geval een serieuze plaats naar XML Schema verdient:
http://www.imc.org/ietf-xml-use/mail-archive/msg00217.html
Ik heb al eerder het een en ander over Relax NG geschreven. Misschien vind je dat leuk om te lezen:
W3C XML Schema versus RELAX NG (Javahova.net)
XML schema taal strijd begint? (Webgoeroe.net)
Relax NG is gestandaardiseerd door OASIS. Op de website van Relax NG kan je uiteraard de standaard vinden, maar ook een leuke tutorial kunt vinden en links naar implementaties voor vele talen.
http://www.oasis-open.org/committees/relax-ng/
De boodschap van deze strijd is met name dat je niet blind achter de standaarden van het W3C moet aanlopen. Andere organisaties kunnen ook serieuze standaarden neer zetten die technologisch gezien zelfs superieur kunnen zijn aan het werk van het W3C.
Overigens is het nu ook weer niet zo dat W3C's XML Schema in de meeste ideale situatie volledig afgeschreven zou moeten worden: W3C's XML Schema biedt enkele mogelijkheden die het juist weer geschikter maken voor bepaalde toepassingen (typering, overerving).
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment