« Return to Thread: xml:base problem with nested XIncludes

Re: xml:base problem with nested XIncludes

by Ron Catterall :: Rate this Message:

Reply to Author | View in Thread

Hi Bob

All I see is the XEP default image if I do not do the copy first.  When
I do the copy the picture appears OK.  However, the sizing of the
default image does change when I change the sizing in my xml.  This
seems reasonable, set up the space first then fetch the image to put in it.

1. Java - I'm on a Mac, OSX 10.4.11 and Java 1.5.  Java is not included
in the Oxygen Mac download as far as I know.

2. the fullpath information
(src="url(file:/Library/WebServer/Documents/_XML/_test//Library/WebServer/Documents/_XML/_test/images/Old_road_grass-54.jpg)")
is inserted before FO processing:
<fo:marker
marker-class-name="section.head.marker">Pictures</fo:marker><fo:block
font-size="20.735999999999997pt">Pictures</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block><fo:block
space-before.minimum="0.5em" space-before.optimum="1em"
space-before.maximum="2em" space-after.minimum="0.5em"
space-after.optimum="1em" space-after.maximum="2em"
keep-together.within-column="always" id="LowRoad"><fo:block
space-before.optimum="1em" space-before.minimum="0.8em"
space-before.maximum="1.2em" font-weight="bold" font-size="12pt"
hyphenate="false" space-after.minimum="0.4em"
space-after.optimum="0.6em" space-after.maximum="0.8em"
keep-with-next.within-column="always">Figure A.1. Medieval
Road</fo:block><fo:block id="d0e17"
text-align="center"><fo:external-graphic
src="url(file:/Library/WebServer/Documents/_XML/_test//Library/WebServer/Documents/_XML/_test/images/Old_road_grass-54.jpg)"
width="100%" height="auto" content-width="9.0cm" content-height="auto"
content-type="content-type:image/jpeg"
text-align="center"/><fo:block><fo:block space-before.optimum="1em"
space-before.minimum="0.8em" space-before.maximum="1.2em">Medieval
Road</fo:block></fo:block></fo:block></fo:block></fo:block></fo:block></fo:flow></fo:page-sequence></fo:root>

3. 1.75.1 - yes, my paths are:
for built-in Oxygen stylesheet:
...10.3/oxygen/frameworks/docbook/xsl/fo/docbook.xsl
for the 1.75.1 stylesheet, I installed it here:
...10.3/oxygen/frameworks/docbook/5.0/docbook-xsl-ns-1.75.1/fo/docbook.xsl

4. More confusion.
The problem first arose in an article I was writing, I got the XEP
default images without the copy step.  I extracted from my article the
test files I sent, which also give the XEP default images without the
copy step.
I have now updated from XEP 4.10 to XEP 4.15 and the problem has gone
away in my real article, I see the images correctly without the copy
step.  However, the problem has not gone away with the test files, I
still get the XEP default images when the copy step is omitted - (the
.fo output above is with FO processing switched off, but my FO processor
in Oxygen is at 4.15 level).

Ron

Bob Stayton wrote:

