Hi Jean,
All XIncludes are resolved by the parser before the DocBook stylesheet sees the content. I think these problems should be presented to the libxml2 mailing list.

Right away you pointed out one non-conformance issue: the XInclude standard says a missing href attribute is supposed to be the same thing as an href="" attribute, but your tests show they behave differently.

Bob Stayton
Sagehill Enterprises
DocBook Consulting
[EMAIL PROTECTED]


----- Original Message ----- From: "Jean Jordaan" <[EMAIL PROTECTED]>
To: "Docbook Apps" <[email protected]>
Sent: Monday, November 19, 2007 1:12 AM
Subject: [docbook-apps] Trying to understand XInclude usage


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::

  <font color="red">&lt;xi:include&gt;&lt;/xi:include&gt;</font>

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

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

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to