JepaX

JEPA電子出版交換フォーマット

Draft: Version 0.9

Last Update: 1999/9/30

日本電子出版協会

出版データフォーマット標準化研究委員会

Feedback to: mshibuya@est.co.jp


目次


1. 目的

2. 用途

3. 方針

4. 文書形式

1) XML文書型

2) エンコーディング

3) 文字表現の種類

4) 文字表現形式による分類

5) ファイルの分割

5. 全体構造

6. フォーマット情報要素

7. 書誌情報要素

8. 論理構造単位要素
<div> <head> <no> <title> <subtitle> <author> <note>

9. リスト要素

1) 順序なしリスト
<ul> <li>

2) 順序つきリスト
<ol>

3) 定義リスト
<dl> <dt> <dd>

10. ブロック要素

1) パラグラフ
<p>

2) 整形済みテキスト
<pre>

4) 表
<table> <caption> <tr> <th> <td>

5) 外部ファイルデータ
<float> <res>

11. インライン要素

1) 汎用インライン要素
<span>

2) 強調
<em>

3) 参照
<ref>

4) キーワード
<key>

5) 縦横文字切り替え
<byflow> <ht> <vt>

6) 割注
<mlg>

7) ルビ
<ruby> <rb> <rt>

8) 上付き、下付き
<sup> <sub>

9) 改行
<br>

10) インライン画像
<img>

11) 字形イメージ
<gi>

12) インライン要素の包含関係

12. 共通の属性


1. 目的

多くの出版社には、これからの電子出版市場の普及に備えて既存の紙の出版物をデジタル化する作業を今すぐにでも開始して準備しておきたいという意向がある。ところが、電子書籍のフォーマットにはすでにいくつかのものが存在し、これからも新しいものが策定されつつある。出版社としては、デジタル化作業を進める上でどのフォーマットを選択すればよいのか決めがたい状況にある。

そこで、なんらかの中立的なフォーマットを早急に策定し、デジタル化作業のやりやすい状況を作ろうというのがこの仕様の目的である。


2. 用途

この仕様は出版業界内部において電子出版コンテンツの蓄積や交換を行うための「交換フォーマット」として利用されることを想定しており、直接エンドユーザーの手に渡る「配布フォーマット」のひとつとして利用されることは意図していない。

各出版社はこのフォーマットでコンテンツを蓄積し、必要に応じていずれかの「配布フォーマット」変換した上で出版することになるであろう。


3. 方針

・ XML準拠

XMLはデジタル文書の業界標準になりつつあり、開発環境や各種のツール類も今後ますます充実してくると思われる。

他の電子書籍フォーマットもみなXMLを指向しており、XML同士ならXSLによる相互変換も容易に行える可能性が高い。

・ 簡潔さ

デジタル化作業環境の早急な立ち上げという目的のためには、簡潔で容易に習得できる仕様が求められる。また、特別な専用ツールの登場を待たなくても、テキストエディタなどによって作業が可能であることが望ましい。

すでに広く普及しているHTMLのタグを採用することも、習得を容易にするという意味では有効である。

・ 論理構造重視―スタイル指定の排除

「フォント」や「行間」といった文書が表示されるときのスタイルを指定するような仕様は極力排除し、「章」「セクション」「段落」「注釈」といったような、文書の構造を定義することを重視する。

スタイル定義の部分は、配布フォーマットによって最も異なっている部分であり、逆に各配布フォーマットが独自性を出せる部分ともいえる。交換フォーマットとして共通の仕様を決めるのが難しいし、むしろこの部分については自由度を残しておく方がよいと思われる。

・ 変換の容易性

交換フォーマットであるからには、他のフォーマットとの相互変換を最大限に考慮する。特に、既存のものや策定中の配布フォーマットとの間の相互変換に関しては、可能なら実際にコンバータなどを作成することにより実証確認しながら仕様を検討していく。


4. 文書形式


1) XML文書型

形式はXML1.0の検証済み文書ファイルとする。

文書型はDTDにより定義し、この仕様とともに公開される。

Version 1.0の公開識別子は "-//JEPA//DTD JepaX 1.0//JA" とする。

文書型宣言は以下のようになる。

<!DOCTYPE jepax PUBLIC "-//JEPA//DTD JepaX 1.0//JA" 
		"http://x.jepa.or.jp/jepax/jepax10.dtd" >

2) エンコーディング

