Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
2.1.11, 2.2
-
None
-
Patch available
-
Components: Pipeline
-
Components: Pipeline
Description
As discussed at [1], the XIncludeTransformer fails to perform the base URI fixup specified in the W3C's XInclude spec [2]. The spec says that the base URIs of elements do not change when passed through a conformant XInclude processor. Meaning, xml:base attributes must be added to the result set. The reason being that relative URIs in the included document should not break; this provides a mechanism to resolve them properly.
This patch results in the XIncludeTransformer adding xml:base attributes to top-level included elements. It does this only when the the base URI of the included element differs from the base URI of the parent element (meaning: for almost every case except where the included document is the current document).
The XIncludeTransformer's JUnit test is also updated by this patch to reflect the fact that the resulting XML file (xinclude-result-1.xml) has an xml:base attribute added.
[1] http://www.mail-archive.com/dev@cocoon.apache.org/msg52803.html
[2] http://www.w3.org/TR/xinclude/#base - The Base URI Fixup section of the W3C's XInclude specification
This patch results in the XIncludeTransformer adding xml:base attributes to top-level included elements. It does this only when the the base URI of the included element differs from the base URI of the parent element (meaning: for almost every case except where the included document is the current document).
The XIncludeTransformer's JUnit test is also updated by this patch to reflect the fact that the resulting XML file (xinclude-result-1.xml) has an xml:base attribute added.
[1] http://www.mail-archive.com/dev@cocoon.apache.org/msg52803.html
[2] http://www.w3.org/TR/xinclude/#base - The Base URI Fixup section of the W3C's XInclude specification