Как избавиться от пространства имен при маршалинге общих объектов с помощью JAXB

Я использую следующий код для сериализации класса:

public String serialize(T oObject)
{
    mMarshaller = getJAXBContext().createMarshaller();
    mMarshaller.setProperty(javax.xml.bind.Marshaller.JAXB_ENCODING, "UTF-8");
    ByteArrayOutputStream strm = getOutputStream();
    mMarshaller.marshal(oObject, strm);
    return strm.toString();
}

Но когда я смотрю на XML-файл generaetd, там есть пространство имен:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<mapEntry>
    <key xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">
    Key
    </key>
    <value xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string">
     oValue
     </value>
 </mapEntry>

Есть ли способ удалить это, или сказать JAXB, что он НЕ должен добавлять это? Я смотрю на это сейчас все утро и попробовал несколько вещей, которые я нашел через Google, но ничего не помогло.

Теперь я нашел эту тему здесь: Как выполнить маршалинг без пространства имен? но проблема в том, что принятый ответ только частично указан, и теперь я не знаю, поможет ли это мне. XMLStreamWriter это интерфейс, и я не хочу реализовывать весь потоковый писатель только для этого. Так есть ли способ продлить ByteArrayOutputStream без необходимости реализации всех других функций такой XMLWriter потребуется?

1 ответ

В этом случае использования http://www.w3.org/2001/XMLSchema-instance а также http://www.w3.org/2001/XMLSchema пространства имен вводятся из-за xsi:type приписывать. xsi:type атрибут вводится, потому что ваша реализация JAXB считает, что тип свойства Object, Решение состоит в том, чтобы гарантировать, что свойства не напечатаны Object,

Представление XML выглядит как часть представления для java.util.Map (см.: http://blog.bdoughan.com/2013/03/jaxb-and-javautilmap.html). Это ваш вариант использования или у вас есть другая объектная модель?

Другие вопросы по тегам