Comment personnaliser préfixes d'espace de noms de Jersey (JAX-WS)
Question
lors de la sérialisation mes ressources à Jersey, je veux utiliser les espaces de noms dans certains cas.
Est-il possible de personnaliser les préfixes d'espace de nom sur le maillot?
Par défaut:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <order xmlns:ns2="http://www.w3.org/2005/Atom"> <price>123</price> <ns2:link rel="duh" href="/abc/123"/> <ns2:link rel="abc" href="/def/234"/> </order>
Je veux quelque chose comme:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <order xmlns:atom="http://www.w3.org/2005/Atom"> <price>123</price> <atom:link rel="duh" href="/abc/123"/> <atom:link rel="abc" href="/def/234"/> </order>
Merci, Lucas
La solution
Si vous utilisez le Moxy mise en œuvre JAXB vous pouvez contrôler vos préfixes en utilisant la @XmlSchema annotation de niveau de paquet:
@javax.xml.bind.annotation.XmlSchema(
xmlns = {
@javax.xml.bind.annotation.XmlNs(prefix = "atom", namespaceURI = "http://www.w3.org/2005/Atom")
})
package org.example.domain;
Pour utiliser Moxy JAXB vous devez avoir un fichier nommé jaxb.properties avec vos classes de modèle avec l'entrée suivante:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
Pour un exemple d'utilisation avec Moxy Jersey voir:
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow