Transformation XSL dans les publiset
authorPatrick PIERRE <patrick.pierre@prismallia.fr>
dim., 12 juin 2011 19:35:31 +0200
changeset 23 814ea44c2469
parent 22 94b8e4454c47
child 24 53a80accc248
Transformation XSL dans les publiset
RelaxNG/publiset.rnc
RelaxNG/publiset.rng
Xml/Sets/topic_set.xml
Xml/Topics/centre_pompidou.xml
Xml/Topics/chasseurs.xml
Xml/Topics/portugal_ue.xml
Xml/Topics/roi_belge.xml
--- a/RelaxNG/publiset.rnc	dim. juin 12 17:21:39 2011 +0200
+++ b/RelaxNG/publiset.rnc	dim. juin 12 19:35:31 2011 +0200
@@ -29,10 +29,8 @@
 
 composition.attributes =
    composition.id.attribute
- & base.attribute?
  & remap.attributes
 composition.id.attribute = attribute xml:id { xsd:ID }
-base.attribute = attribute xml:base { xsd:anyURI }
 
 composition.content =
    composition.head?,
@@ -157,9 +155,14 @@
 
 composition.division.attributes =
    base.attribute?
+ & xslt.attribute?
+ & xpath.attribute?
  & remap.attributes
 selection.division.attributes =
    base.attribute?
+base.attribute = attribute base { xsd:anyURI }
+xslt.attribute = attribute xslt { xsd:anyURI }
+xpath.attribute = attribute xpath { text }
 
 composition.division.content =
    composition.head?,
@@ -179,15 +182,12 @@
 selection.file = element file { selection.file.attributes, file.content }
 
 composition.file.attributes =
-   xpath.attribute?
- & transform.attribute?
+   xslt.attribute?
+ & xpath.attribute?
  & remap.attributes
 selection.file.attributes =
    xpath.attribute?
- & transform.attribute?
-xpath.attribute = attribute xpath { text }
-transform.attribute =
-   attribute transform {list { (xsd:token {pattern = "(xsl|regex):\S+"})+ }}
+ & xslt.attribute?
 
 file.content = xsd:anyURI
    
--- a/RelaxNG/publiset.rng	dim. juin 12 17:21:39 2011 +0200
+++ b/RelaxNG/publiset.rng	dim. juin 12 19:35:31 2011 +0200
@@ -41,9 +41,6 @@
   <define name="composition.attributes">
     <interleave>
       <ref name="composition.id.attribute"/>
-      <optional>
-        <ref name="base.attribute"/>
-      </optional>
       <ref name="remap.attributes"/>
     </interleave>
   </define>
@@ -52,11 +49,6 @@
       <data type="ID"/>
     </attribute>
   </define>
-  <define name="base.attribute">
-    <attribute name="xml:base">
-      <data type="anyURI"/>
-    </attribute>
-  </define>
   <define name="composition.content">
     <optional>
       <ref name="composition.head"/>
@@ -302,6 +294,12 @@
       <optional>
         <ref name="base.attribute"/>
       </optional>
+      <optional>
+        <ref name="xslt.attribute"/>
+      </optional>
+      <optional>
+        <ref name="xpath.attribute"/>
+      </optional>
       <ref name="remap.attributes"/>
     </interleave>
   </define>
@@ -310,6 +308,19 @@
       <ref name="base.attribute"/>
     </optional>
   </define>
+  <define name="base.attribute">
+    <attribute name="base">
+      <data type="anyURI"/>
+    </attribute>
+  </define>
+  <define name="xslt.attribute">
+    <attribute name="xslt">
+      <data type="anyURI"/>
+    </attribute>
+  </define>
+  <define name="xpath.attribute">
+    <attribute name="xpath"/>
+  </define>
   <define name="composition.division.content">
     <optional>
       <ref name="composition.head"/>
@@ -353,10 +364,10 @@
   <define name="composition.file.attributes">
     <interleave>
       <optional>
-        <ref name="xpath.attribute"/>
+        <ref name="xslt.attribute"/>
       </optional>
       <optional>
-        <ref name="transform.attribute"/>
+        <ref name="xpath.attribute"/>
       </optional>
       <ref name="remap.attributes"/>
     </interleave>
@@ -367,24 +378,10 @@
         <ref name="xpath.attribute"/>
       </optional>
       <optional>
-        <ref name="transform.attribute"/>
+        <ref name="xslt.attribute"/>
       </optional>
     </interleave>
   </define>
-  <define name="xpath.attribute">
-    <attribute name="xpath"/>
-  </define>
-  <define name="transform.attribute">
-    <attribute name="transform">
-      <list>
-        <oneOrMore>
-          <data type="token">
-            <param name="pattern">(xsl|regex):\S+</param>
-          </data>
-        </oneOrMore>
-      </list>
-    </attribute>
-  </define>
   <define name="file.content">
     <data type="anyURI"/>
   </define>
--- a/Xml/Sets/topic_set.xml	dim. juin 12 17:21:39 2011 +0200
+++ b/Xml/Sets/topic_set.xml	dim. juin 12 19:35:31 2011 +0200
@@ -9,12 +9,12 @@
       </head>
 
       <!-- ========================== Événements ========================== -->
-      <division>
+      <division base="../Topics" xslt="simplified_head.xsl">
         <head>
           <title>Les événements</title>
         </head>
-        <file>../Topics/centre_pompidou.xml</file>
-        <file>../Topics/chasseurs.xml</file>
+        <file>centre_pompidou.xml</file>
+        <file>chasseurs.xml</file>
       </division>
 
       <!-- =========================== Brèves ============================= -->
