書籍作成ツール(XML2EB)について

XML2EB は独自に規定するXML(book.xml)ファイルを読み込んで JIS X4081形式の電子書籍を作成するプログラムです。

使用方法:

$ bin/xml2eb.sh [book.xmlのパス]

実行後、book.xmlが存在するディレクトリのbuildディレクトリ以下に 辞書データが作成されます。

XML2EB用書籍定義XML

書籍

書籍はbook要素にて定義します。 book要素はXMLのルート要素であり、XML文書内に2つ以上記述することはできません。 この要素内に必要な数だけ副本を記述します。

例:

<book>
  <subbook> ... </subbook>
  <subbook> ... </subbook>
</book>

副本

副本はsubbook要素にて定義します。 この要素内にコンテンツ、画像、音声、外字を記述します。

subbook要素の属性:

dir
副本のディレクトリ
title
副本のタイトル
type
副本の種類

例:

<subbook dir="hoge" title="ほげほげ事典" type="0x60">
  <content> ... </content>
  <graphic> ... </graphic>
  <sound> ... </sound>
  <font> ... </font>
</subbook>

コンテンツ

コンテンツはcontent要素にて定義します。 この要素内にコンテンツ項目、メニュー、著作権を記述します。

例:

<content>
  <item> ... </item>
  <menu> ... </menu>
  <copyright> ... </copyright>
</content>

コンテンツ項目

コンテンツ項目はitem要素にて定義します。 この要素内に見出し、本文、検索語、キーワードを記述します。

item要素の属性:

id
参照用タグ名称

例:

<item id="ほげほげ">
  <head> ... </head>
  <word> ... </word>
  <keyword> ... </keyword>
  <body> ... </body>
</item>

見出し/本文

見出しはhead要素にて、本文はbody要素にて定義します。 要素内には以下の要素を含めることができます。 また、本文は必ずkey要素から始めなければなりません。

  • char
  • b
  • i
  • em
  • sup
  • sub
  • key
  • nobr
  • indent
  • br
  • ref

char要素の属性:

name
外字名称
type
外字の種別 (narrow/wide)

ref要素の属性(項目参照):

id
参照名称

ref要素の属性(データ参照):

data
画像/音声名称
type
graphic/sound

例:

<head>辞書</head>
<body>
  <key>辞書</key><br/>
  <indent>辞書とは...</indent>
</body>

検索語/キーワード

検索語はword要素にて、キーワードはkeyword要素にて定義します。 検索語は前方/後方一致検索で検索する際の検索語になります。 キーワードは条件検索で検索する際の検索語になります。 片仮名を含んでいる場合は平仮名に変換したものも自動的に登録されます。 複数の検索語/キーワードを定義する場合は各要素を複数記述します。

例:

<word>辞書</word>
<word>じしょ</word>
<keyword>英和</keyword>
<keyword>和英</keyword>

メニュー

メニューはmenu要素にて定義します。 メニューの各項目はlayer要素を用いて階層化します。 layer要素内には本文要素と同様の要素を含めることができます。 なお、最上位階層は先頭に記述する必要があります。

layer要素の属性:

id
参照用タグ名称

例:

<menu>
  <layer id="top">
    <ref id="first">はじめに</ref><br/>
    <ref id="about">この辞書について</ref><br/>
    <ref id="symbol">表記について</ref><br/>
  </layer>
  <layer id="first">
    <key>はじめに</key><br/>...
  </layer>
  <layer id="about">
    <key>この辞書について</key><br/>...
  </layer>
  <layer id="symbol">
    <key>表記について<key><br/>...
  </layer>
</menu>

著作権

著作権はcopyright要素にて定義します。

例:

<copyright>
  Copyright (c) 2006 xxxx
</copyright>

画像

画像はgraphic要素内にdata要素を記述して定義します。

data要素の属性:

name
参照用タグ名称
src
画像ファイル (XMLファイルからの相対位置)
format
bmp/jpg

例:

<graphic>
  <data name="g001" src="g001.bmp" format="bmp" />
  <data name="g002" src="g002.bmp" format="bmp" />
  <data name="g003" src="g003.bmp" format="bmp" />
</graphic>

音声

音声はsound要素内にdata要素を記述して定義します。

data要素の属性:

name
参照用タグ名称
src
音声ファイル (XMLファイルからの相対位置)
format
wav/mid

例:

<sound>
  <data name="s001" src="s001.wav" format="wav" />
  <data name="s002" src="s002.wav" format="wav" />
  <data name="s003" src="s003.mid" format="mid" />
</sound>

外字

外字はfont要素内にchar要素を記述して定義します。 外字のビットマップイメージファイルはchar要素内にdata要素を記述して定義します。

char要素の属性:

name
参照用タグ名称
type
外字の種別 (narrow/wide)

data要素の属性:

size
外字サイズ (16/24/30/48)
src
XBMファイル (XMLファイルからの相対位置)

例:

<font>
  <char name="n001" type="narrow">
    <data size=16 src="n001-16.xbm" />
    <data size=30 src="n001-30.xbm" />
  </char>
  <char name="n002" type="narrow">
    <data size=16 src="n002-16.xbm" />
    <data size=30 src="n002-30.xbm" />
  </char>
  <char name="w001" type="wide">
    <data size=16 src="w001-16.xbm" />
    <data size=30 src="w001-30.xbm" />
  </char>
  <char name="w002" type="wide">
    <data size=16 src="w002-16.xbm" />
    <data size=30 src="w002-30.xbm" />
  </char>
</font>

空白要素の扱い

下記に示すような要素間の空白のみのテキストノードは無視します。

<key>...</key>
<br/>
  <b>...</b>...<i>...</i>
  <em>...</em>
...

</key>と<br/>の間、<br/>と<b>の間、<b/>と<i>の間、 </i>と<em>の間に存在するテキストノードが無視する対象になります。

改行の扱い

テキスト内に存在する改行はすべて無視します。 テキスト内に改行を含める場合は br要素を使用します。