J'essaie de trouver un moyen d'utiliser le même fichier de liaison .xjb pour plusieurs fichiers xsd.Comment réutiliser les liaisons jaxb pour plusieurs xsds?
J'ai trouvé une solution ici pour « flottant raccourcis globaux »: https://www.java.net/node/674443
Cependant, les choses que je suis en train de faire ne semble pas être autorisé par la balise globalBindings.
est ici le code de liaison que j'ai pour un .xsd spécifique:
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance"
jaxb:version="2.1"
jaxb:extensionBindingPrefixes="xjc inheritance">
<jaxb:bindings schemaLocation="../Specific.xsd" node="/xs:schema">
<jaxb:bindings node="//xs:complexType[@name='entity']">
<inheritance:implements>test.IEntity</inheritance:implements>
</jaxb:bindings>
<jaxb:bindings node="//xs:element[@name='entityContainer']">
<jaxb:class/>
<inheritance:implements>test.IEntityContainer</inheritance:implements>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
Comment puis-je demander maintenant à tout .xsd dans le répertoire xsd?
J'ai du mal à croire que la seule solution à cela serait de générer réellement les fichiers de liaison unique par fichier xsd (comme indiqué dans l'entrée de forum référencée ci-dessus), ou est-ce vraiment? Notez également que le noeud xpath serait en fait un peu plus compliqué car il y a différents (types de) conteneurs, je l'ai simplement simplifié ici pour ne pas trop compliquer l'exemple.
Vous pouvez utiliser un fichier XML bindings générique et une transformation XSLT pour remplir les parties variables: nom du fichier XSD, nom du type, nom de l'élément , etc. Si cela semble valoir la peine d'avoir des fichiers individuels, je peux fournir une solution de base. – laune
Si vous pouviez donner un exemple, ce serait génial. Notez également s'il vous plaît que je suis en train d'exécuter cela dans maven, donc j'ai besoin d'un moyen d'exécuter la transformation dans le cycle de construction maven. – mac