Author: pierre Date: 2010-01-14 17:30:09 +0100 (Thu, 14 Jan 2010) New Revision: 40575
Modified: mmbase/trunk/core/src/main/java/org/mmbase/util/xml/AbstractBuilderReader.java Log: MMB-1907, fix issue with namespaces Modified: mmbase/trunk/core/src/main/java/org/mmbase/util/xml/AbstractBuilderReader.java =================================================================== --- mmbase/trunk/core/src/main/java/org/mmbase/util/xml/AbstractBuilderReader.java 2010-01-14 16:28:20 UTC (rev 40574) +++ mmbase/trunk/core/src/main/java/org/mmbase/util/xml/AbstractBuilderReader.java 2010-01-14 16:30:09 UTC (rev 40575) @@ -166,6 +166,8 @@ mergeElementLists(doc, overrides, "functionlist", "function", "name", false); mergeElementLists(doc, overrides, "indexlist", "index", "name", false); + // log.trace("MERGED XML: " + XMLWriter.write(doc.getDocumentElement())); + } /** @@ -184,11 +186,10 @@ protected static void mergeElementLists(Document doc, Document overrides, String list, String item, String attr, boolean replace) { Element docListEl = getElementByPath(doc.getDocumentElement(), "builder." + list); for (Element listEl : getChildElements(overrides.getDocumentElement(), list)) { - for (Element el : getChildElements(listEl, item)) { - if (docListEl == null) { - docListEl = doc.createElement(list); - doc.getDocumentElement().appendChild(docListEl); - } + if (docListEl == null) { + docListEl = (Element) doc.importNode(listEl, true); + doc.getDocumentElement().appendChild(docListEl); + } else for (Element el : getChildElements(listEl, item)) { Element newEl = (Element) doc.importNode(el, true); String name = newEl.getAttribute(attr); // determine if an item should be replaced or merged @@ -221,7 +222,7 @@ } // merge element tags for (Element newFel : getChildElements(newEl)) { - Element docFel = getElementByPath(docEl, "field." + newFel.getLocalName()); + Element docFel = getElementByPath(docEl, item + "." + newFel.getLocalName()); if (docFel != null) { docEl.replaceChild(newFel,docFel); } else { @@ -253,7 +254,7 @@ protected abstract boolean resolveInheritance(); /** - * Detremines if inheritance is resolved. + * Determines if inheritance is resolved. * This method returns true if a call to resolveInheritance succeeded. * it returns false if resolveInheritance failed (returned false or threw an exception) * _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs