Entfernen Sie das xmlns-Attribut aus dem Root-Element, während Sie jaxb marshallen

Dies könnte ein Zusammenhang mit seinJAXB Marshaller - Wie unterdrücke ich xmlns-Namespace-Attribute?

Aber mein Problem ist ein bisschen anders. Ich mache das reguläre Java-Marshalling und meine xsd hat keine Namespaces. Die generierte xml enthält außer dem root-Element auch keine Namespaces.

<?xml version="1.0" encoding="UTF-8"?><rootElement xmlns:ns2="unwanted namespace">

Dasunwanted namespace ist von einem anderen Schema aus dem gleichen Projekt und ich bin nicht sicher, warum das in dieser Phase aufgegriffen wird.

Meine von jaxb2-maven-plugin erzeugte rootElement.java sieht so aus:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"feed"
})
@XmlRootElement(name = "rootElement", namespace = "")
public class RootElement{
....
}

An diesem Punkt möchte ich nur die loswerdenxmlns:ns2="unwanted namespace" Attribut aus der generierten XML und ich kämpfe mit ihm.

Ich habe mir package-info.java angesehen und es sieht so aus:

@javax.xml.bind.annotation.XmlSchema(namespace = "unwanted namespace", elementFormDefault =   javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package com.mypackage;

Ich habe versucht, ihn hinzuzufügen-npa aber es wird nicht funktionierenjaxb2-maven-plugin aus irgendeinem Grund. Ich habe es versuchtNamespaceMapper aber das funktioniert für das Ändern von Präfixen. Es gelang mir nicht, den Namespace vollständig zu entfernen. Das stört mich jetzt seit einem Tag.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage