Exemples complétés + <date> et <number> améliorés
authorPatrick PIERRE <patrick.pierre@prismallia.fr>
sam., 11 juin 2011 12:44:21 +0200
changeset 13 846ec40a5b2d
parent 12 2885b2c3ff59
child 14 b02a8d51797d
Exemples complétés + <date> et <number> améliorés
RelaxNG/publidoc.rnc
Xml/Documents/torture_test.xml
--- a/RelaxNG/publidoc.rnc	sam. juin 11 12:43:52 2011 +0200
+++ b/RelaxNG/publidoc.rnc	sam. juin 11 12:44:21 2011 +0200
@@ -235,8 +235,7 @@
 
 \list.content =
    title?,
-   (  (attribute type {"itemized"} ?, item, item+)
-    | (attribute type {"ordered"}, item, item+)
+   (  (attribute type {"ordered"} ?, item, item+)
     | (attribute type {"glossary"}, glossary.item+) )
 
 # ~~~~~~ item
@@ -256,7 +255,7 @@
 
 label.content = inlines
 
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ speech ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ speech ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 # ~~~~~~ speech
 speech = element speech { speech.content }
@@ -317,7 +316,7 @@
 inlines = mixed {
    sup*
  & sub*
- & romannum*
+ & number*
  & date*
  & name*
  & note*
@@ -335,20 +334,32 @@
 
 sub = element sub { inlines }
 
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ romannum ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ number ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-romannum = element romannum { xsd:token {pattern = "([dlxvi]+)"} }
+number = element number {
+   ( attribute type {"roman"}, number.attributes, number.roman.content )
+ | ( number.attributes, number.content)
+}
+
+number.attributes =
+   number.value.attribute?
+number.value.attribute = attribute value { xsd:integer | xsd:decimal }
+
+number.content = mixed { sup* }
+number.roman.content = xsd:token {pattern = "[dlxvi]+"}
 
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ date ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 date = element date { date.attributes, date.content }
 
 date.attributes =
-   date.of.attribute?
+   date.value.attribute
+ & date.of.attribute?
+date.value.attribute = attribute value { xsd:date | xsd:gYearMonth | xsd:gYear }
 date.of.attribute = attribute of { date.of.enumeration }
-date.of.enumeration = "event" | "birth" | "death"
+date.of.enumeration = "birth" | "death"
 
-date.content = xsd:date | xsd:gYearMonth | xsd:gYear
+date.content = mixed { sup* }
 
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ name ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -372,7 +383,7 @@
 note.content =
    parag+
 
-# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ foreign ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ foreign ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 foreign = element foreign { foreign.attributes, foreign.content }
 
--- a/Xml/Documents/torture_test.xml	sam. juin 11 12:43:52 2011 +0200
+++ b/Xml/Documents/torture_test.xml	sam. juin 11 12:44:21 2011 +0200
@@ -10,10 +10,10 @@
       </author>
       <publisher>Prismallia</publisher>
       <language xml:lang="fr"/>
-      <date of="event">2011-06</date>
+      <date value="2001-06"/>
       <place>Paris</place>
       <source type="book" id="9782843550362">
-        <title>Les Misérables</title>
+        <title>Les misérables</title>
         <pagenumber value="312"/>
       </source>
       <source type="file" id="hugo_miserables.xml"/>
@@ -73,7 +73,7 @@
         </metadata>
         <section>
           <list>
-            <title>Listes simples imbriquées : la météo</title>
+            <title>Listes imbriquées : la météo aéronautique</title>
             <item>
               <list>
                 <title>METAR</title>
@@ -186,38 +186,119 @@
         <title>Le niveau courant</title>
       </metadata>
       <topic>
-        <metadata>
-          <title>Éléments divers</title>
-        </metadata>
-       <section>
+        <section>
           <list type="glossary">
             <item>
               <label>Indices et exposants</label>
-              <parag>Un exposant<sup>2</sup> suivi d'un
-              indice<sub>3</sub>.</parag>
+              <parag>
+                Un exposant<sup>2</sup> suivi d'un indice<sub>3</sub>.
+              </parag>
             </item>
             <item>
-              <label>Chiffres romains</label>
-              <parag>En horlogerie, 4 est écrit <romannum>iiii</romannum> au
-              lieu de <romannum>iv</romannum>, essentiellement pour des raisons
-              de lisibilité sur un cadran rond. C'est ce qui lui vaut son nom
-              de quatre d'horloger.</parag>
+              <label>Nombres</label>
+              <parag>
+                En horlogerie, <number>4</number> est écrit <number
+                type="roman">iiii</number> au lieu de <number
+                type="roman">iv</number>, essentiellement pour des raisons de
+                lisibilité sur un cadran rond. C'est ce qui lui vaut son nom de
+                <number>quatre</number> d'horloger.
+              </parag>
             </item>
             <item>
-              <label>Mots mentionnés</label>
-              <parag>le mot <mentioned>table</mentioned> n'a qu'une
-              syllabe.</parag>
+              <label>Dates</label>
+              <parag>
+                Napoléon Bonaparte est né le <date of="birth"
+                value="1769-08-15">15 août 1769</date> à Ajaccio, en Corse et
+                mort le <date of="death" value="1821-05-05">5 mai 1821</date>
+                sur l'île Sainte-Hélène, au Royaume-Uni. [...]
+              </parag>
+              <parag>
+                À son retour d’Italie, en <date value="1797-12">décembre
+                1797</date>, Bonaparte est accueilli comme un héros par le
+                Directoire. [...]
+              </parag>
+              <parag>
+                <date value="1815-03-01">1<sup>er</sup> mars 1815</date> :
+                Débarqués à Golfe-Juan, Napoléon et sa petite troupe gagnent
+                Cannes où ils arrivent tard et d’où ils repartent tôt.
+              </parag>
+            </item>
+            <item>
+              <label>Noms</label>
+              <parag>
+                La loi a changé, mais les chasseurs ne s'y soumettront
+                pas. C'est toute la substance du discours martelé par le leader
+                de CPNT (<name of="party">Chasse, Pêche, Nature et
+                Traditions</name>), <name of="person">Jean Saint-Josse</name>,
+                devant les chasseurs de la baie de Somme.
+              </parag>
+            </item>
+            <item>
+              <label>Notes</label>
+              <parag>
+                Depuis leur entrée dans l'univers des mathématiques (avec
+                Pascal<note><parag>Blaise PASCAL est né le <date
+                value="1623-06-19">19 juin 1623</date> à Clermont et mort le
+                <date value="1662-08-19">19 août 1662</date> à
+                Paris</parag></note> au <number
+                type="roman">xvii</number><sup>e</sup> siècle), les
+                probabilités ont pris une place croissante dans notre façon
+                d'appréhender le monde. La mécanique quantique, par exemple,
+                repose en partie sur le calcul des probabilités.
+              </parag>
+            </item>
+            <item>
+              <label>Mots étrangers</label>
+              <parag></parag>
+            </item>
+            <item>
+              <label>Mises en valeur</label>
+              <parag>
+                La chimie se préoccupe de la manière dont les 92 atomes qui
+                constituent le tableau de Mendeleieff peuvent se combiner pour
+                donner des composés et quelles sont les propriétes de ces
+                composés. Ces composés sont soit des
+                <highlight>molécules</highlight> soit des
+                <highlight>cristaux</highlight>.
+              </parag>
             </item>
             <item>
               <label>Citations</label>
               <parag>
                 <quote>Impossible de vous dire mon âge, il change tout le
-                temps.</quote> Allais Alphonse (1855-1905)</parag>
+                temps.</quote> Allais Alphonse (1855-1905)
+              </parag>
+            </item>
+            <item>
+              <label>Acronymes</label>
+              <parag>
+                Le groupe <acronym>sncf</acronym> constitué par l'établissement
+                public <acronym>sncf</acronym> et ses 49 filiales, dont la
+                plupart sont contrôlées par la société holding <name
+                of="company"><acronym>sncf</acronym> Participations</name>, est
+                l'un des tout premiers groupes de transport et de logistique en
+                Europe.
+              </parag>
+            </item>
+            <item>
+              <label>Termes techniques</label>
+              <parag>
+                Un <term>hydrate</term> est un composé chimique contenant de
+                l'eau.
+              </parag>
+            </item>
+            <item>
+              <label>Mots mentionnés</label>
+              <parag>
+                Le mot <mentioned>table</mentioned> n'a qu'une syllabe.
+              </parag>
             </item>
             <item>
               <label>Liens</label>
-              <parag>N'hésitez pas à visiter le site de
-              <link uri="http://www.prismallia.fr">Prismallia</link>.</parag>
+              <parag>
+                N'hésitez pas à visiter le site de
+                <link uri="www.prismallia.fr">Prismallia</link>.
+              </parag>
             </item>
           </list>
         </section>