文書ファイルに使用される文字コードのエンコーディングはUTF-16を推奨するが、それ以外のエンコーディングも許容されるものする。

いずれの場合でも、ファイル先頭のXML宣言で以下のようにエンコーディングを明示する必要がある。

<?XML version="1.0" encoding="UTF-16" ?>

3) 文字表現の種類

JepaX文書中では、文字を表す方法として以下の4つの方法がある。

・ 文字コード

XMLで規定される文字データ(CDATA)として、通常の文字コードで記述する。文書ファイルのエンコーディングによって表現できない文字もある。また、表示するOS環境や使用フォントによっては表示できない文字もある。

・ ISO文字名称

ISO 8879で規定されている文字名称を使用したエンティティ参照で記述する。ISOの名称に対応した文字名称のエンティティ宣言は、JepaXのDTDとともに提供される。また、XMLでマークアップに使用される5文字については、XMLの仕様により暗黙に定義されている。

例:

&amp; &lt; &gt; &apos; &quot;  (XML暗黙定義の5文字)
&aacute;  &uuml;

・ UCS文字番号

XMLの仕様で規定されている文字参照による記述。UCSの文字コードを10進数または16進数で直接記述する方法。

例:

&#x3A3E;	&#3231;

・ gi要素

JepaXで独自に定義するgi要素による記述。厳密には文字ではなく字形イメージを直接指定する方法。何らかの字形分類体系を利用し、その体系を特定する名称と、その体系での番号や名称で字形イメージを指定する。

例:

<gi set="mojikyo" name="47268" alt="鴎" />

4) 文字表現形式による分類

JPEAXでは使用する文字の表現形式を使用環境によって細かく制限することにより、文書ファイルを3つの形式に分類している。ある文書がどの形式であるかという情報は、メタ情報として後述の char-exp要素に記録されている。

・Unicode環境用

Unicodeの全ての文字が表示可能な環境での使用を想定した形式。文字データにはUnicodeの全ての文字を使用できる。

エンコーディング形式はUTF-8かUTF-16でなくてはならない。

・Windows環境用

日本語Windows環境での使用を想定した形式。文字データには日本語Windows環境で表示可能な文字(ASCII文字、半角カタカナ、JIS第一第二水準の漢字・非漢字、13区記号、NEC拡張漢字、IBM拡張漢字)が使用できる。

これ以外の文字についてはUCS文字番号による文字表現を使用する。ただし、ISO文字名称が定義されている非ASCII欧文文字についてはそれを使ってもよい。

エンコーディング形式はUTF-8、UTF-16かShift_JISでなくてはならない。

・日本語環境汎用

最低でもJIS第一第二水準の漢字・非漢字を表示可能なあらゆる日本語環境を想定した形式。文字データにはASCII文字とJIS第一第二水準の漢字・非漢字のみしか使用できない。

これ以外の文字についてはUCS文字番号による文字表現を使用する。ただし、ISO文字名称が定義されている非ASCII欧文文字についてはそれを使ってもよい。

エンコーディング形式は特に制限しない。

どの形式においても、可能な場合には通常の文字データとして表現することが推奨され、ISO文字名称やUCS文字番号による文字表現はできるだけ使用しないことが望ましい。ただし、XMLで暗黙に文字名称が定義されている5文字(&amp; &lt; &gt; &apos; &quot;)については例外で、いつでも文字名称を使用してよい。

どの形式においてもUnicodeに含まれない文字については、gi要素による字形イメージの直接指定が可能である。また、Unicodeに含まれる文字についても、フォントのデザインなどに左右されることなく確実に望みの字形を指定する必要がある場合などにはgi要素による指定も可能である。

形式 Unicode環境用 Windows環境用 日本語環境汎用
エンコーディング UTF-8, UTF-16 UTF-8, UTF-16, Shift_JIS 制限なし
文字表現方法 文字コード ISO文字名 UCS番号 gi要素 文字コード ISO文字名 UCS番号 gi要素 文字コード ISO文字名 UCS番号 gi要素
XML予約文字
ASCII × × ×
非ASCII欧文 × ×
半角カタカナ × × × ×
JIS1,2水準 × × ×
13区記号 × × × ×
NEC拡張漢字 × × × ×
IBM拡張漢字 × × × ×
その他のUnicode × × × × ×
Unicode外の文字 × × × × × × × × ×

◎:推奨 ○:可能 ×:不可 

※:「推奨」だが、XMLの仕様上「不可」となる場合がある。

  (例:「&」「<」は通常「不可」。「"」「’」は属性値では「不可」。)


5) ファイルの分割

