Проблема:
Я пытаюсь выполнить простую сериализацию HashMap с JAX-B в приложении JAX-RS и получить дополнительный вывод, которого я хотел бы избежать Сериализация по умолчанию HashMap включает пространства имен XML и префиксы, которые бесполезны (для моего приложения).
Вывод, который я получаю для Карты:
<params>
<entry>
<key xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">keyName</key>
<value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">123</value>
</entry>
...
</params>
вместо:
<params>
<entry>
<key>keyName</key>
<value>123</value>
</entry>
...
</params>
Класс в основном выложен так:
@XmlRootElement(name="example")
public ExampleClass
{
private params HashMap<String,Object> = new HashMap<String,Object>();
public ExampleClass() { }
@XmlElementWrapper(name="params", required=true)
public Map getParameters()
{
return params;
}
}
Что можно сделать, чтобы упростить вывод XML?
Библиотечный справочник:
- JAX-RS (Resteasy 2.0, не замужем за этой версией)
- JAX-B (входит в Resteasy 2.0)