Java: Mobiliser Objet — Retrait supplémentaire ns2 annotation xml
Je suis en train de marshall données au sein d'un objet dans un fichier xml basé sur un schéma défini. Cependant, quand j'ai imprimer le fichier xml, j'obtiens supplémentaire des annotations sur les balises xml. Est-il possible de se débarrasser de la plus-annotation de l'espace de noms (c'est à dire ns2)
Ceci est un exemple de xml que je reçois de la sérialisation.
<?xml version="1.0" encoding="UTF-8" standalone="yes">
<root xmlns:ns2="http://www.something.com/something">
<ns2:food>steak</ns2:food>
<ns2:beverage>water</ns2:beverage>
</root>
Ce que je veux, c'est quelque chose comme ceci:
<?xml version="1.0" encoding="UTF-8" standalone="yes">
<root xmlns="http://www.something.com/something">
<food>steak</food>
<beverage>water</beverage>
</root>
C'est ce que mon code Java est en train de faire:
JAXBContext context = JAXBContext.newInstance("com.schema");
JAXBElement<FoodSchema> element = new JAXBElement<FoodSchema>
(new QName("FoodSchema"), Food.class, foodSchema);
Marshaller marshaller = context.createMarshaller();
OutputStream os = new FileOutputStream(object.getFilePath());
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(element, os);
Toute aide est très appréciée! Merci!
J'ai été capable de le faire avec xslt décrit ici: stackoverflow.com/questions/25033285/...
OriginalL'auteur user459811 | 2011-08-10
Vous devez vous connecter pour publier un commentaire.
Par l'ajout d'un URI d'espace de noms ("http://www.something.com/something") à la
QName
utilisé pour construire le JAXB élément, et en mettant le paquet niveau@XmlSchema
d'annotation, vous aurez l'espace de noms de qualification que vous êtes à la recherche pour:paquet-info
Alimentaire
Démo
Sortie
Cela m'a aidé, j'ai été l'envoi d'un URI différent que défini dans le schéma, et cela a provoqué la resultXMLstring d'avoir un autre espace de noms
OriginalL'auteur
ajouter à la définition de schéma xsd elementFormDefault et attributeFormDefault:
OriginalL'auteur
Merci pour la réponse. Juste pour donner un exemple de code
avant:
après:
et extra "ns:" a été supprimé.
OriginalL'auteur