Мне нужно использовать пространство имен без префикса для моего запроса 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.