Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.1.9
-
None
-
None
-
Patch available
Description
Creating a new element with a namespace fails, if no parent element of the new element already defines the namespace. In this case the operation org.apache.cocoon.util.jxpath.DOMFactory#getNamespaceURI(Element element, String prefix) returns null which result in the following exception:
org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
Instead of just relying on the parents to define the namespace the element should define the namespace itself if no parent provides the definition. To do so we need to map the prefix of the element to the namespace the prefix refers to. This can be done using the namespaces the JXPathContext knows. To use the JXPathContext we need to pass the context to the operation that does the mapping.
This is done by the attached DOMFactory.
org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
Instead of just relying on the parents to define the namespace the element should define the namespace itself if no parent provides the definition. To do so we need to map the prefix of the element to the namespace the prefix refers to. This can be done using the namespaces the JXPathContext knows. To use the JXPathContext we need to pass the context to the operation that does the mapping.
This is done by the attached DOMFactory.