Почему пространство имен JAXB моего xml установлено по умолчанию ns1?

Я создал военный файл из своего веб-приложения, используя NetBeans 7.2 (в среде Windows 7!), Который корректно работает на этапе тестирования с сервером GlassFish 3.1.2 в контексте NetBeans.

Определенное пространство имен в файле package-info.java правильно добавлено в мой XML-файл.

Однако, когда я разворачиваю файл войны на отдельно запущенном сервере GlassFish на машине Linux, пространство имен имеет значение по умолчанию ns1 и NOT, которое определено файлом package-info.java?

Что я делаю не так?

С Уважением, Gerard

5
nl ja de

1 ответы

Почему пространство имен JAXB моего xml установлено по умолчанию ns1?

ns1 is not the namespace but the prefix. The prefix is not significant. For example the following documents are all equivalent. The foo element is in the FOO namespace, and the bar element is in the BAR namespace.

JAXB (JSR-222) implementation is not required to use the prefix specified in the @XmlSchema annotation.  EclipseLink JAXB (MOXy) does and recent versions of the JAXB RI appear to.  The version/implementation of JAXB in NetBeans 7.2 appears to, while the version/implementation of JAXB that GlassFish 3.1.2 uses does not.

Below is a link to an article that I wrote that goes into a little more detail and covers the NamespacePrefixMapper extension that may be useful here.

5
добавлено
Спасибо за ваш ответ, но все же я не понимаю, почему мой префикс добавлен правильно при запуске приложения в Netbeans и НЕ на отдельном сервере GlassFish?
добавлено автор g.verhaag, источник
Любая идея, как правильно установить префикс в обеих средах?
добавлено автор g.verhaag, источник
Извините, но я боюсь, что больше не понимаю. Почему мой префикс в среде NetBeans равен установленному в файле package-info.java и равен ns1 в случае автономного запуска GlassFish?
добавлено автор g.verhaag, источник
Блейз, спасибо за ваши усилия, чтобы объяснить это мне, но я боюсь, что я этого не понимаю, извините!
добавлено автор g.verhaag, источник
Да, симуляция между тремя примерами понятна! Но я хотел бы изменить префикс ns1 на тот, который используется при запуске приложения из NetBeans? Возможно, я снова начну с основ!
добавлено автор g.verhaag, источник
Я просмотрел ваш документ, но, честно говоря, это было не очень полезно, извините. Возможно, это указывает на то, что мне не хватает полного фона, когда дело доходит до этого! Кстати, в NetBeans я также использую сервер GlassFish 3.1.2!
добавлено автор g.verhaag, источник
@ user2020967 - Это, вероятно, другая реализация или версия JAXB (JSR-222) между этими средами.
добавлено автор Blaise Doughan, источник
@ user2020967 - Префиксы правильны в обеих средах, поскольку они представляют собой ту же квалификацию пространства имен, что и в вашей модели. Ссылка в конце моего ответа содержит методы, которые вы можете использовать для управления префиксом.
добавлено автор Blaise Doughan, источник
@ user2020967 - реализация JAXB (JSR-222) не требуется использовать префиксы, указанные в аннотации @XmlSchema . Префиксы сами по себе не имеют значения, это нормально. Поскольку вы видите другое поведение, каждая среда использует другую версию/реализацию JAXB.
добавлено автор Blaise Doughan, источник
@ user2020967 - Как я не знаю, насколько вы знакомы с XML, понимаете ли вы, что в отношении анализатора xml 3 XML-документа, включенных в мой ответ, имеют одинаковую квалификацию пространства имен?
добавлено автор Blaise Doughan, источник
@ user2020967. Тогда дело доходит до того, что для реализации JAXB (JSR-222) не требуется использовать префикс, указанный в аннотации @XmlSchema . Тот факт, что он работает в одной среде (NetBeans 7.2), а не другой (GlassFish 3.1.2), указывает, что в двух средах используется другая версия JAXB. Вот ссылка на статью, которую я написал о влиянии на используемый префикс: blog.bdoughan.com/2011/11/jaxb-and-namespace-prefixes.html
добавлено автор Blaise Doughan, источник
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async