JepaX文書は複数のファイルに分割することもできる。章などの区切りのよい単位でまとめた一部分を分割ファイルとして分離し、XMLのエンティティ参照のしくみを用いて本体ファイルからこれを参照する。

ただし、XMLの仕様として

・XML宣言やDOCTYPE宣言などのプロローグ部分

は分離せずに本体ファイルに残しておかなくてはならない。さらに

・ルート要素であるjepax要素の開始・終了タグ

・その先頭の子要素であるbookinfo要素の全て

については、JepaX独自の規定として分離せずに本体ファイルに残しておかなくてはならない。

各分割ファイルはXMLのwell-formed文書でなくてはならない。つまり、ファイル内で要素の開始タグと終了タグの対応がとれている形で完結していなくてはならない。

本体ファイル:

<?XML version="1.0" encoding="UTF-16" ?>
<!DOCTYPE jepax PUBLIC "-//JEPA//DTD JepaX 1.0//JA" 
                          "http://x.jepa.or.jp/jepax/jepax10.dtd" [
    <!ENTITY cover SYSTEM "cover.xml">
    <!ENTITY front SYSTEM "front.xml">
    <!ENTITY chap1 SYSTEM "chap1.xml">
    <!ENTITY chap2 SYSTEM "chap2.xml">
    <!ENTITY chap3 SYSTEM "chap3.xml">
    <!ENTITY back  SYSTEM "back.xml">
]>
<jepax>
    <jepaxinfo>
        ・・・
    </jepaxinfo>
    <bookinfo>
        ・・・
    </bookinfo>
   &cover;
   &front;
    <body>
        &chap1;
        &chap2;
        &chap3;
    </body>
    &back;
</jepax>

分割ファイル:cover.xml

<cover>
    ・・・
</cover>

分割ファイル:front.xml

<front>
    ・・・
</front>

分割ファイル:chap1.xml, chap2.xml, chap3.xml

<div type="章">
    ・・・
</div>

分割ファイル:back.xml

<back>
    ・・・
</back>

5. 全体構造

JepaX文書のトップレベルでの文書構造は、ルート要素とその5つの子要素のみから構成される。

jepax

ルート要素。全体をまとめる唯一の要素。

構成要素:

jepaxinfo要素、bookinfo要素、cover要素、front要素、body要素、back要素をこの順で含む。ただし、cover要素、front要素、back要素は省略可。

jepaxinfo

JepaX文書自身のフォーマットに関する情報を含む要素。省略不可。

構成要素:

後述の「フォーマット情報要素」を含む。詳細は「フォーマット情報要素」の章を参照。

bookinfo

文書自身の書誌情報を含む要素。省略不可。

構成要素:

後述の「書誌情報要素」を含む。詳細は書誌情報の章を参照。

cover

紙の出版物からデジタル化した場合に、「カバー」や「見返し」や「帯」などに書かれていた内容を納めるための要素。省略可。特に初めから電子書籍として作成されるものについては無理にこの要素を使用する必要はない。

構成要素:

div要素の1個以上の繰り返し。

front

「まえがき」「序文」「目次」などの本文の前に配置されるべき内容をすべて含む要素。省略可。

構成要素:

div要素の1個以上の繰り返し。

body

文書の主たる内容を含む要素。省略不可。

構成要素:

div要素の1個以上の繰り返し。

back

「あとがき」「解説」「索引」などの本文の後に配置されるべき内容をすべて含む要素。省略可。

構成要素:

div要素の1個以上の繰り返し。

例:

<jepax>
    <jepaxinfo>
        ・・・
    </jepaxinfo>
    <bookinfo>
        ・・・
    </bookinfo>
    <cover>
        ・・・
    </cover>
    <front>
        ・・・
    </front>
    <body>
        ・・・
        ・・・
    </body>
    <back>
        ・・・
    </back>
</jepax>
			

6. フォーマット情報要素

JepaXファイルフォーマットに関する情報を表す要素。

char-exp

文字表現形式の方法。type属性のみが意味を持つ。省略不可。

構成要素:なし。空要素。
属性:type

列挙型。JepaXで定められた3段階のどれを使用しているかの情報。

"unicode" すべてのUnicodeを使用

"windows" Windows環境で表示可能な文字のみを使用

"general" ほとんどの日本語環境で表示可能な文字のみを使用

pref-layout

