OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [docbook-apps] xml:base problem with nested XIncludes


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@sagehill.net


----- Original Message ----- 
From: "Ron Catterall" <ron@catterall.net>
To: "Bob Stayton" <bobs@sagehill.net>; <docbook-apps@lists.oasis-open.org>
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@sagehill.net
>>
>>
>> ----- Original Message ----- From: "Ron Catterall" <ron@catterall.net>
>> To: <docbook-apps@lists.oasis-open.org>
>> 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@catterall.net
>>> 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@lists.oasis-open.org
>> For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
>>
>>
>>
>
> -- 
> Ron Catterall Ph.D. D.Sc.
> ron@catterall.net
> http://catterall.net
> 



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]