<?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 -->
<optional>
<!-- text/css でなければ無視される -->
<attribute name="isTheme">
- <!-- これは HXT が對應してゐない。
- <data type="string">
- <param name="pattern">yes|no</param>
- </data>
- -->
- <text />
+ <choice>
+ <value>yes</value>
+ <value>no</value>
+ </choice>
</attribute>
</optional>
<optional>
<!-- text/x-rakka でなければ無視される -->
<attribute name="isFeed">
- <!-- yes/no -->
- <text />
- </attribute>
- </optional>
-
- <optional>
- <!-- ログインしてゐないユーザーの編集を禁止するフラグ -->
- <attribute name="isLocked">
- <!-- yes/no -->
- <text />
- </attribute>
- </optional>
-
- <optional>
- <!-- 更新履歴や RSS から削除されるフラグ -->
- <attribute name="isBoring">
- <!-- yes/no -->
- <text />
+ <choice>
+ <value>yes</value>
+ <value>no</value>
+ </choice>
</attribute>
</optional>
</element>
</choice>
</group>
- </choice>
-</element>
+ </define>
+</grammar>