Как получить вывод JAXB, чтобы пространство имен было включено в дочерний узел без префикса?

Бог свидетель, искал на форуме ответ, но не нашел. Это упрощенный XML, который читает мой код JAXB. Задействовано 2 пространства имен. хиз и абв. Эти два определены в двух разных файлах схемы. И xjc генерирует для них два разных пакета. Следующий файл хорошо читается в эти классы и даже может быть записан.

<xyz:xyz xsi:schemaLocation="urn:xyz xyz.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xyz="urn:xyz">
    <session>
        <App xsi:schemaLocation="urn:abc abc.xsd" xmlns="urn:abc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <AppItem att1="1234"/>
        </App>
    </session>
</xyz:xyz>

Вот так пишет.

<ns3:xyz xmlns:ns2="urn:abc" xmlns:ns3="urn:xyz">
    <session>
        <ns2:App>
            <ns2:AppItem att1="1234"/>
        </ns2:App>
    </session>
</ns3:xyz>

Теперь я знаю о NamespacePrefixMapper и могу изменить ns2 и ns3 на нужные мне значения. И я хочу этого. В основном я хочу сохранить исходную форму XML. Элемент App должен содержать всю свою информацию в себе и не создавать префикс.

<xyz:xyz xmlns:xyz="urn:xyz">
    <session>
        <App xsi:schemaLocation="urn:abc abc.xsd" xmlns="urn:abc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <AppItem att1="1234"/>
        </App>
    </session>
</xyz:xyz>

Кто-нибудь знает, как этого добиться? Похоже, что какой-то параметр в AppType.java должен указывать писателю не обновлять корневой элемент с префиксом.


person Jon Blanton    schedule 08.11.2011    source источник
comment
Поэтому я хочу, чтобы был создан один префикс (ns3 или xyz), но я не хочу создавать другой (ns2).   -  person Jon Blanton    schedule 09.11.2011
comment
Это нормально, если xsi:schemaLocation и xmlns:xsi не указаны в элементе App, но мне нужно xmlns=urn:abc и без префикса для этого пространства имен.   -  person Jon Blanton    schedule 09.11.2011