[ https://issues.apache.org/jira/browse/XERCESC-1918?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Boris Kolpackov updated XERCESC-1918: ------------------------------------- Fix Version/s: 3.1.1 3.2.0 Scheduling for 3.1.1. > 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 > Fix For: 3.1.1, 3.2.0 > > 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. - If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org For additional commands, e-mail: c-dev-h...@xerces.apache.org