[ 
https://issues.apache.org/jira/browse/XERCESJ-1749?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17581167#comment-17581167
 ] 

Radu Coravu edited comment on XERCESJ-1749 at 9/5/22 9:01 AM:
--------------------------------------------------------------

So in this particular case with the "a3.xml" opened:

{code}<book xmlns="http://docbook.org/ns/docbook";
    xmlns:xlink="http://www.w3.org/1999/xlink";
    xmlns:xi="http://www.w3.org/2001/XInclude";
    xml:id="a-book"
    version="5.0">
    <title>A</title>
    <chapter xml:id="a-chapter">
        <title>a chapter</title>
        <para>foo3</para>
    </chapter>
   <xi:include href="a3.xml" xpointer="a-chapter"/>
</book>
{code}

the Xerces parser uses this method 
"org.apache.xerces.xinclude.XIncludeHandler.searchForRecursiveIncludes(String)" 
to decide that it is a recursivity, without looking at the xpointer value.
Is the Xerces behavior correct according to the XInclude specification's 
Inclusion Loops section section?

https://www.w3.org/TR/xinclude/#loops


was (Author: radu_coravu):
So in this particular case:

{code}<book xmlns="http://docbook.org/ns/docbook";
    xmlns:xlink="http://www.w3.org/1999/xlink";
    xmlns:xi="http://www.w3.org/2001/XInclude";
    xml:id="a-book"
    version="5.0">
    <title>A</title>
    <chapter xml:id="a-chapter">
        <title>a chapter</title>
        <para>foo3</para>
    </chapter>
   <xi:include href="a3.xml" xpointer="a-chapter"/>
</book>
{code}

the Xerces parser uses this method 
"org.apache.xerces.xinclude.XIncludeHandler.searchForRecursiveIncludes(String)" 
to decide that it is a recursivity, without looking at the xpointer value.
Is the Xerces behavior correct according to the XInclude specification's 
Inclusion Loops section section :

https://www.w3.org/TR/xinclude/#loops

> XInclude parsing fails on legal construct
> -----------------------------------------
>
>                 Key: XERCESJ-1749
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1749
>             Project: Xerces2-J
>          Issue Type: Bug
>          Components: XInclude 1.0
>    Affects Versions: 2.12.2
>         Environment: jlpoole@ares /usr/local/src/xerces_2.12.2/xerces-2_12_2 
> $ java -version
> openjdk version "1.8.0_332"
> OpenJDK Runtime Environment (Temurin)(build 1.8.0_332-b09)
> OpenJDK 64-Bit Server VM (Temurin)(build 25.332-b09, mixed mode)
> jlpoole@ares /usr/local/src/xerces_2.12.2/xerces-2_12_2 $
> I downloaded Xerces-J-src.2.12.2.tar.gz and Xerces-J-tools.2.12.2.tar.gz and 
> built same, then tested with the example file above.
> Attaching examples_log.txt, dated Wednesday  Aug 17, 2022  11:35:34 AM, of 
> runs for both files also showing xmllint output successfully resolving the 
> XIncludes.
>            Reporter: John Poole
>            Priority: Critical
>              Labels: XInclude
>         Attachments: examples_log.txt
>
>
> Suppose a3.xml:
> {noformat}
> <book xmlns="http://docbook.org/ns/docbook";
>     xmlns:xlink="http://www.w3.org/1999/xlink";
>     xmlns:xi="http://www.w3.org/2001/XInclude";
>     xml:id="a-book"
>     version="5.0">
>     <title>A</title>
>     <chapter xml:id="a-chapter">
>         <title>a chapter</title>
>         <BurstingPara xml:id="t1000">Warning: Read following paragraph 
> carefully.</BurstingPara>
>         <para>foo</para>
>         <xi:include href="a3.xml" xpointer="t1000"/>
>         <para>foo2</para>
>         <xi:include href="a3.xml" xpointer="t1000"/>
>         <para>foo3</para>
>     </chapter>
>    <xi:include href="a3.xml" xpointer="a-chapter"/>
> </book>{noformat}
> Xerces 2.12.2 rejects the XML with:
> edit: added CLASSPATH recital below to provide context for following session:
> {code:java}
> jlpoole@ares /usr/local/src/xerces_2.12.2/xerces-2_12_2 $ date;echo $CLASSPATH
> Wed Aug 17 12:19:41 PDT 2022
> .:build/xercesSamples.jar:build/xercesImpl.jar:build/serializer.jar:build/resolver.jar
> jlpoole@ares /usr/local/src/xerces_2.12.2/xerces-2_12_2 $
> jlpoole@ares /usr/local/src/xerces_2.12.2/xerces-2_12_2 $ java dom.Writer -xi 
> a3.xml
> [Fatal Error] a3.xml:1:1: Recursive include detected.  Document 
> 'file:///usr/local/src/xerces_2.12.2/xerces-2_12_2/a3.xml' was already 
> processed.
> [Fatal Error] a3.xml:11:53: Error attempting to parse XML file 
> (href='a3.xml').
> jlpoole@ares /usr/local/src/xerces_2.12.2/xerces-2_12_2 $ {noformat}
> The XML XIncludes above are a legal construct, yet Xerces throws an error 
> when the parser should process the XIncludes.
> This bug mimics the bug encountered in the Gnome XMLParser2 project:[ xmllint 
> handling of recursion|[https://gitlab.gnome.org/GNOME/libxml2/-/issues/348]]
> Here is another sample file illustrating the failure:
> {code:java}
> <book xmlns="http://docbook.org/ns/docbook";
>     xmlns:xlink="http://www.w3.org/1999/xlink";
>     xmlns:xi="http://www.w3.org/2001/XInclude";
>     xml:id="b-book"
>     version="5.0">
>     <title>B</title>
>     <chapter xml:id="b-chapter">
>         <title>b chapter</title>
>         <para>foo</para>
>     </chapter>
>     <xi:include href="a3.xml" xpointer="a-chapter"/>
> </book>{code}
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscr...@xerces.apache.org
For additional commands, e-mail: j-dev-h...@xerces.apache.org

Reply via email to