JAXB не использует xmlns = "namespace"
в вашем случае, потому что xmlns = "namespace"
также указывает пространство имен для дочерних элементов, тогда ваши элементы first
и last
находятся в пространстве имен по умолчанию (поскольку @XmlRootElement
не определяет пространство имен для дочерних элементов). Итак, вам нужно установить пространство имен для first
и last
, используя @XmlElement
:
@XmlElement(namespace = "namespace")
public String getFirst() {
return first;
}
...
@XmlElement(namespace = "namespace")
public String getLast() {
return last;
}
Вы также можете избежать необходимости писать пространство имен для каждого элемента, используя аннотацию на уровне пакета в package-info.java
:
@javax.xml.bind.annotation.XmlSchema(
namespace = "namespace",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package foo;