docbook-apps

Trying to understand XInclude usage

  • 1.  Trying to understand XInclude usage

    Posted 11-19-2007 09:13
    Hi all

    I'm having some issues with modular documents. I'm using xmlto
    http://cyberelk.net/tim/software/xmlto/
    to process the DocBook to HTML. xmlto uses xsltproc. I'm using XXE from
    XMLMind to edit (I posted a different version of this mail to the XXE
    support list).

    (1) When xi:including elements in the same document, XXE writes e.g.::

    <xi:include href="" xmlns:xi="http://www.w3.org/2001/XInclude"
    xpointer="acronyms" />

    The 'href=""' makes xsltproc complain: "element include: XInclude error
    : detected a recursion in ../glossary.xml". It drops the offending
    directive.

    This works::

    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
    xpointer="acronyms" />

    (2) The 'acronyms' id refers to a <glossdiv> element, which itself
    contains includes. While xsltproc does resolve those includes in the
    original glossdiv occurence, it doesn't resolve them when they've been
    included. Here's a simplified snippet to illustrate::

    <glossary id="manual">
    <glossdiv>...</glossdiv>
    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
    xpointer="acronyms" />
    </glossary>

    <glossary>
    <glossdiv id="acronyms">
    <glossentry>
    <glossterm>...</glossterm>
    <glossdef>
    Some text .. <xi:include href="terms.xml"
    xmlns:xi="http://www.w3.org/2001/XInclude"
    xpointer="element(operator)" />
    </glossdef>
    </glossentry>
    </glossdiv>
    </glossary>

    When I process this, 'operator' is only resolved once. When processing
    the glossary with id 'manual', xsltproc reports: "No template matches
    xi:include in para.", and generates this HTML::

    <xi:include></xi:include>

    Is this an issue with xsltproc, or with the DocBook stylesheets?

    --
    jean . .. .... //\\\oo///\\