J'ai un schéma avec des attributs suivants dans l'élément de schéma:JAXB en java 6 pas préfixer le préfixe d'espace de nom correct dans le fichier XML Marshalled
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:abc="http://abc.example.com" targetNamespace="http://abc.example.com" elementFormDefault="qualified" attributeFormDefault="unqualified">
je pouvais compiler et obtenir des classes java. En utilisant ces classes, j'ai rempli des données dans un objet et l'ai rassemblé pour obtenir un fichier XML.
Mais les éléments XML dans ce fichier marshalled n'ont pas le préfixe "abc".
J'ai légèrement modifié en utilisant XMLStreamWriter.setPrefix lors du marshalling, et j'ai pu obtenir le fichier XML avec tous les éléments préfixés comme "abc".
Maintenant, lorsque je tente de unmarshall le même fichier XML, il jette une erreur en disant:
[org.xml.sax.SAXParseException: Le préfixe "abc" pour l'élément "abc: Name". Est pas lié]
S'il vous plaît, aidez-moi à faire savoir à JAXB que abc est le préfixe correct.
Merci Vous Pradeep
grâce musikk, maintenant je le comprends. Mais si nous voulons utiliser notre propre préfixe défini, nous pouvons utiliser JAXB RI qui contient NamespacePrefixMapper avec JAXB de Java 6. [include JAXB RI dans classpath]. marshaller.setProperty ("com.sun.xml.bind.namespacePrefixMapper", nouveau NamespaceMapper()); – pradeep
@pradeep: Nice. Même si vous vous faites dépendre d'une implémentation spécifique, il est bon de savoir. – musiKk
Ne vous mettez pas totalement d'accord sur la partie "insignifiante". Cela peut être "insignifiant" d'un point de vue technique. Mais supposons que par exemple - de quelque façon que ce soit - un humain verra ou travaillera avec le XML, il pourrait être important de pouvoir définir les préfixes de l'espace de noms de manière significative ... – mmey