[ http://issues.apache.org/jira/browse/COCOON-1686?page=comments#action_12358152 ]
Suzan Foster commented on COCOON-1686: -------------------------------------- The JXPathContext's derived from the parent-path attribute on the multi-value and repeater bindings are used without applying JXPathBindingBase's applyLeniency(JXPathContext) and applyNSDeclarations(JXPathContext) members as they would if they were passed through the loadFormFromModel(Widget, Object) and saveFormToModel(Widget, Object) members of a binding class. The error is fixed by making applyLeniency(JXPathContext) and applyNSDeclarations(JXPathContext) public and passing the derived contexts to them before further processing. > [PATCH] COCOON-1671 Form not binding when prefix in binding definition is > unequal to that in the instance data for the same namespace. > -------------------------------------------------------------------------------------------------------------------------------------- > > Key: COCOON-1686 > URL: http://issues.apache.org/jira/browse/COCOON-1686 > Project: Cocoon > Type: Bug > Components: Blocks: Forms > Versions: 2.1.8 > Reporter: Michael Schlotfeldt > Attachments: DomHelper.txt, JXPathBindingManager.txt > > This is a patch to solve bug entry COCOON-1671. > The problem was the SAX parser used in createBinding(Source) of > JXPathBindingManager did not have the > "http://xml.org/sax/features/namespace-prefixes" set to true. This ment the > namespaces could not be extracted from the DOM when calling > getInheritedNSDeclarations(Element). Therefore the JXPathContext was never > having namespaces registered. > Enabling the features solves these problems. The patch (which is against the > SVN as of today) that are being submit changes 2 files: (1) DomHelper.java > (2)JXPathBindingMangager > In DomHelper I added an additional parse method that takes a SAXParser in > place of the servicemanager. This way you can set features on the SAXParser > before the parsing to dom is done. The parse method that existed before still > does but i modified that as well so it uses the new method so we do not > duplicate code. > Three more things: > 1. My experinece with Excalibur is not complete. I am unsure if i can lookup > the SAXParser and then parametize it. Or if it should be done another way. > The patch looks it up and then parametizes this. I believe this is the > correct way, but if it is not please let me know. > 2. The SAXParser used by JXPathBindingMangager no turns on the feature we > want. But the JaxpParser class from Excalibur (which is what is returned) has > a system print out in it if you enable the feature we are now. So everytime > a binding occurs it says: "NAMESPACE PREFIX!!!!!!!!!!!!!!!!!!!!!!!!!!". If > anybody has acces to the repository for that class PLEASE remove that line. > It shoudl not be there. > 3. There is another bug report for the form samples (#6) that uses namespace > binding. I need somebody to confirm this but it appears that this patch also > fixes that bug report. The number for that report is: COCOON-1595 -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
