]> gitweb @ CieloNegro.org - Rakka.git/commitdiff
page XML should be able to contain attachments
authorpho <pho@cielonegro.org>
Thu, 24 Jan 2008 02:47:00 +0000 (11:47 +0900)
committerpho <pho@cielonegro.org>
Thu, 24 Jan 2008 02:47:00 +0000 (11:47 +0900)
darcs-hash:20080124024700-62b54-f7121009ea72315e45fe7d24f532d8c82efd6053.gz

schemas/rakka-page-1.0.rng

index e344f0fd372ad596ae59a3955160f96c293c8b92..812e1e16700cccbf520e22b3ae0dd19c4a039707 100644 (file)
@@ -1,51 +1,62 @@
 <?xml version="1.0" encoding="utf-8"?>
-<element name="page"
-         ns="http://cielonegro.org/schema/Rakka/Page/1.0"
+<grammar ns="http://cielonegro.org/schema/Rakka/Page/1.0"
          datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
          xmlns="http://relaxng.org/ns/structure/1.0">
 
-  <optional>
-    <element name="updateInfo">
-      <!-- 旧リビジョン -->
-      <attribute name="oldRevision">
-        <!-- HXT が對應してゐない。
-           <data type="nonNegativeInteger" />
-        -->
-        <text />
-      </attribute>
-
-      <!-- ページ移動 -->
+  <start>
+    <element name="page">
       <optional>
-        <element name="move">
-          <attribute name="from">
+        <element name="updateInfo">
+          <!-- 旧リビジョン -->
+          <attribute name="oldRevision">
+            <!-- HXT が對應してゐない。
+                 <data type="nonNegativeInteger" />
+            -->
             <text />
           </attribute>
+
+          <!-- ページ移動 -->
+          <optional>
+            <element name="move">
+              <attribute name="from">
+                <text />
+              </attribute>
+            </element>
+          </optional>
         </element>
+
+        <!-- 猶、更新時に type 屬性を空欄にすると自動判別される。但し
+             binaryData の場合のみ許される。 -->
       </optional>
-    </element>
 
-    <!-- 猶、更新時に type 屬性を空欄にすると自動判別される。但し
-         binaryData の場合のみ許される。 -->
-  </optional>
+      <optional>
+        <!-- ログインしてゐないユーザーの編集を禁止するフラグ -->
+        <attribute name="isLocked">
+          <choice>
+            <value>yes</value>
+            <value>no</value>
+          </choice>
+        </attribute>
+      </optional>
 
-  <optional>
-    <!-- ログインしてゐないユーザーの編集を禁止するフラグ -->
-    <attribute name="isLocked">
       <choice>
-        <value>yes</value>
-        <value>no</value>
+        <!-- リダイレクトの場合 -->
+        <ref name="redirection" />
+    
+        <!-- リダイレクトでない場合 -->
+        <ref name="entity" />
       </choice>
-    </attribute>
-  </optional>
+    </element>
+  </start>
 
-  <choice>
-    <!-- リダイレクトの場合 -->
+  <define name="redirection">
     <attribute name="redirect">
       <!-- ページ名 -->
       <data type="anyURI" />
     </attribute>
-    
-    <!-- リダイレクトでない場合 -->
+  </define>
+
+  <define name="entity">
     <group>
       <attribute name="type">
         <!-- MIME Type -->
           <text />
         </element>
       </choice>
+
+      <optional>
+        <element name="attachment">
+          <zeroOrMore>
+            <element name="entry">
+              <attribute name="name" />
+              <ref name="anyElement" />
+            </element>
+          </zeroOrMore>
+        </element>
+      </optional>
     </group>
-  </choice>
-</element>
+  </define>
+
+  <define name="anyElement">
+    <element>
+      <anyName />
+      <zeroOrMore>
+        <choice>
+          <attribute>
+            <anyName />
+          </attribute>
+          <text />
+          <ref name="anyElement" />
+        </choice>
+      </zeroOrMore>
+    </element>
+  </define>
+</grammar>