推奨される表示方法。flow属性のみが意味を持つ。省略不可。

構成要素:なし。空要素。

属性:flow

列挙型。縦組みと横組みのどちらを前提とした文書であるか。

"horz" 横組み

"vert" 縦組み

"both" どちらでもよいように配慮されている

giset-desc

文書内のgi要素で使用されている字形分類体系についての説明。省略可。複数列挙可。

name属性で使用した字形イメージの番号や名称の表記法や、指定された字形イメージを参照する具体的な方法などがわかるような説明を記述する。

構成要素:文字列
属性:value

文字列型。gi要素のset属性で使用した値。(字形分類体系の略称)

xtype-desc

文書内で使用されているxtype属性についての説明。省略可。複数列挙可。

構成要素:文字列
属性:element

文字列型。要素名。

属性:value

文字列型。xtype属性の値。

class-desc

文書内で使用されているclass属性についての説明。省略可。複数列挙可。

構成要素:文字列
属性:element

文字列型。要素名。

属性:value

文字列型。class属性の値。

例:

<char-exp type="windows"/>
<pref-layout flow="horz"/>
<giset-desc value="mojikyo">
    「今昔文字鏡」で使用されている字形番号体系。
    name属性には5桁の数字で文字鏡番号を記述。
    参照URL  http://www.mojikyo.gr.jp/index_j.htm
</giset-desc>
<xtype-desc element="div" value="ト書き">
    戯曲のト書き部分。
</xtype-desc>
<xtype-desc element="div" value="セリフ">
    戯曲のセリフ部分。
</xtype-desc>
<class-desc element="em" value="blink">
    文字列を点滅させる事による強調。
</class-desc>
			

7. 書誌情報要素

