Uploaded image for project: 'Cocoon'
  1. Cocoon
  2. COCOON-1893

XML-Binding: Problem creating a new element

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 2.1.9
    • None
    • Blocks: Forms
    • 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.

      Attachments

        1. diff.txt
          1 kB
          Fabian Linz
        2. DOMFactory_PATCH.java
          5 kB
          Fabian Linz

        Activity

          People

            Unassigned Unassigned
            flinz Fabian Linz
            Votes:
            1 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: