Types de données

Syntaxe

Ajouter l'attribut datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" à la racine grammar.

1
<grammar 
2
    xmlns="http://relaxng.org/ns/structure/1.0"
3
    datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
4
    ...
5
    <element name="...">
6
        <data type="...">
7
    </element>
8
</grammar>

DéfinitionTypes primitifs

  • string

  • boolean

  • decimal

  • float, double

  • date, dateTime, duration, time, gYearMonth, gYear, gMonthDay, gDay, gMonth

  • hexBinary, base64Binary

  • anyURI

  • QName, NOTATION

  • Types hérités des DTD : ID, IDREF, IDREFS...

ComplémentSpécification des primitive datatypes

Facette

Paramètre de spécialisation des types primitifs.

ExempleType string

Facettes :

  • length : longueur de la chaîne

  • pattern : expression régulière permettant de valider la chaîne par rapport au patron (définition en intention)

  • enumeration : liste de valeurs autorisées (définition en extension)

  • ...

DéfinitionBuilt-in datatypes

Dérivés des types primitifs.

Par exemple :

  • integer, dérivé de decimal

  • normalizedString, dérivé de string

  • language, dérivé de string

  • ID, IDREF

ExempleRelaxNG XML

1
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
2
    <start>
3
        <element name="mail" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
4
            <data type="string">
5
                <param name="pattern">([^ ])+@([^ ])+.([^ ])+</param>
6
            </data>
7
        </element>
8
    </start>
9
</grammar>

ExempleRelaxNG compact

1
datatypes xsd="http://www.w3.org/2001/XMLSchema-datatypes"
2
start = element age {xsd:decimal {maxInclusive="100"}}

Complément

Guidelines for using W3C XML Schema Datatypes with RELAX NG : http://relaxng.org/xsd.html