Created
April 19, 2012 12:15
-
-
Save takahashim/2420596 to your computer and use it in GitHub Desktop.
XMDFのテキストオブジェクト実体のRelaxNG Compact Syntax表現(非公式、タグの入れ子関係のみで属性は無視)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
####### XMDF記述フォーマットにおけるテキスト部分の構造の概観 ###### | |
### bvfz300d.dtdを参考(というかそこからRelaxNG Compact形式に自動変換して一部を抜き出したもの) | |
# ==================================================================== | |
### 注:以下ではタグの構造のみを分かりやすくするため、属性は全面的に無視している | |
## text_dataはXMDF用語では「テキストオブジェクト実体」となっている。 | |
## これがXMDFでは複数個格納されているっぽい。 | |
text_data = element text_data { text_body } | |
## text_dataの本体はtext_bodyになる | |
text_body = element text_body { All_tag* } | |
## All_tagは改ページも含んだ要素集合で、All_tag2は改ページを抜いた要素集合 | |
All_tag = All_tag2 | page_break | |
All_tag2 = text | Block | Inline | object | |
## ブロック要素は以下。key_entryは辞書などの検索用 | |
Block = p | telop | key_entry | |
## インライン要素は以下。 | |
Inline = br | hr | font | yoko | ruby | external_char | mask | char_id | meaning_start | |
# ====================== BLOCK ELEMENT ============================== | |
p = element p { All_tag2* } | |
## telopはたぶん交換フォーマットではmarqueeになるはず | |
telop = element telop { (text | external_char | font | yoko | ruby | object)* } | |
page_break = element page_break { empty } | |
# ====================== INLINE ELEMENT ============================= | |
br = element br { empty } | |
hr = element hr { empty } | |
font = element font { (text | Inline | object)* } | |
## yokoは縦中横。 | |
yoko = element yoko { TextWithGaiji } | |
## ruby、rbase、rtopはルビ関連。HTMLでのruby、rb、rtに対応。 | |
ruby = element ruby { rbase, rtop } | |
rbase = element rbase { TextWithGaiji } | |
rtop = element rtop { TextWithGaiji } | |
## external_charは外字用。子要素がtextになっているけど例では空要素になっている。 | |
external_char = element external_char { text } | |
## maskは一時的にマスクして、クリックでON/OFFを変更できる | |
mask = element mask { | |
(text | br | font | yoko | ruby | external_char | object)* | |
} | |
## char_idは「文字列ID番号」なるIDを振るためのタグ。実際にはchar_id属性も使ってIDを指定する(ここでは省略) | |
char_id = element char_id { (text | Inline | object)* } | |
## objectは画像(アニメーション含む)で、ここでは省略 | |
#### その他の要素の説明 | |
## 外字付き文字列。書誌情報などでも使われている | |
TextWithGaiji = (text | external_char)* | |
## ブンコビューア用なので単にテキストを考える上では無視してもよい? | |
meaning_start = element meaning_start { empty } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment