Relax NG steht für Regular Language for XML, New Generation und kennzeichnet eine sogenannte Schema- Sprache für XML, die die Struktur eines XML-Dokumentes beschreibt. Relax NG gruppiert sich neben der Document Type Definition ( DTD) und dem vom World Wide Web Consortium ( W3C) standardisierten XML-Schema. Relax NG ist hervorgegangen aus den beiden Schema Sprachen Relax Core und Trex, die jedoch nicht die weite Verbreitung wie Relax NG fanden. Ursprünglich entwickelt wurde Relax NG von James Clark und Murata Makoto.
Die zentrale Eigenschaft von Relax NG ist es, eine auf Mustern basierende Schema-Sprache zu sein. Relax NG ist spezifiziert durch die Organisation for the Advancement of Structured Information Standards ( OASIS) und zudem zugehörig dem Standard der ISO/ IEC 19757-2 innerhalb der Document Schema Definition Languages (DSDL). Relax NG versteht sich als leichtgewichtige Sprache, die eine XML-konforme - aber jedoch auch eine sehr kompakte - Syntax umfasst. Damit können die Schemata mit einem beliebigen XML- Editor bearbeitet werden.
Die Entwicklung von Relax NG
Der Hintergrund für die Entwicklung der Schema-Sprache Relax NG war es, die Nachteile der DTD und dem vom W3C vorgestellten XML-Schema zu beseitigen.
- DTD- Dokumente sind nicht XML-konform und es muss grundlegend eine neue Notation beachtet werden.
- XML-Schema ist schwergewichtig, d.h. die Sprache ist sehr umfangreich, hat viele Restriktionen und Regeln und ist daher aufwendig im Umgang.
Im Vergleich dazu ist Relax NG eine leichtgewichtige Sprache, da die vom XLM-Schema bekannten Restriktionen entfallen. Zudem verwendet Relax NG die Notation von XML, um Schemata darzustellen. Die Sprache unterstützt ein einfaches Konzept, und die meisten Komponenten einer Struktur werden gleich behandelt. Weitere Eigenschaften von Relax NG, die beispielsweise über die DTD hinausgehen, sind:
- Verschiedene Datentypen werden unterstützt.
- In Inhaltsmodelle werden Attribute integriert.
- Die XML-Namensräume werden unterstützt.
- Die Unterstützung von nicht geordneten Inhalten.
- Es werden kontextsensitive Inhaltsmodelle beachtet.
Natürlich basiert Relax NG ebenso wie die DTD und XML-Schema auf einer Grammatik - bemerkenswert ist in diesem Zusammenhang, das Relax NG jedoch auf einer soliden mathematischen Grundlage aufsetzt. Das mathematische Modell ist die sogenannte Hedge Automata Theorie. Dieses Modell definiert eine Hedge (engl. Hecke), die aus einer Reihe von Trees (engl. Bäumen) aufgebaut ist. Übertragen auf die XML-Terminologie ist ein Hedge eine Reihe von Elementen beispielsweise ist ein XML- Dokument ein Hedge. Damit ist ein XML-Dokument bildlich als ein formales Gebilde darstellbar, das sich durch Unterstützung von formalen Werkzeugen - ähnlich einem Hedge-Automaten bei einer regulären Grammatik - erzeugen lässt.
Im Kern geht Relax NG davon aus, das generell "alles ein Muster ist", und definiert dazu die wichtigsten atomaren Muster: Elemente, Attribute und Textknoten. Diese werden durch die Konstrukte dargestellt: