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