@@ -22,16 +22,18 @@
         <head>
           <title>Les brèves</title>
         </head>
-        <file>../Topics/portugal_ue.xml</file>
+        <file xslt="simplified_head.xsl">../Topics/portugal_ue.xml</file>
       </division>
       
       <!-- =========================== Photos ============================= -->
-      <division>
+      <division base="../Topics">
         <head>
           <title>Les photos légendées</title>
         </head>
-        <file>../Topics/roi_belge.xml</file>
+        <division as="topic">
+          <file xpath="topic/section">roi_belge.xml</file>
+        </division>
       </division>
-      </division>
+    </division>
   </composition>
 </publiset>
--- a/Xml/Topics/centre_pompidou.xml	dim. juin 12 17:21:39 2011 +0200
+++ b/Xml/Topics/centre_pompidou.xml	dim. juin 12 19:35:31 2011 +0200
@@ -20,18 +20,16 @@
     </head>
 
     <section>
-      <p>
-        La bibliothèque n'ouvrira ses portes que le 26 janvier ; le restaurant,
-        dont le décor a été confié à des designers pleins de promesses, est
-        encore en travaux. Qu'importe ! Ils furent des milliers à se presser
-        pour découvrir un Beaubourg qui a fait peau neuve. Les tubulures ont
-        été repeintes avec les couleurs vives qui avaient fait la célébrité du
-        lieu, les espaces ont été réorganisés. Toute l'administration a été
-        déplacée dans un immeuble voisin : la place libérée permet au musée
-        national d'Art moderne de proposer un nouvel accrochage plus aéré de
-        ses collections. Neuf jeunes plasticiens français sont à l'affiche de
-        la première exposition.
-      </p>
+      <p>La bibliothèque n'ouvrira ses portes que le 26 janvier ; le
+      restaurant, dont le décor a été confié à des designers pleins de
+      promesses, est encore en travaux. Qu'importe ! Ils furent des milliers à
+      se presser pour découvrir un Beaubourg qui a fait peau neuve. Les
+      tubulures ont été repeintes avec les couleurs vives qui avaient fait la
+      célébrité du lieu, les espaces ont été réorganisés. Toute
+      l'administration a été déplacée dans un immeuble voisin : la place
+      libérée permet au musée national d'Art moderne de proposer un nouvel
+      accrochage plus aéré de ses collections. Neuf jeunes plasticiens français
+      sont à l'affiche de la première exposition. </p>
       <media>
         <image id="centre_pompidou">
           <copyright>Morris / Sipa Press</copyright>
--- a/Xml/Topics/chasseurs.xml	dim. juin 12 17:21:39 2011 +0200
+++ b/Xml/Topics/chasseurs.xml	dim. juin 12 19:35:31 2011 +0200
@@ -16,25 +16,21 @@
     </head>
 
     <section>
-      <p>
-        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. Une décision du Conseil d'État oblige la France à fermer la
-        chasse au gibier d'eau et aux oiseaux migrateurs au <date
-        value="2000-01-31">31 janvier</date>, c'est-à-dire un mois plus tôt que
-        précédemment, afin de se conformer à une directive européenne datant
-        de… <date value="1979">1979</date> ! Forts de leur poids électoral
-        (6,77 % aux européennes), les chasseurs exigent l'abrogation de ce
-        texte. <link>28.6</link>
-      </p>
+      <p>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. Une décision du Conseil d'État oblige la France à fermer la chasse
+      au gibier d'eau et aux oiseaux migrateurs au <date value="2000-01-31">31
+      janvier</date>, c'est-à-dire un mois plus tôt que précédemment, afin de
+      se conformer à une directive européenne datant de… <date
+      value="1979">1979</date> ! Forts de leur poids électoral (6,77 % aux
+      européennes), les chasseurs exigent l'abrogation de ce
+      texte. <link>28.6</link></p>
       <media>
         <image id="chasseurs"/>
         <caption>
-          <p>
-            Dans la mire : les oiseaux migrateurs.
-          </p>
+          <p>Dans la mire : les oiseaux migrateurs.</p>
         </caption>
       </media>
     </section>
--- a/Xml/Topics/portugal_ue.xml	dim. juin 12 17:21:39 2011 +0200
+++ b/Xml/Topics/portugal_ue.xml	dim. juin 12 19:35:31 2011 +0200
@@ -16,10 +16,8 @@
     </head>
 
     <section>
-      <p>
-        Le Portugal prend pour six mois la présidence de l'Union européenne.
-        <link>1.7</link>
-      </p>
+      <p>Le Portugal prend pour six mois la présidence de l'Union européenne.
+      <link>1.7</link></p>
     </section>
   </topic>
 </publidoc>
--- a/Xml/Topics/roi_belge.xml	dim. juin 12 17:21:39 2011 +0200
+++ b/Xml/Topics/roi_belge.xml	dim. juin 12 19:35:31 2011 +0200
@@ -17,11 +17,9 @@
       <media>
         <image id="roi_belge"/>
         <caption>
-          <p>
-            Le 18, à Liège, le prince Philippe et son épouse, Mathilde,
-            prennent avec le sourire leur premier bain de foule : 15 000
-            personnes les acclament.
-          </p>
+          <p>Le 18, à Liège, le prince Philippe et son épouse, Mathilde,
+          prennent avec le sourire leur premier bain de foule : 15 000
+          personnes les acclament.</p>
         </caption>
       </media>
     </section>