続 xinclude-scanner
id:y-hamigaki:20060706 の続きです。
XIncludeの依存関係はboostbook.jamのxinclude-scannerで行われています。
class xinclude-scanner : scanner { // 略 rule pattern ( ) { return "xi:include[ ]*href=\"([^\"]*)\"" ; } // 略 }
単純なパターンマッチを行っているだけです。
これを利用して、
<library name="Audio" dirname="audio" xmlns:xi="http://www.w3.org/2001/XInclude" id="audio"> <xi:include href="introduction.xml"/> </library>
を
<library name="Audio" dirname="audio" xmlns:XI="http://www.w3.org/2001/XInclude" id="audio"> <!-- xi:include href="../libs/audio/doc/introduction.xml" --> <XI:include href="introduction.xml"/> </library>
に変えて、XIncludeとbjamに別のパスを与えてみたところ、うまくいきました。
一旦この細工を施すと、それ以降のXIncludeは正しく解釈されるようです。
ディレクトリ構造は、
なので、introduction.xmlを参照する起点のディレクトリがhamigaki/docになっているようです。
Jamfileのあるディレクトリより上に行くのがマズいんですかねぇ。