book.xml, chapter.xml, HelloWorld.java をファイルを作成します。
ファイルの文字コードはUTF-8(BOMなし)にします。
book.xml
<?xml version="1.0" encoding="UTF-8"?>
<book
xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="mybook">
<title>Myブック</title>
<chapter xml:id="mybook.chapter-1">
<title>メインのファイル</title>
<section>
<title>テーブルを表示</title>
<table>
<title>成果物とPackaging</title>
<tgroup cols="4">
<colspec colnum="1" colwidth="100" />
<colspec colnum="2" colwidth="200" />
<colspec colnum="3" colwidth="50" colname="jar"
align="center"/>
<colspec colnum="4" colwidth="50" colname="war"
align="center"/>
<thead valign="top">
<row>
<entry morerows='1'>Phase</entry>
<entry morerows='1'>Plugin:Goal</entry>
<entry namest="jar" nameend="war">
packaging
</entry>
</row>
<row>
<entry>jar</entry>
<entry>war</entry>
</row>
</thead>
<tbody valign="top">
<row>
<entry>compile</entry>
<entry>compiler:compile</entry>
<entry>○</entry>
<entry>○</entry>
</row>
<row>
<entry morerows='1'>package</entry>
<entry>jar:jar</entry>
<entry>○</entry>
<entry>―</entry>
</row>
<row>
<entry>war:war</entry>
<entry>―</entry>
<entry>○</entry>
</row>
</tbody>
</tgroup>
</table>
</section>
</chapter>
<xi:include href="chapter.xml" parse="xml"/>
</book>
chapter.xml
<?xml version="1.0" encoding="UTF-8"?>
<chapter
xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="mybook.chapter-2">
<title>インポートされたファイル</title>
<section>
<title>DocBookで遊ぼう</title>
<caution>
<title>注意書!</title>
<para>ペンキ塗りたて</para>
</caution>
<example>
<title>HelloWorld.java</title>
<programlisting role="java"><xi:include
href="inc/HelloWorld.java" parse="text"
encoding="UTF-8" /></programlisting>
<screenco>
<areaspec />
<screen>javac HelloWorld.java<co
xml:id="mybook.chapter-2.javac"/></screen>
<calloutlist>
<callout arearefs="mybook.chapter-2.javac">
<para>コンパイルをします。</para>
</callout>
</calloutlist>
</screenco>
</example>
<figure>
<title>my-image.png表示</title>
<imageobject>
<imagedata format="PNG"
fileref="images/my-image.png" />
</imageobject>
</figure>
</section>
</chapter>
HelloWorld.java
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("HelloWorld");
}
}
textdataタグについて
DocBookのtextdataタグを使っても外部ファイルを取込むことができるが
相対パスでファイルを指定した場合Saxonではうまく読込めない。
(相対パスから絶対パスの組立てでファイルパスがずれてしまう)
Xalanでは問題なく処理できる。
外部ファイルの取込みは<xi:include>タグを使う方が無難なようだ。
またインクルードするファイルは文字コードをUTF-8(BOMなし)で改行コードをLFとしておく方がよい。
DocBookのtextdataタグを使っても外部ファイルを取込むことができるが
相対パスでファイルを指定した場合Saxonではうまく読込めない。
(相対パスから絶対パスの組立てでファイルパスがずれてしまう)
Xalanでは問題なく処理できる。
外部ファイルの取込みは<xi:include>タグを使う方が無難なようだ。
またインクルードするファイルは文字コードをUTF-8(BOMなし)で改行コードをLFとしておく方がよい。