> Hi Ron,
> Yes, I see the picture without running the copy stylesheet to resolve
> XIncludes first, and I get no error message from XEP about the missing
> graphic.  I doubt if it is the XEP version, since it doesn't do any
> manipulations of the path of a graphic.  Regarding the Java version, it
> seems that Oxygen for Windows and Linux always ships with a Java VM
> (currently 1.6.0_11), so I'm presuming it is using that for the
> transforms too.
>
> I keep wondering where the full path information is coming from.  Try
> changing your transformation scenario in Oxygen to not run the XSL-FO
> process, and just save the .fo to a file.  If you peek in that FO file,
> that will tell you whether the src attribute in the fo:external-graphic
> has a full path (and correct or incorrect one).
>
> BTW, my installation of Oxygen 10.3 does not include a
> docbook-xsl-1.75.1 under the frameworks directory of Oxygen.  Did you
> install that?
>
> Bob Stayton
> Sagehill Enterprises
> bobs@...
>
>
> ----- Original Message ----- From: "Ron Catterall" <ron@...>
> To: "Bob Stayton" <bobs@...>; <docbook-apps@...>
> Sent: Thursday, July 02, 2009 2:32 PM
> Subject: Re: [docbook-apps] xml:base problem with nested XIncludes
>
>
>> Hi Bob
>>
>> Could it be XEP 4.10?  I'll move to 4.13 and check.  I can't see the
>> Java version being responsible.  I checked several times with my
>> too-chain, it is reproducible with XEP 4.10.
>>
>> Bob Stayton wrote:
>>> Hi Ron,
>>> I'm not able to duplicate this problem.  I'm using your files with
>>> Oxygen 10.3, DocBook XSL 1.75.1, Saxon 6 and XEP 4.13, Java 1.6.0_05.
>>>
>> Do you see the picture without doing the 'copy' xsl first?  I don't.
>>
>>> Two things:
>>>
>>> 1.  I didn't see where you described the directory structure
>>> containing your files.  As far as I can tell, they all reside in the
>>> the current directory, except the graphic which is in a subdirectory
>>> named 'images'. Is that correct?  I wasn't clear what you expected
>>> the src attribute in the fo file to be, as compared to what you got.
>>>
>> Sorry, I omitted the directory structure.  You are right, the files
>> are all in one directory and images is a subdirectory.  I expected
>> images/...jpg
>>
>>> 2.  Normally the XInclude processor does not add xml:base unless an
>>> included file is in a different directory, and that doesn't seem to
>>> be the case here.
>>>
>> The XInclude processing seems to be fine, no problems.  It is only the
>> file that is referenced by the nested XInclude that gets the wrong
>> (full and duplicated) path and I don't see the picture.  As I remember
>> the 2005 problem did not generate full paths, it just duplicated the
>> 'images' directory.  maybe I am wrong in thinking it the same problem.
>>
>>> I'm wondering where the full path information came from, because it
>>> does not appear to be in the XML files.  Normally a processor will
>>> work with relative paths, but the error message indicates a full
>>> path.  Is a catalog involved here?
>>>
>> No, nothing via a catalog.  The only full path I have is for docbook.xsl
>>
>> I'll post when I've checked with XEP 4.13.
>>
>> Ron
>>
>>
>>> Bob Stayton
>>> Sagehill Enterprises
>>> bobs@...
>>>
>>>
>>> ----- Original Message ----- From: "Ron Catterall" <ron@...>
>>> To: <docbook-apps@...>
>>> Sent: Thursday, July 02, 2009 1:09 PM
>>> Subject: [docbook-apps] xml:base problem with nested XIncludes
>>>
>>>
>>>> Hi
>>>>
>>>> A problem with nested XIncludes that I raised in 2005 has either not
>>>> been resolved, or has risen again in DB5 and 1.75.1.  The problem is in
>>>> the value of xml:base which results in the generation of bad paths to
>>>> files referenced in a nested XInclude.  A sample program to demonstrate
>>>> the problem is below, and the separate files are attached.  XEP reports
>>>> the bad paths - see below - but fop just fails to produce any
>>>> diagnostic
>>>> output.  A work around is to pre-process the XIncludes and appropriate
>>>> xsl code is in the file copy.xsl
>>>>
>>>> root0.xml XIncludes root1.xml which XIncludes file0.xml which
>>>> references
>>>> a jpg file in a <figure>.  The file cannot be found because the
>>>> xml:base
>>>> is wrongly applied.
>>>>
>>>> Tool chain Oxygen 10.3, DB5, XSL 1.75.1, Saxon-6.5.5 and
>>>> XEP-4.10-20070727.
>>>> java version "1.5.0_19"
>>>> Java(TM) 2 Runtime Environment, Standard Edition (build
>>>> 1.5.0_19-b02-306)
>>>> Java HotSpot(TM) Client VM (build 1.5.0_19-138, mixed mode)
>>>>
>>>>
>>>>
>>>> ---File: root0.xml
>>>> <?xml version="1.0" encoding="UTF-8" ?>
>>>> <!DOCTYPE article>
>>>> <article
>>>>   xml:id="test" xmlns="http://docbook.org/ns/docbook" version="5.0"
>>>> xml:lang="EN">
>>>> <info>
>>>> <title>Main title</title>
>>>> </info>
>>>> <para></para>
>>>> <xi:include href="root1.xml"
>>>> xmlns:xi="http://www.w3.org/2001/XInclude"/>
>>>> </article>
>>>>
>>>>
>>>>
>>>> ---File: root1.xml
>>>> <?xml version="1.0" encoding="UTF-8" ?>
>>>> <!DOCTYPE appendix>
>>>> <appendix xml:id="file0" xmlns="http://docbook.org/ns/docbook"
>>>> version="5.0" xml:lang="EN">
>>>> <info>
>>>> <title>root1 title</title>
>>>> </info>
>>>> <xi:include href="file0.xml"
>>>> xmlns:xi="http://www.w3.org/2001/XInclude"/>
>>>> </appendix>
>>>>
>>>>
>>>>
>>>> ---File: file0.xml
>>>> <?xml version="1.0" encoding="UTF-8" ?>
>>>> <!DOCTYPE section>
>>>> <section xml:id="Pictures" xmlns="http://docbook.org/ns/docbook"
>>>> version="5.0" xml:lang="EN">
>>>> <info><title>Pictures</title></info>
>>>> <figure xml:id="LowRoad"><title>Medieval Road</title>
>>>> <mediaobject>
>>>> <imageobject role="xhml">
>>>> <imagedata fileref="images/Old_road_grass-54X.jpg" format="JPG"
>>>> width="100%" contentwidth="12.0cm" align="center"/>
>>>> </imageobject>
>>>> <imageobject role="fo">
>>>> <imagedata fileref="images/Old_road_grass-54.jpg" format="JPG"
>>>> width="100%" contentwidth="9.0cm" align="center"/>
>>>> </imageobject>
>>>> <caption><para  role="Start">Medieval Road</para></caption>
>>>> </mediaobject>
>>>> </figure>
>>>> </section>
>>>>
>>>>
>>>>
>>>> ---File: root.xsl
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>>>> version="1.0">
>>>> <xsl:import
>>>> href="/Applications/Utilities/oxygen/10.3/oxygen/frameworks/docbook/5.0/docbook-xsl-ns-1.75.1/fo/docbook.xsl"/>
>>>>
>>>> </xsl:stylesheet>
>>>>
>>>>
>>>>
>>>> ---XEP failure report
>>>> ---The image file referred to in file0.xml cannot be found.
>>>> ---Nested Xinclude problem - XEP gives the bad filename
>>>>         [error] Failed to create image
>>>> file:/Library/WebServer/Documents/_XML/_test//Library/WebServer/Documents/_XML/_test/images/Old_road_grass-54.jpg
>>>>
>>>> of type image/jpeg
>>>>         [error] java.io.FileNotFoundException:
>>>> /Library/WebServer/Documents/_XML/_test/Library/WebServer/Documents/_XML/_test/images/Old_road_grass-54.jpg
>>>>
>>>> (No such file or directory)
>>>>
>>>>
>>>>
>>>> If the nested Xincludes are expanded first using the following XSL,
>>>> then
>>>> the nested problem is avoided and all is well, the image file is found
>>>> and displayed
>>>> ---File: copy.xsl
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <xsl:stylesheet version="1.0"
>>>> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>>>> exclude-result-prefixes="xi"
>>>> xmlns:xi="http://www.w3.org/2001/XInclude">
>>>> <xsl:output indent="yes" method="xml" encoding="UTF-8"/>
>>>> <xsl:strip-space elements="*"/>
>>>> <!-- Match document -->
>>>> <xsl:template match="/">
>>>> <xsl:apply-templates mode="copy" select="."/>
>>>> </xsl:template>
>>>> <!-- Deep copy template -->
>>>> <xsl:template match="*|text()|@*" mode="copy">
>>>> <xsl:copy>
>>>> <xsl:apply-templates mode="copy" select="@*"/>
>>>> <xsl:apply-templates mode="copy"/>
>>>> </xsl:copy>
>>>> </xsl:template>
>>>> <!-- exclude some attributes added by the XInclude part -->
>>>> <xsl:template match="@*[name()='xml:base']" mode="copy"/>
>>>> <!-- Handle default matching -->
>>>> <xsl:template match="*"/>
>>>> </xsl:stylesheet>
>>>>
>>>>
>>>> Ron
>>>> --
>>>> Ron Catterall Ph.D. D.Sc.
>>>> ron@...
>>>> http://catterall.net
>>>>
>>>
>>>
>>> --------------------------------------------------------------------------------
>>>
>>>
>>>
>>>
>>>> <?xml version="1.0" encoding="UTF-8" ?>
>>>> <!DOCTYPE article>
>>>> <article xml:id="test" xmlns="http://docbook.org/ns/docbook"
>>>> version="5.0" xml:lang="EN">
>>>> <info>
>>>> <title>Main title</title>
>>>> </info>
>>>> <para></para>
>>>> <xi:include href="root1.xml"
>>>> xmlns:xi="http://www.w3.org/2001/XInclude"/>
>>>> </article>
>>>>
>>>
>>>
>>> --------------------------------------------------------------------------------
>>>
>>>
>>>
>>>
>>>> <?xml version="1.0" encoding="UTF-8" ?>
>>>> <!DOCTYPE appendix>
>>>> <appendix xml:id="file0" xmlns="http://docbook.org/ns/docbook"
>>>> version="5.0" xml:lang="EN">
>>>> <info>
>>>> <title>root1 title</title>
>>>> </info>
>>>> <xi:include href="file0.xml"
>>>> xmlns:xi="http://www.w3.org/2001/XInclude"/>
>>>> </appendix>
>>>>
>>>
>>>
>>> --------------------------------------------------------------------------------
>>>
>>>
>>>
>>>
>>>> <?xml version="1.0" encoding="UTF-8" ?>
>>>> <!DOCTYPE section>
>>>> <section xml:id="Pictures" xmlns="http://docbook.org/ns/docbook"
>>>> version="5.0" xml:lang="EN">
>>>> <info><title>Pictures</title></info>
>>>> <figure xml:id="LowRoad"><title>Medieval Road</title>
>>>> <mediaobject>
>>>> <imageobject role="xhml">
>>>> <imagedata fileref="images/Old_road_grass-54X.jpg" format="JPG"
>>>> width="100%" contentwidth="12.0cm" align="center"/>
>>>> </imageobject>
>>>> <imageobject role="fo">
>>>> <imagedata fileref="images/Old_road_grass-54.jpg" format="JPG"
>>>> width="100%" contentwidth="9.0cm" align="center"/>
>>>> </imageobject>
>>>> <caption><para  role="Start">Medieval Road</para></caption>
>>>> </mediaobject>
>>>> </figure>
>>>> </section>
>>>>
>>>
>>>
>>> --------------------------------------------------------------------------------
>>>
>>>
>>>
>>>
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>>>> version="1.0">
>>>> <xsl:import
>>>> href="/Applications/Utilities/oxygen/10.3/oxygen/frameworks/docbook/5.0/docbook-xsl-ns-1.75.1/fo/docbook.xsl"/>
>>>>
>>>> </xsl:stylesheet>
>>>
>>>
>>> --------------------------------------------------------------------------------
>>>
>>>
>>>
>>>
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <xsl:stylesheet version="1.0"
>>>> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>>>>    exclude-result-prefixes="xi"
>>>> xmlns:xi="http://www.w3.org/2001/XInclude">
>>>>    <xsl:output indent="yes" method="xml" encoding="UTF-8"/>
>>>>
>>>>    <xsl:strip-space elements="*"/>
>>>>
>>>>    <!-- Match document -->
>>>>    <xsl:template match="/">
>>>>        <xsl:apply-templates mode="copy" select="."/>
>>>>    </xsl:template>
>>>>    <!-- Deep copy template -->
>>>>    <xsl:template match="*|text()|@*" mode="copy">
>>>>        <xsl:copy>
>>>>            <xsl:apply-templates mode="copy" select="@*"/>
>>>>            <xsl:apply-templates mode="copy"/>
>>>>        </xsl:copy>
>>>>    </xsl:template>
>>>>    <!-- exclude some attributes added by the XInclude part -->
>>>>    <xsl:template match="@*[name()='xml:base']" mode="copy"/>
>>>>    <!-- Handle default matching -->
>>>>    <xsl:template match="*"/>
>>>> </xsl:stylesheet>
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: docbook-apps-unsubscribe@...
>>> For additional commands, e-mail: docbook-apps-help@...
>>>
>>>
>>>
>>
>> --
>> Ron Catterall Ph.D. D.Sc.
>> ron@...
>> http://catterall.net
>>
>
>
>
--
Ron Catterall Ph.D. D.Sc.
ron@...
http://catterall.net


smime.p7s (4K) Download Attachment

 « Return to Thread: xml:base problem with nested XIncludes