This problem can occur when you try to use the same olink target data for HTML and FO outputs. When you generate a target.db file, the <xreftext> element contains the fully formatted text to be used for an olink to that element, including any appropriate inline formatting markup. If you generate a target.db with an HTML stylesheet, you will get <i> in your chapter data. If you generate target.db with an FO stylesheet, you will get fo:inline in your chapter data.

So if you generate the target.db file with an HTML stylesheet, and then you use that target.db file with an FO stylesheet, you'll get the results you see. So if you need to generate both outputs, you need to keep separate target.db files, or regenerate them each time you process your documents.

Bob Stayton
Sagehill Enterprises
[EMAIL PROTECTED]


----- Original Message ----- From: "Gerd v. Egidy" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Monday, July 07, 2008 8:26 AM
Subject: [docbook-apps] XInclude problems after upgrading docbooc-xsl


Hi,

I'm in the process of upgrading my toolchain from a somewhat dusted docbook-xsl-1.69 to 1.74.
But it seems like it creates invalid FO with my configuration: XEP spews

[error] Element 'i' belonging to the anonymous namespace cannot occur in an XSL-FO document
outside 'instream-foreign-object' elements.

on every external olink. Validating the FO within oxygen fails too so I think the FO is indeed invalid
(and not my XEP too old). The invalid output looks like this:

<fo:block>Some text
   <fo:basic-link show-destination="replace"
   external-destination="url(http://some.where/reference/my-chapter.html)"
><fo:inline xmlns:xlink="http://www.w3.org/1999/xlink"; font-style="italic"
       >Reference Manual</fo:inline>, 22. Chapter, <i
       xmlns:xlink="http://www.w3.org/1999/xlink";
xmlns:xi="http://www.w3.org/2001/XInclude";>My Chapter Name</i></fo:basic-link></fo:block>
</fo:block>

It seems like this <i>-block doesn't belong there. Rendering the FO works ok if I remove it. I traced this problem back to docbook-xsl-1.72.0, version 1.71.1 is the last one that works.

The output from 1.71.1 looks a bit different:

<fo:block>Some text
  <fo:basic-link
  external-destination="url(http://some.where/reference/my-chapter.html)"
     ><fo:inline font-style="italic">Reference Manual</fo:inline>, 22.
     Chapter, My Chapter Name </fo:basic-link></fo:block>

My olinkdb.xml looks like this:

<targetset xmlns:xi="http://www.w3.org/2001/XInclude";>
   <sitemap>
       <dir name="root">
           <document targetdoc="current">
               <xi:include href="target.db"/>
           </document>
<document targetdoc="user-manual" baseuri="http://some.where/user/";>
               <xi:include href="user-manual-ext.db"/>
           </document>
<document targetdoc="reference-manual" baseuri="http://some.where/reference/";>
               <xi:include href="reference-manual-ext.db"/>
           </document>
...

So I create an id-db for each manual in my collection and pull that in via XInclude. The current manual (also part of the collection) is always found in "target.db" too. The created id databases look ok.

Does someone have an idea how to fix this?

Thank you very much.

Kind regards,

Gerd

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