[ https://issues.apache.org/jira/browse/XERCESC-1918?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
keith mcneill updated XERCESC-1918: ----------------------------------- Attachment: xinclude-top.xml xinclude-middle.xml > 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: c-dev-unsubscr...@xerces.apache.org For additional commands, e-mail: c-dev-h...@xerces.apache.org