Simplification de <anchor> + <sound>
authorPatrick PIERRE <patrick.pierre@prismallia.fr>
mar., 27 sept. 2011 23:30:00 +0200
changeset 43 5be33d03941a
parent 42 32381a87f807
child 44 ae64c01c37f1
Simplification de <anchor> + <sound>
RelaxNG/publidoc.rnc
RelaxNG/publidoc.rng
Xml/Documents/Sounds/6channels.wav
Xml/Documents/torture_test.xml
--- a/RelaxNG/publidoc.rnc	mar. sept. 27 17:12:04 2011 +0200
+++ b/RelaxNG/publidoc.rnc	mar. sept. 27 23:30:00 2011 +0200
@@ -434,7 +434,7 @@
 
 media.content =
    block.head?,
-   image+,
+   (image | sound)+,
    caption?,
    link?
 
@@ -448,6 +448,12 @@
 image.content =
    copyright?
 
+# ~~~~~~ sound
+sound = element sound { sound.attributes }
+
+sound.attributes =
+   media.id.attribute
+
 
 # =============================================================================
 #                                 INLINE LEVEL
@@ -590,22 +596,15 @@
 
 link.attributes =
    (uri.attribute | idref.attribute)
- & anchor.attribute?
 uri.attribute = attribute uri { xsd:anyURI }
 idref.attribute = attribute idref { xsd:IDREF }
-anchor.attribute = attribute anchor { xsd:NCName }
 
 link.content = inlines
 
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ anchor ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-anchor = element anchor {
-   ( anchor.attributes, anchor.content )
- | ( attribute startref { xsd:IDREF } )
-}
+anchor = element anchor { anchor.attributes }
 
 anchor.attributes =
    anchor.id.attribute
 anchor.id.attribute = attribute xml:id { xsd:ID }
-
-anchor.content = inlines
--- a/RelaxNG/publidoc.rng	mar. sept. 27 17:12:04 2011 +0200
+++ b/RelaxNG/publidoc.rng	mar. sept. 27 23:30:00 2011 +0200
@@ -935,7 +935,10 @@
       <ref name="block.head"/>
     </optional>
     <oneOrMore>
-      <ref name="image"/>
+      <choice>
+        <ref name="image"/>
+        <ref name="sound"/>
+      </choice>
     </oneOrMore>
     <optional>
       <ref name="caption"/>
@@ -964,6 +967,15 @@
       <ref name="copyright"/>
     </optional>
   </define>
+  <!-- ~~~~~~ sound -->
+  <define name="sound">
+    <element name="sound">
+      <ref name="sound.attributes"/>
+    </element>
+  </define>
+  <define name="sound.attributes">
+    <ref name="media.id.attribute"/>
+  </define>
   <!--
     =============================================================================
                                     INLINE LEVEL
@@ -1285,15 +1297,10 @@
     </element>
   </define>
   <define name="link.attributes">
-    <interleave>
-      <choice>
-        <ref name="uri.attribute"/>
-        <ref name="idref.attribute"/>
-      </choice>
-      <optional>
-        <ref name="anchor.attribute"/>
-      </optional>
-    </interleave>
+    <choice>
+      <ref name="uri.attribute"/>
+      <ref name="idref.attribute"/>
+    </choice>
   </define>
   <define name="uri.attribute">
     <attribute name="uri">
@@ -1305,26 +1312,13 @@
       <data type="IDREF"/>
     </attribute>
   </define>
-  <define name="anchor.attribute">
-    <attribute name="anchor">
-      <data type="NCName"/>
-    </attribute>
-  </define>
   <define name="link.content">
     <ref name="inlines"/>
   </define>
   <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ anchor ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
   <define name="anchor">
     <element name="anchor">
-      <choice>
-        <group>
-          <ref name="anchor.attributes"/>
-          <ref name="anchor.content"/>
-        </group>
-        <attribute name="startref">
-          <data type="IDREF"/>
-        </attribute>
-      </choice>
+      <ref name="anchor.attributes"/>
     </element>
   </define>
   <define name="anchor.attributes">
@@ -1335,7 +1329,4 @@
       <data type="ID"/>
     </attribute>
   </define>
-  <define name="anchor.content">
-    <ref name="inlines"/>
-  </define>
 </grammar>
Binary file Xml/Documents/Sounds/6channels.wav has changed
--- a/Xml/Documents/torture_test.xml	mar. sept. 27 17:12:04 2011 +0200
+++ b/Xml/Documents/torture_test.xml	mar. sept. 27 23:30:00 2011 +0200
@@ -264,11 +264,13 @@
         <section>
           <media>
             <image id="prismallia_logo"/>
-            <caption>
-              <p>Le logo de <name>Prismallia</name></p>
-            </caption>
+            <caption>Le logo de <name>Prismallia</name></caption>
             <link uri="http://www.prismallia.fr"/>
           </media>
+          <media>
+            <sound id="6channels"/>
+            <caption>Son 5.1</caption>
+          </media>
         </section>
       </topic>
     </division>
@@ -284,16 +286,11 @@
             <item>
               <label>Ancres</label>
               <p>
-                Une <anchor xml:id="a001">ancre</anchor> est un objet embarqué,
-                lourd, souvent de métal et destiné à stabiliser des bateaux à
-                un endroit spécifique sur les fonds rocheux, vaseux ou
-                sableux. <anchor xml:id="a002"/>Il y a deux catégories
-                d’ancrages (ou mouillage), les ancrages provisoires et les
-                ancrages permanents.
-              </p>
-              <p>
-                Un ancrage fonctionne en s’opposant à la force exercée par le
-                navire qui y est relié.<anchor startref="a002"/>
+                Une <anchor xml:id="a001"/>ancre est un objet embarqué, lourd,
+                souvent de métal et destiné à stabiliser des bateaux à un
+                endroit spécifique sur les fonds rocheux, vaseux ou sableux. Il
+                y a deux catégories d’ancrages (ou mouillage), les ancrages
+                provisoires et les ancrages permanents.
               </p>
             </item>
             <item>
@@ -411,8 +408,7 @@
               </p>
               <p>
                 Lisez également l'article sur les <link
-                idref="a01">ancres</link> ou un <link
-                idref="a02">extrait</link>.
+                idref="a001">ancres</link>.
               </p>
             </item>
           </list>