RelaxNG (REgular LAnguage for XML Next Generation) est un langage de schéma XML.
RelaxNG est une alternative aux DTD et à W3C XML Schema, qui combine les avantages de ces deux autres langages.
RelaxNG est un standard OASIS et une norme ISO/CEI.
Deux syntaxes : une syntaxe XML (alternative à W3C Schema) et une syntaxe compacte (alternative aux DTD).
RelaxNG ne définit que la structure (comme les DTD) et utilise W3C XML Schema pour le typage des données.
OpenDocument (format bureautique)
DocBook (format documentaire)
Atom (syndication)
<!ELEMENT document (paragraphe+)>
<!ATTLIST document type CDATA #REQUIRED>
<!ELEMENT paragraphe (#PCDATA)>
start = element document {
attribute type {text},
element paragraphe {text}+
}
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<element name="document">
<attribute name="type"/>
<oneOrMore>
<element name="paragraphe">
<text/>
</element>
</oneOrMore>
</element>
</start>
</grammar>
start = document
document = element document {attribute type {text}, paragraphe+ }
paragraphe = element paragraphe {text}
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<ref name="document"/>
</start>
<define name="document">
<element name="document">
<attribute name="type"/>
<oneOrMore>
<ref name="paragraphe"/>
</oneOrMore>
</element>
</define>
<define name="paragraphe">
<element name="paragraphe">
<text/>
</element>
</define>
</grammar>