Фрагмент JAXB Маршал без пространства имен

Я использую свойство JAXB_FRAGMENT для моего маршаллера для маршалинга на уровне WorkSet. Проблема в том, что когда я маршалирую, он каждый раз присваивает элементу WorkSet атрибут xmlns. Есть ли способ маршалировать, чтобы он не прикреплял атрибут xmlns? Вот как выглядит мой XML.

    <Import>
        <WorkSets>
            <WorkSet xmlns="http://www.namespace.com">
                <Work>
                <Work>
                ...
                ..
                ...
            </WorkSet>
            <WorkSet xmlns="http://www.namespace.com">
                <Work>
                <Work>
                ...
            </WorkSet>
        </WorkSets>
    </Import>

Вот код, который я использую для создания выше:

FileOutputStream fos = new FileOutputStream("import.xml");
XMLStreamWriter writer = XMLOutputFactory.newFactory().createXMLStreamWriter(fos);

JAXBContext jc = JAXBContext.newInstance(WorkSet.class);
Marshaller m = jc.createMarshaler();
m.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);

writer.writeStartDocument();
writer.writeStartElement("Import");
writer.writeAttribute("xmlns","http://www.namespace.com");
writer.writeStartElement("WorkSets");

while(hasWorkSet){
m.marshal(workSet, writer)
}
writer.writeEndDocument();
writer.close();
11
задан TyC 16 February 2012 в 15:59
поделиться