]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - schemas/rakka-page-1.0.rng
started implementing trackback receiver
[Rakka.git] / schemas / rakka-page-1.0.rng
index 42b17336914528c3e5464a0a992fdbdce1261b18..c9dd03b280d18ed1f5ebb799e7ac46af39830d3b 100644 (file)
@@ -1,17 +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">
 
-  <choice>
-    <!-- リダイレクトの場合 -->
+  <start>
+    <element name="page">
+      <optional>
+        <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>
+
+      <optional>
+        <!-- ログインしてゐないユーザーの編集を禁止するフラグ -->
+        <attribute name="isLocked">
+          <choice>
+            <value>yes</value>
+            <value>no</value>
+          </choice>
+        </attribute>
+      </optional>
+
+      <choice>
+        <!-- リダイレクトの場合 -->
+        <ref name="redirection" />
+    
+        <!-- リダイレクトでない場合 -->
+        <ref name="entity" />
+      </choice>
+    </element>
+  </start>
+
+  <define name="redirection">
     <attribute name="redirect">
       <!-- ページ名 -->
       <data type="anyURI" />
     </attribute>
-    
-    <!-- リダイレクトでない場合 -->
+  </define>
+
+  <define name="entity">
     <group>
       <attribute name="type">
         <!-- MIME Type -->
       </attribute>
 
       <optional>
-        <!-- text/css でなければ無視される -->
-        <attribute name="isTheme">
-          <!-- これは HXT が對應してゐない。
-               <data type="string">
-               <param name="pattern">yes|no</param>
-               </data>
-          -->
+        <attribute name="lang">
           <text />
         </attribute>
       </optional>
 
       <optional>
-        <!-- text/x-rakka でなければ無視される -->
-        <attribute name="isFeed">
-          <!-- yes/no -->
-          <text />
-        </attribute>
-      </optional>
-
-      <optional>
-        <!-- ログインしてゐないユーザーの編集を禁止するフラグ -->
-        <attribute name="isLocked">
-          <!-- yes/no -->
-          <text />
+        <!-- text/css でなければ無視される -->
+        <attribute name="isTheme">
+          <choice>
+            <value>yes</value>
+            <value>no</value>
+          </choice>
         </attribute>
       </optional>
 
       <optional>
-        <!-- 更新履歴や RSS から削除されるフラグ -->
-        <attribute name="isBoring">
-          <!-- yes/no -->
-          <text />
+        <!-- text/x-rakka でなければ無視される -->
+        <attribute name="isFeed">
+          <choice>
+            <value>yes</value>
+            <value>no</value>
+          </choice>
         </attribute>
       </optional>
 
         </element>
       </choice>
     </group>
-  </choice>
-</element>
+  </define>
+</grammar>