I have JAXB generated classes from XML schemas. When using an enumerated restriction, not all values are valid Java identifiers so XJC maps these to different names. The input schemas are from an external source and can't change, and unfortunately the same restrictions are copied into different types/elements instead of being reused.
When I give XJC hints to turn both of these restrictions to enums, Dozer works perfectly because it looks for enums of the same name on different types. This allows for seamless, schema-correct mapping - thank you for that!
However, if either one of the fields is a String instead of an enum, Dozer uses the name of the enum. I request that Dozer grow some smarts with JAXB enums and introspect the source enum. If the class has XmlEnum and the enum has a subsequent XmlEnumValue, that Dozer use that data for the target String instead of the name of the enum.