Je dispose d'un fichier XML:JAXB: Comment puis-je désorganiser XML sans namespaces
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object>
<str>the type</str>
<bool type="boolean">true</bool>
</object>
Et je veux désorganiser à un objet de la classe ci-dessous
@XmlRootElement(name="object")
public class Spec {
public String str;
public Object bool;
}
Comment puis-je faire ? Sauf si je spécifie des espaces de noms (voir ci-dessous), cela ne fonctionne pas.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<object>
<str>the type</str>
<bool xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xsi:type="xs:boolean">true</bool>
</object>
Merci pour votre réponse, Blaise. Je vais bien avoir les espaces de noms. Mais est-il possible de ne pas avoir d'espace de noms dans le XML (car il va faire face aux utilisateurs de dev) mais de garder cette information avec les annotations de classe Java, de sorte que jaxb analyse le XML, voit "type" et sait "aha, c'est de l'espace de noms 'xsi' selon la déclaration de classe Java ". Idem avec "xs: boolean". Voyez-vous ce que je dis? Ou ce n'est toujours pas possible? J'en ai besoin parce que nos utilisateurs de développement vont créer de telles déclarations XML et nous devons les déconstruire à Java. – Andrey
@Andrey - Vous pouvez faire ce travail, ci-dessous est une approche que vous pourriez faire pour le marxiste. –
Salut Blaise. La suppression d'un espace de noms pour l'attribut "type" a bien fonctionné, MERCI BEAUCOUP !!!, mais comment puis-je supprimer la déclaration d'espace de noms "xs" pour la valeur de l'attribut "type" - "xs: boolean". J'ai joué en remplaçant certaines des méthodes StreamReaderDelegate, mais sans succès. – Andrey