RelaxNG/publiset.rng
changeset 30 c0f9e813c039
parent 29 0bd36d3b6a5a
child 34 c51d5097d065
--- a/RelaxNG/publiset.rng	sam. juin 18 09:47:23 2011 +0200
+++ b/RelaxNG/publiset.rng	sam. juin 18 15:40:14 2011 +0200
@@ -77,8 +77,8 @@
     </optional>
     <oneOrMore>
       <choice>
+        <ref name="composition.division"/>
         <ref name="composition.file"/>
-        <ref name="composition.division"/>
       </choice>
     </oneOrMore>
   </define>
@@ -95,9 +95,6 @@
       <optional>
         <ref name="path.attribute"/>
       </optional>
-      <optional>
-        <ref name="xpath.attribute"/>
-      </optional>
     </interleave>
   </define>
   <define name="selection.id.attribute">
@@ -111,8 +108,9 @@
     </optional>
     <oneOrMore>
       <choice>
+        <ref name="selection.division"/>
         <ref name="selection.file"/>
-        <ref name="selection.division"/>
+        <ref name="link"/>
       </choice>
     </oneOrMore>
   </define>
@@ -332,14 +330,9 @@
     </interleave>
   </define>
   <define name="selection.division.attributes">
-    <interleave>
-      <optional>
-        <ref name="path.attribute"/>
-      </optional>
-      <optional>
-        <ref name="xpath.attribute"/>
-      </optional>
-    </interleave>
+    <optional>
+      <ref name="path.attribute"/>
+    </optional>
   </define>
   <define name="composition.division.content">
     <optional>
@@ -360,6 +353,7 @@
       <choice>
         <ref name="selection.division"/>
         <ref name="selection.file"/>
+        <ref name="link"/>
       </choice>
     </oneOrMore>
   </define>
@@ -372,7 +366,6 @@
   <define name="composition.file">
     <element name="file">
       <ref name="composition.file.attributes"/>
-      <ref name="file.content"/>
     </element>
   </define>
   <define name="selection.file">
@@ -383,6 +376,7 @@
   </define>
   <define name="composition.file.attributes">
     <interleave>
+      <ref name="name.attribute"/>
       <optional>
         <ref name="xpath.attribute"/>
       </optional>
@@ -393,12 +387,38 @@
     </interleave>
   </define>
   <define name="selection.file.attributes">
-    <optional>
-      <ref name="xpath.attribute"/>
-    </optional>
+    <interleave>
+      <ref name="name.attribute"/>
+      <optional>
+        <ref name="uri.attribute"/>
+      </optional>
+    </interleave>
+  </define>
+  <define name="name.attribute">
+    <attribute name="name">
+      <data type="anyURI"/>
+    </attribute>
+  </define>
+  <define name="uri.attribute">
+    <attribute name="uri">
+      <data type="anyURI"/>
+    </attribute>
   </define>
   <define name="file.content">
-    <data type="anyURI"/>
+    <ref name="inlines"/>
+  </define>
+  <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ link ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+  <define name="link">
+    <element name="link">
+      <ref name="link.attributes"/>
+      <ref name="link.content"/>
+    </element>
+  </define>
+  <define name="link.attributes">
+    <ref name="uri.attribute"/>
+  </define>
+  <define name="link.content">
+    <ref name="inlines"/>
   </define>
   <!--
     =============================================================================