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としておく方がよい。