JAX-WS RI игнорирует пустой префикс пространства имен - PullRequest
0 голосов
/ 07 января 2020

Мне нужно использовать пространство имен без префикса для моего запроса SOAP, но в конфигурации информации о пакете, похоже, используется какое-то значение по умолчанию, которое я не могу найти.

Эта информация о пакете. java создает пространство имен ns2.

@javax.xml.bind.annotation.XmlSchema(
    namespace = "http://yyy.com/ws/uploaddocument/v11",
    elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
    xmlns = @XmlNs(prefix = "", namespaceURI = "http://yyy.com/ws/uploaddocument/v11")
)

<ns2:UploadDocumentsRequest xmlns:ns2="http://yyy.com/ws/uploaddocument/v11"></ns2:UploadDocumentsRequest>

Эта информация о пакете. java создает пространство имен xx.

@javax.xml.bind.annotation.XmlSchema(
    namespace = "http://yyy.com/ws/uploaddocument/v11",
    elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED,
    xmlns = @XmlNs(prefix = "xx", namespaceURI = "http://yyy.com/ws/uploaddocument/v11")
)

<xx:UploadDocumentsRequest xmlns:xx="http://yyy.com/ws/uploaddocument/v11"></xx:UploadDocumentsRequest>

Возможно ли отключить это "значение по умолчанию"?

ОБНОВЛЕНИЕ: Я решил проблему. Я случайно переместил один класс в другой пакет, и поскольку там не было никакой информации о пакете. java это привело к пространству имен с URI "". Поэтому было два отдельных пространства имен, и JAXB не позволил мне создать второе пространство имен с пустым префиксом (потому что пустой префикс уже был выделен для пространства имен "").

Это распределение пространства имен происходит в com.sun. xml .internal.bind.v2.runtime.output.NamespaceContextImpl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...