文書ファイル自身についての書誌情報を表す要素。書名や著者名などの記法に関しては、日本書籍出版協会の「データベース日本書籍総目録」で使用されているデータ形式(http://www.est.co.jp/ks/dish/booksfield.htm)に準拠するものとする。

isbn

日本図書コードのうち、ISBN(国際標準図書番号)のハイフン付き13桁。省略可。

構成要素:"0"〜"9"の数字と"-"と"X"

c-code

日本図書コードのうち、Cの後に付く4桁の分類コード。省略可。

構成要素:"0"〜"9"の数字

book-title

書名。省略不可。

構成要素:任意の文字列

共通の属性:reading

book-subtitle

副書名。省略可。

構成要素:任意の文字列

edition

版名。省略可。

構成要素:任意の文字列

series-title

シリーズ・叢書名。省略可。

構成要素:任意の文字列

共通の属性:reading

book-author

著者名。省略不可。複数列挙可。

構成要素:任意の文字列

属性:role

文字列型。"著"、"訳"、"監修"、"編"、"画" などの著作の種類を表す語。

共通の属性:reading

pub-date

出版年月日。"YYYYMMDD" 形式の数字。省略可。

構成要素:"0"〜"9"の数字

publisher

出版社。省略可。

構成要素:任意の文字列

属性:code

文字列型。4桁の数字。日本出版取次協会制定の取引コード。ない場合は設定しなくてよい。

例:

<booknfo>
    <isbn>4-06-257018-1</isbn>
    <c-code>0255</c-code>
    <book-title reading="ワープロココガフシギ">
        ワープロ,ここが不思議
    </book-title>
    <book-subtitle>ちょっと知的なワープロ学</book-subtitle>
    <edition>改訂新版</edition>
    <series-title reading="ブルーバックス 1018">
        ブルーバックス B1018
    </series-title>
    <book-author role="著" reading="フルセ ユキヒロ">
        古瀬 幸広
    </book-author>
    <pub-date>19940530</pub-date>
    <publisher code="1234">東西南北出版社</publisher>
</bookinfo>

8. 論理構造単位要素

JepaXのトップレベルの要素であるcover, front, body, backの各要素は、唯一の論理構造単位要素であるdiv要素のみから構成される。

div要素はそれ自身が複数のdiv要素を含むことができ、「部」→「章」→「節」といった階層を持った文書構造はdiv要素をネストさせていくことにより表現する。「まえがき」「あとがき」「解説」などの階層を持たない論理構造単位も単独のdiv要素として表現する。また、「引用」や「プログラムリスト」などもdiv要素としてまとめることで表現する。

div

ひと区切りのまとまった論理構造単位を表す要素。

構成要素:

先頭にひとつのhead要素(省略可)。

その後に「div要素、note要素、リスト要素、ブロック要素のどれか」の0個以上の繰り返し。

属性:type

列挙型。その論理構造単位の種別を表す。この種別は将来の仕様更新時に追加されていく可能性がある。

この属性は必ずしも設定しなくてはならないものではなく、未設定でもよい。

"表紙"、"あらすじ"、"抄録"、"著者紹介"、

"とびら"、"謝辞"、"献辞"、"序文"、"凡例"、"目次"、"図版目次"、

"部"、"篇"、"章"、"節"、"項1"、" 項2"、" 項3" 、"項4"、"項5"、"項6"

"あとがき"、"解説"、"付録"、"索引"、"用語集"、"年表"、"関連書籍"、"奥付"

"引用"、"詩"、"プログラムリスト" 、"参考文献"、"囲み"

("項1"〜"項6" の数字はASCIIの数字 &#x31〜&#x36)

属性:xtype

文字列型。type属性の定義された以外の種別を独自に定義したい場合に使用する。任意の文字列で新たな種別を定義できる。

この属性を設定する場合は、type属性を設定してはならない。

「共通の属性」のxtypeの項参照。

共通の属性:id , class, vflow

head

論理構造単位についての「タイトル」「サブタイトル」「著者名」などの情報をまとめた要素。通常はその論理構造単位の先頭に表示される。単なるタイトルだけではなく、文章(リード)や図なども含むことができる。これによって、章の始まりなどに使われる「中とびら」などもこのhead要素として表現できる。

div要素の先頭にのみ現れる。

構成要素:

no要素、title要素、subtitle要素、author要素をこの順で含む(どの要素も省略可)。その後に「リスト要素かブロック要素」の0個以上の繰り返し。

共通の属性:class, vflow

no

タイトルの前に付加される序数を含んだ語。「第2章」「1.」など

構成要素:

「任意の文字列かインライン要素」の0個以上の繰り返し。

共通の属性:class, vflow

title

タイトル。

構成要素:

「任意の文字列かインライン要素」の0個以上の繰り返し。

共通の属性:class, vflow

subtitle

サブタイトル。

構成要素:

「任意の文字列かインライン要素」の0個以上の繰り返し。

共通の属性:class, vflow

author

著者名。

構成要素:

「任意の文字列かインライン要素」の0個以上の繰り返し。

共通の属性:class, vflow

note

欄外や章末などに配置される「注」。

構成要素:

先頭にno要素とtitle要素(どちらも省略可)。その後に「リスト要素かブロック要素」の0個以上の繰り返し。

no要素、title要素はhead要素と共用。

共通の属性:id , class, vflow

例:

<div type="章">
    <head>
        <no>第一章</no><title>電子出版の歴史</title>
    </head>
    <div type="節">
        <head>
            <no>1.</no><title>黎明期</title>
            <subtitle>CD-ROM辞書の時代</subtitle>
        </head>
            ・・・
            ・・・
        (本文のブロック要素の繰り返し)
            ・・・
            ・・・
        <note>
            <no>注1</no><title>世界初の電子辞書</title>
            ・・・
        (注のブロック要素の繰り返し)
            ・・・
        </note>
    </div>
        ・・・
        ・・・
    (節のdiv要素の繰り返し)
        ・・・
        ・・・
</div>
			

9. リスト要素

リスト要素の各項目は「リスト要素かブロック要素」の繰り返しであり、文字列が直接現れることはない。一行で済むような項目の列挙をしたい場合でも、その文をp要素で括ってブロック要素にしなくてはならない。


1) 順序なしリスト

ul

順序なしリスト。

構成要素:

li要素の1個以上の繰り返し。

共通の属性:id , class, vflow

li

リストの1項目。

ul要素とol要素の中にのみ使用できる。

構成要素:

「リスト要素かブロック要素」の1個以上の繰り返し。

共通の属性:id , class, vflow

2) 順序つきリスト

ol

順序つきリスト。

構成要素:

li要素の1個以上の繰り返し。

共通の属性:id , class, vflow

3) 定義リスト

dl

定義リスト。

構成要素:

「dt要素かdd要素」の1個以上の繰り返し。

共通の属性:id , class, vflow

dt

定義名。

dl要素の中にのみ使用できる。

構成要素:

「任意の文字列かインライン要素」の0個以上の繰り返し。

共通の属性:id , class, vflow

dd

定義内容。

dl要素の中にのみ使用できる。

