[
https://issues.apache.org/jira/browse/XERCESC-1918?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
keith mcneill updated XERCESC-1918:
-----------------------------------
Attachment: xerces-c-xinclude.diff
> XInclude broken with multiple level includes
> --------------------------------------------
>
> Key: XERCESC-1918
> URL: https://issues.apache.org/jira/browse/XERCESC-1918
> Project: Xerces-C++
> Issue Type: Bug
> Components: Non-Validating Parser
> Affects Versions: 3.0.0
> Environment: linux, windows
> Reporter: keith mcneill
> Attachments: xerces-c-xinclude.diff, xinclude-bottom.xml,
> xinclude-middle.xml, xinclude-top.xml
>
>
> If you use xinclude on multiple levels (> 2) with relative path names.
> XInclude will break with an error something like "no scheme".
> I tracked this down to a problem in XIncludeUtils::doDOMNodeXInclude.
> When an includeDoc was found it created a DocumentFragment to hang the new
> copied nodes off of. At the end of processing it would paste the
> DocumentFragment on to the document. The problem was that DocumentFragment
> lost the absolute path in its getBaseURI(). This absolute path also
> contained the scheme.
> This diff fixes XInclude by not using a DocumentFragment. We just use
> insertBefore() to insert the new nodes in the destination document in order.
> This way the getBaseURI() is never lost.
> I've also included a fix to XIncludeLocation.prependPath(). PrependPath used
> to slam a new path on the beginning of the current path without checking to
> see if the current path already had a scheme. For example you could end up
> with paths like: file:///new/parent/file:///old/child. Now it will produce
> file:///new/parent/old/child. XIncludeLocation probably needs to get smarter
> about dealing with schemes & URI's in general.
> I've included a diff an example files that can be run with the XInclude
> sample.
> Note that with these fixes the xerces c++ xinclude behaves more like the java
> xinclude support.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]