Note sur les restrictions aux types de données en RelaxNG

J.-F. Perrot, 8/11/2012

Les restrictions en usage en XMLS se traduisent directement en RelaxNG (à l'exception de enumeration).
  1. Syntaxe compacte

    Les paramètres de restriction apparaissent entre accolades, après l'énoncé du type de base.

    Exemples :

        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="0"/>
            <xsd:maxInclusive value="20"/>
        </xsd:restriction>

       xsd:integer { minInclusive = "0" maxInclusive = "20" }
        <xsd:restriction base="xsd:string">
          <xsd:minLength value="1"/>
          <xsd:maxLength value="127"/>
        </xsd:restriction>

      xsd:string { minLength = "1" maxLength = "127" }
        <xsd:restriction base="xsd:string">
          <xsd:pattern value="
    [A-Z][a-z]*"/>
       </xsd:restriction>

      xsd:string { pattern = "[A-Z][a-z]*" }


    On écrira ainsi

    noteSur20 = attribute note { xsd:integer {minInclusive = "0" maxInclusive = "20" } }

  2. Syntaxe XML


    Exemples :
      <define name="noteSur20">
        <attribute name="note">
          <data type="integer">
            <param name="minInclusive">0</param>
            <param name="maxInclusive">20</param>
          </data>
        </attribute>
      </define>


      <define name="nomPers">
        <data type="string">
          <param name="pattern">[A-Z][a-z]*</param>
        </data>
      </define>