Writing Map key/value pairs produces incorrect XML tags -------------------------------------------------------
Key: BETWIXT-63 URL: https://issues.apache.org/jira/browse/BETWIXT-63 Project: Commons Betwixt Issue Type: Bug Environment: Windows XP, Java 1.6.0_04, Eclipse Reporter: Pete Ford Priority: Minor Using download version 0.8. A Map field within a Javabean produces XML containing Key and Value tags by default (i.e. without a .betwixt file): Java: private Map<String, String> details = new TreeMap<String, String>(); Example XML output: <Details> <entry> <Key>...</Key> <Value>...</Value> </entry> </Details> When reading the generated XML back into Betwixt to reconstruct the bean, the map is not populated. It appears that when reading, Betwixt looks for the tags <key> and <value> (uncapitalized). Filtering the XML to replace <Key> with <key>, etc., before reading in fixes the problem. It would appear that Betwixt should be generating "<key>" and "<value>" when writing (to match the case of the enclosing "<entry>" tag). Possibly this is something to do with using Capitalized names (see the code below - it sets up a CapitalizedNamesMapper for element names). The code that configures the writer in this case is: StringWriter sw = new StringWriter(); BeanWriter writer = new BeanWriter(sw); writer.getXMLIntrospector().getConfiguration() .setAttributesForPrimitives(true); writer.getXMLIntrospector().getConfiguration() .setWrapCollectionsInElement(true); writer.enablePrettyPrint(); writer.getBindingConfiguration().setMapIDs(false); // set a custom name mapper for attributes writer.getXMLIntrospector().getConfiguration() .setAttributeNameMapper(new HyphenatedNameMapper()); // set a custom name mapper for elements writer.getXMLIntrospector().getConfiguration() .setElementNameMapper(new CapitalizeNameMapper()); -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.