構成要素:

「リスト要素かブロック要素」の1個以上の繰り返し。

共通の属性:id , class, vflow

10. ブロック要素


1) パラグラフ

p

パラグラフ。文章は必ずパラグラフにまとめて、p要素として表現する。

構成要素:

「任意の文字列かインライン要素」の0個以上の繰り返し。

共通の属性:id , class, vflow

2) 整形済みテキスト

pre

整形済みのテキスト。改行文字や空白文字をそのまま利用し、固定ピッチのフォントで表示して欲しいテキスト。

構成要素:

「任意の文字列か、mlg要素, ruby要素, sup要素, sub要素, br要素, img要素 以外のインライン要素」の0個以上の繰り返し。

共通の属性:id , class, vflow

4) 表

table

表全体を表す要素。

構成要素:

最初にcaption要素(省略可)、そのあとにtr要素の1個以上の繰り返し。

共通の属性:id , class, vflow

caption

表、図、写真、挿し絵のタイトルや説明。

table要素とfloat要素の中でのみ使用できる。

構成要素:

最初にno要素とtitle要素(どちらも省略可)。その後にp要素の0個以上の繰り返し。

no要素、title要素はhead要素と共用。

共通の属性:class, vflow

tr

表の一行。

table要素の中にのみ使用できる。

構成要素:

「th要素またはtd要素」の1個以上の繰り返し。

共通の属性:class, vflow

th

表のヘッダー用セル。

tr要素の中にのみ使用できる。

構成要素:

「任意の文字列かインライン要素」の0個以上の繰り返し。

共通の属性:class, vflow

td

表のデータ用セル。

tr要素の中にのみ使用できる。

構成要素:

「任意の文字列かインライン要素」の0個以上の繰り返し。

共通の属性:class, vflow

5) 外部ファイルデータ

float

外部ファイルで提供され、表示の時には本文とは独立したレイアウトで配置されるデータ。図、写真、挿し絵、動画、音声など。

構成要素:

最初にcaption要素(省略可)、そのあとに1個以上のres要素の繰り返し。

caption要素はtable要素と共用。

属性:type

列挙型。そのデータの種別を表す。この種別は将来の仕様更新時に追加されていく可能性がある。

この属性は必ずしも設定しなくてはならないものではなく、未設定でもよい。

"図"

"写真"

"挿し絵"

"表"(イメージで提供されるもの)

属性:xtype

文字列型。type属性の定義された以外の種別を独自に定義したい場合に使用する。任意の文字列で新たな種別を定義できる。

この属性を設定する場合は、type属性を設定してはならない。

「共通の属性」のxtypeの項参照。

共通の属性:id , class, vflow

res

外部ファイルの実体やその形式を表す要素。

画像ファイル、音声ファイル、動画ファイル、表計算アプリケーションのファイルや、数式処理アプリケーションのファイルなど。

構成要素:

なし。空要素。

共通属性:class, vflow, src, mimetype

11. インライン要素

通常の文字列の中で使用される要素。


1) 汎用インライン要素

span

汎用のインライン要素。この要素自体に特別な意味は持っていないが、インライン要素化することによって特定の文字列に属性を付与することが可能になる。

構成要素:

「任意の文字列かインライン要素」の0個以上の繰り返し。

属性:type

列挙型。その文字列論理構造的な種別を表す。この種別は将来の仕様更新時に追加されていく可能性がある。

この属性は必ずしも設定しなくてはならないものではなく、未設定でもよい。

"URL" 文字列がURLであることを表す。
属性:xtype

文字列型。type属性の定義された以外の種別を独自に定義したい場合に使用する。任意の文字列で新たな種別を定義できる。

この属性を設定する場合は、type属性を設定してはならない。

「共通の属性」のxtypeの項参照。

共通の属性:id, class, vflow, break

例:

<span type="URL">http://www.jepa.or.jp/</span>

2) 強調

em

なんらかの方法で強調されるべき文字列。

構成要素:

「任意の文字列かインライン要素」の0個以上の繰り返し。

共通の属性:id, class, vflow, break

例:

<em class="ゴシック">何の料金も</em>支払う必要がない

3) 参照

ref

同一文書内のid属性をもった要素への参照。

構成要素:

「任意の文字列かインライン要素」の0個以上の繰り返し。

属性:idref

IDREF型。参照先の要素のID属性値。

共通の属性:class, vflow, break

例:

<ref idref="fig13" >図13</ref>参照

4) キーワード

key

キーワードとなる文字列。索引に含めたい文字列などをマークアップしておくことにより、索引の自動生成などが可能になる。

構成要素:

「任意の文字列かインライン要素」の0個以上の繰り返し。

共通の属性:id, class, vflow, break, reading

例:

<key reading="サカモトリョウマ">図13</key>

5) 縦横文字切り替え

縦組み表示であるか横組み表示であるかによって、本文の文字列を変更する必要がある場合に使用される要素。

byflow

構成要素:

ht要素、vt要素をこの順で含む。

共通の属性:class, vflow, break

ht

横組みの時に使用される文字列。byflow要素の中にのみ使用できる

構成要素:

「任意の文字列かbyflow要素以外のインライン要素」の0個以上の繰り返し。

共通の属性:class, break

vt

縦組みの時に使用される文字列。byflow要素の中にのみ使用できる

構成要素:

「任意の文字列かbyflow要素以外のインライン要素」の0個以上の繰り返し。

共通の属性:class, vflow, break

例:

<byflow><ht>上の</ht><vt>右の</vt></byflow>表において

6) 割注

mlg

割注。

構成要素:

「任意の文字列かmlg要素以外のインライン要素」の0個以上の繰り返し。

共通の属性:class, vflow, break

7) ルビ

ruby

ルビ付きの文字列。

構成要素:

rb要素、rt要素をこの順で含む。

共通の属性:class, vflow, break

rb

ルビの付けられるベースの文字列。ruby要素の中にのみ使用できる

構成要素:

「任意の文字列、sup要素、sub要素、gi要素のどれか」の0個以上の繰り返し。

共通の属性:class, vflow, break

rt

ルビ文字列。ruby要素の中にのみ使用できる

構成要素:

「任意の文字列、sup要素、sub要素、gi要素のどれか」の0個以上の繰り返し。

共通の属性:class, vflow, break

例:

<ruby><rb>株式会社</rb><rt>かぶしきがいしゃ</rt></ruby>

8) 上付き、下付き

sup

上付きの添え字。

構成要素:

「任意の文字列かgi要素」の0個以上の繰り返し。

共通の属性:class, vflow, break

sub

下付きの添え字。

構成要素:

「任意の文字列かgi要素」の0個以上の繰り返し。

共通の属性:class, vflow, break

9) 改行

br

改行を表す要素。

構成要素:

なし。空要素。

共通属性:class

10) インライン画像

img

文字列と同じ行内に表示される画像データの外部ファイル。

構成要素:

なし。空要素。

共通属性:class, vflow, src, mimetype

11) 字形イメージ

gi

文字と同じように扱う字形イメージを表す要素。

Unicodeに含まれていない文字を使いたいときや、通常の文字コードでは厳密に字形を特定できない場合などに使用する。

何らかの字形分類体系を利用し、その体系を特定する名称と、その体系での番号や名称で字形イメージを指定する。名称や番号によって一意に字形イメージを特定することが可能であれば、どのようなものでも字形分類体系として使用できる。

字形分類体系を特定する名称や、字形イメージの番号や名称の表記法についてはJepaXでは規定しないが、文書内で使用した字形分類体系については、jepaxinfo要素の中のgiset-desc要素に、それを利用するのに十分な説明を記述しなくてはならない。

構成要素:

なし。空要素。

属性:set

文字列型。字形分類体系を表す文字列。

属性:name

文字列型。setで指定した字形分類体系おける字形イメージの番号や名称。

属性:alt

文字列型。字形イメージの代替表示文字列。何らかの理由で指定された字形イメージを正しく表示できない時に代わりに表示される。

この属性が指定されていない場合には、デフォルトで "〓" が代替文字列となる。

共通の属性:class, vflow

例:

森 <gi set="mojikyo" name="58562" alt="鴎" />外

<gi set="mojikyo" name="39630" alt="&#x9127;" />小平

深<gi set="mojikyo" name="04894" alt="(土川)" />経済特区

<gi set="mojikyo" name="50021" alt="ボク(さんずいに墨)" />東
奇<gi set="mojikyo" name="35978" alt="譚" />

12) インライン要素の包含関係

インライン要素同士の包含関係を整理すると次の表のようになる。

左辺が親要素、上辺が子要素として、その包含関係が許されるかどうかを示したものである。

