This is a project page for xml2eb.

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

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

Usage:

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

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

XML2EB用書籍定義XML

書籍

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

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

副本

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

subbook要素の属性
dir

副本のディレクトリ

title

副本のタイトル

type

副本の種類

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

コンテンツ

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

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

コンテンツ項目

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

item要素の属性
id

参照用タグ名称

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

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

メニュー

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

layer要素の属性:
id

参照用タグ名称

Example
<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要素にて定義します。

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

画像

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

data要素の属性:
name

参照用タグ名称

src

画像ファイル (XMLファイルからの相対位置)

format

bmp/jpg

Example
<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

Example
<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ファイルからの相対位置)

Example
<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要素を使用します。

CONVERTER

Dictionary converter tools

There are a couple of tools to convert several dictionary data into XML files that can be used by xml2eb. Now there are two tools supporting following dictionaries:

通信用語(等)の基礎知識用変換ツール(conv-wdic)について

Usage

$ bin/conv-wdic.sh [Dictionary Data directory]

After execute the command, the tool generate book.xml in a dictionary directory. It is necessary to prepare the dictionary directory as same as follows:

diag cab2cbabdb8c99facb1da814c44bc754

Note: It is not necessary to make gaiji and table directory because there are automatically genearted by the converter tool.

It is necessary to complete following conditions for plugin data:

Image

There exist a bmp file that related to a png file. (A filename should be *.png.bmp)

Sound

There exist a wav file that related to a mp3/ogg file. (A filename should be .mp3.wav/.ogg.wav)

Text

Text file is encoded by UTF-8.

Glyph

Glyph image data is an image that related to +\\glyph{code} function in dictionary data. The image data should have a name in form of +"code.50px.png.bmp" . It is necessary to generate it from dictionary data in advance to running a tool. You can find PNG images in グリフウィキ(GlyphWiki) site. Please convert it to BMP. Sample URL of image is "http://glyphwiki.org/glyph/code.50px.png"

GAIJI

A Character set in Ebook is limited to JIS X0208 because of JIS X4081 specification. It is because it cannot express all characters in Unicode specification.. So a tool generate GAIJI images for characters which are not supported. It is also limited to express table, the tool generate image of table. To generate GAIJI and table, you need to specify font for the tool. Please edit wdic-fonts.properties file.

郵便番号用変換ツール(conv-zipcode)について

Usage:

$ bin/conv-zipcode.sh [データディレクトリ]

After execute the command, the tool generate book.xml in a dictionary directory. It is necessary to prepare the dictionary directory as same as follows:

diag 0a1cf6cd8ca01fa42fc8c814be37a5b0

Code references