Любой способ изменить префикс xml, сгенерированный JAXB без изменения кода? - PullRequest
0 голосов
/ 17 октября 2011

Я использую JAXB для маршалинга объекта в xml, теперь генерируемый xml похож на

<QueryServiceElement xmlns="http://tools.ding.com/query">
</QueryServiceElement>

То, что я хочу, это:

<ts1:QueryServiceElement xmlns:ts1="http://tools.ding.com/query">
</ts1:QueryServiceElement>

Так как код используется совместно в нескольких местах, поэтому я не могу использовать свойство mapper в JAXB Marshaller, и мой jaxb также не поддерживает свойство mapper, оно выдает исключение, есть ли способ сделать это, просто изменив XSD-файлы или привязка схемы Jaxb?

Я пробовал много способов, но все они не работают.

1 Ответ

0 голосов
/ 18 октября 2011

к сожалению, процесс генерации (или даже использования) префиксов пространства имен в результирующем XML полностью зависит от маршаллера и не имеет ничего общего с XSD.

http://blogs.oracle.com/enterprisetechtips/entry/customizing_jaxb имеет хорошийобъяснение того, как бороться с генерацией пользовательских префиксов пространства имен.Исходя из вашего вопроса, кажется, вы уже знаете об этом.это функция JAXB 2.0+, поэтому, если ваша реализация jaxb не поддерживает ее, возможно, пришло время получить более позднюю версию?

...