span em ref key byflow mlg ruby sup sub br img gi
span
em
ref
key
byflow ×
mlg ×
ruby × × × × × × × × ×
sup × × × × × × × × × × ×
sub × × × × × × × × × × ×
br × × × × × × × × × × × ×
img × × × × × × × × × × × ×
gi × × × × × × × × × × × ×

包含関係が許されない場合、それは直接の子要素となれないだけでなく、他の要素を間に挟んでの子孫要素になることもできない。(ただし、DTDでは直接の親子関係しか規定できないので、このようなエラーは通常のXMLパーサーだけではチェックすることはできない。)


12. 共通の属性

id

ID型。ref要素の参照先になるときに使用される識別用文字列。文書内でユニークなものでなくてはならない。

div要素とその子孫となる要素の多くで使用される。

class

文字列型。クラス名を表す空白を含まない文字列。複数のクラス名を空白で区切って指定することもできる。

クラス名は要素を分類する汎用的な方法として使用できる。使用したクラス名の意味、変換や表示の際に期待する処理方法などについて、簡単な説明をbookinfo要素の中のclass-desc要素に記述しておかなくてはならない。

div要素とその子孫となる要素の多くで使用される。

div要素、float要素、span要素については、type/xtype属性による分類が定義されている。これらの要素に対してclass属性による分類を行うのは、type/xtype属性とは別の観点からの分類を行いたい場合に限るべきである。

vflow

列挙型。文書全体を縦組み表示するときにその要素の表している内容(文字列、インライン画像、字形イメージ)をどのように表示するかの指定。

"vert" 下方向に進めながら配置。

"horz" 右方向に進めながら配置。(「縦中横」もこれで表す)

"rot90" 個々の文字、画像、字形イメージを時計回りに90度回転

させた上で、下方向に進めながら配置。

div要素とその子孫となる要素の多くで使用される。

この属性が未設定の場合には、以下の方法で属性が決定される。

・table要素、float要素ならば、"horz"となる。

・親要素がvflow属性をもてる要素ならば、そのvflow属性が引き継がれる。

・親要素がvflow属性をもてない要素ならば、"vert"となる。

欧文は"rot90"が自然な組み方であり、通常の縦組み表示のワープロなどでは半角文字については自動的にこの組み方がデフォルトになっていることが多い。しかし、JepaXでは文字種によるデフォルトの切換は行わない。従って一般の縦組みワープロと同様の表示を求めるならば、文中のすべての欧文単語についてspan要素としてマークアップし、"rot90"の属性を与える必要がある。

例:

<span vflow="vert">XML</span>とは、
<span vflow="rot90">Extensible Markup Language</span>の略で、
<span vflow="horz">’98</span>年に
<span vflow="vert">W3C</span>の
<span vflow="rot90">Recommendation</span>となった。

break

列挙型。改行などによって要素が分割されることを許すかどうかの指定。

"yes" 分割可。(デフォルト)

"no" 分割禁止。

空要素でないインライン要素で使用される。

この属性が未設定の場合には、以下の方法で属性が決定される。

・親要素がbreak属性をもてる要素ならば、そのbreak属性が引き継がれる。

・親要素がbreak属性をもてない要素ならば、"yes"となる。

reading

文字列型。ASCIIまたは全角カタカナのみによる読み文字列。使用できる文字の正確な範囲は、0x0020〜0x007e, 0x30a1〜0x30fe 。

key要素とメタデータ要素のいくつかで使用される。

src

文字列型。外部ファイルのファイル名。文書ファイル自身のある場所からの相対URIで記述する。

res要素、img要素で使用される。

mimetype

文字列型。外部ファイルの形式。RFC2046で定義されているmedia typeを使用する。 http://www.ietf.org/rfc/rfc2046.txt

例えば、GIF画像なら "image/gif"、JPEG画像なら "image/jpeg" となる。

IANAに登録されたmedia type のリストは

ftp://ftp.isi.edu/in-notes/iana/assignments/media-types/

res要素、img要素で使用される。

xtype

文字列型。列挙型であるtype属性の拡張用として使用される。使用される要素によって意味が異なるので、厳密には共通の要素ではないが、その形式と取り扱い方法は共通である。

  • 新たな種別を定義して任意の文字列で設定する。

  • その種別の意味や取り扱い方法については文書を交換する二者間で別途合意がとれている必要がある。

  • jepaxinfo要素の中のxtype-desc要素として、使用したxtype属性の値(文字列)と、それについての簡単な説明文を記述しておかなくてはならない。

div要素、float要素、span要素で使用される。