Types de données
Syntaxe :
Ajouter l'attribut datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
à la racine grammar
.
<grammar
xmlns="http://relaxng.org/ns/structure/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
...
<element name="...">
<data type="...">
</element>
</grammar>
Définition : Types 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ément : Spécification des primitive datatypes
Facette
Paramètre de spécialisation des types primitifs.
Exemple : Type 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éfinition : Built-in datatypes
Dérivés des types primitifs.
Par exemple :
integer
, dérivé dedecimal
normalizedString
, dérivé destring
language
, dérivé destring
ID
,IDREF
Exemple : RelaxNG XML
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<element name="mail" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<data type="string">
<param name="pattern">([^ ])+@([^ ])+.([^ ])+</param>
</data>
</element>
</start>
</grammar>
Exemple : RelaxNG compact
datatypes xsd="http://www.w3.org/2001/XMLSchema-datatypes"
start = element age {xsd:decimal {maxInclusive="100"}}
Complément :
Guidelines for using W3C XML Schema Datatypes with RELAX NG : http://relaxng.org/xsd.html