#java #web-services #jakarta-ee #jaxb2 #jaxb2-basics
#java #веб-сервисы #джакарта-ee #jaxb2 #jaxb2-основы
Вопрос:
Я могу создать атрибуты со всеми xmlns
, однако не могу создать атрибуты ниже, которые не являются xmlns
подобными ft:record="true" ft:status=""...
, я просмотрел документ Java и весь Веб, но не могу найти решение или подход для добавления не xmlns
атрибутов в заголовок схемы с использованием JAX-B. Есть ли в JAX-B какие-либо положения?
<myaccount str:strns="true" ft:record="true" ft:status="" ft:num="0" xmlns:str="urn:ins.com:qmodel:wcpsstructs:v1">
</myaccount>
Ниже мой package-info.java
:
@XmlSchema(namespace = "urn:ins.com:qmodel:wcpsstructs:v1",
elementFormDefault = XmlNsForm.QUALIFIED,
xmlns={
@XmlNs(namespaceURI="urn:ins.com:qmodel:wcpsstructs:v1", prefix = "str")
})
package com.mypackage.domain.outputspec;
import javax.xml.bind.annotation.*;
Мои зависимости Maven:
<dependency>
<groupId>javax.xml</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.7</version>
</dependency>
Комментарии:
1. Итак, вы говорите, что эти префиксы не могут быть установлены в заголовке? Другими словами, нет возможности устанавливать префиксы или атрибуты типа str: strns=»true» ft:record=»true» ft:status=»» ft: num=»0″ в заголовке во время маршалинга?
2. Да, вы поняли. Хотя я устанавливаю пространства имен, начинающиеся с xmlns, в package-info.java (опубликовано выше), но префиксы, которые не являются частью пространств имен, другими словами, независимы от пространств имен, похоже, что в заголовке нет положения для установки. Кстати, я использую это как запрос soap для вызова веб-службы, поэтому я создаю запрос или CDATA, и эти атрибуты являются частью запроса в соответствии с образцом, предоставленным нам клиентом или владельцем веб-службы .. 🙂
3. Я решил эту проблему по заданному мной вопросу. Использование аннотации атрибута Xml сделало свое дело.. В любом случае, спасибо.