JAXB de Liaison de Personnalisation
Tout en essayant de générer des classes à partir d'un fichier xsd, j'ai eu cette erreur:
java.lang.IllegalArgumentException: Illegal class inheritance loop. Outer class OrderPropertyList may not subclass from inner class: OrderPropertyList
Mon xsd définir un élément de groupe une utilisation illimitée de l'élément comme ceci:
<element minOccurs="0" name="orderPropertyList">
<complexType>
<sequence>
<element maxOccurs="unbounded" name="orderProperty" type="tns:orderProperty" />
</sequence>
</complexType>
</element>
Et ma personnalisation de liaison suit, comme indiqué sur cette page, mais il ne marche pas.
Voici mon reliure:
<jaxb:bindings schemaLocation="../xsd/Schema.xsd" node="/xs:schema">
<jaxb:bindings node="//xs:element[@name='orderPropertyList']">
<jaxb:class name="OrderPropertyList"/>
</jaxb:bindings>
</jaxb:bindings>
Mon intention est de générer une classe individuelle pour orderPropertyList, pas le défaut de se comporter qui génère un intérieur de classe à l'intérieur de l'élément racine du fichier xsd.
Ive regardé quelqu'un avec la même intention ici et ici, mais il ne marche pas correctement pour moi. 🙁
JAXB version:
Specification-Version: 2.1
Implementation-Version: 2.1.8
Toute aide?
C'est un genre de l'horreur de la situation, comment toujours générer des classes sans l'utilisation des classes internes? Oh! mon dieu! Si vous utilisez Weblogic 10 avec jax-ws, vous ne pouvez pas avoir les classes internes à l'intérieur de vous demander de/types de réponse. Triste!
OriginalL'auteur paulosuzart | 2008-09-27
Vous devez vous connecter pour publier un commentaire.
Je crois que ce que vous avez besoin à faire est de définir:
Cela va générer des classes autonomes au lieu de classes imbriquées.
Faire
est une liaison redondante, puisque orderPropertyList permettra de carte par défaut pour OrderPropertyList. Le nom du package inclut l'extérieur nom de la classe elle est imbriquée dans par défaut, si vous n'êtes pas en changer.
Aussi, si vous ne voulez modifier le nom de la classe générée, je pense que le XPath serait:
avec complexType sur la fin. Je pense que l'exclusion était ce qui était à l'origine du message d'erreur que vous avez obtenu.
Après avoir remplacer toutes les définitions du même nom, l'un par un, il a travaillé! Urf! Beaucoup de travail impliquant plus de 15 xsds pour générer des classes et de résoudre les conflits... Merci!
OriginalL'auteur
C'est vraiment amusant quand vous avez un schéma comme suit:
Dans ce cas, xjc semble être de tenter de générer des quatre classes de
Something
, un pour chaque élément nomméSomething
, et un pour chacun de leurscomplexType
s. Vous devez donc fournir une liaison qui frappe chacun de ces quatre éléments et types complexes spécifiquement au niveau où ils se produisent dans le schéma (bien vraiment seulement trois, parce que la 4ème pouvez simplement devenir le seulSomething
classe).OriginalL'auteur Jeff Evans
Je crois que ce qui se passe, car il est probable que le Java de la classe représentant la séquence de "orderProperty" est lui-même nommé "OrderPropertyList".
Ce que je voudrais faire est de générer d'abord, c'est sans aucun liaisons personnalisées, et de regarder les noms de classe et les hiérarchies qu'il génère. Alors, pensez à ce que vous souhaitez remplacer, et comment.
OriginalL'auteur David M. Karr
J'avais besoin de faire des personnalisations pour un schéma comme celui jeff303 présenté. Mon scénario était légèrement différente que le schéma a été incorporé à l'intérieur d'un document WSDL.
Une chose souligné par philvarner est que le sélection de nœuds de l'élément doit se terminer par '/xs:complexType' et cela semblait très importante, car le compilateur ne cessent de générer une IllegalArgumentException liées à une boucle héritage sans elle.
Ces postes sont liés et j'ai donc pensé à un lien en retour serait utile à quelqu'un "googler" qui se termine ici.
Découvrez question Sept million huit cent quatre vingt une mille huit cent quatre vingt trois
OriginalL'auteur dolbysurnd
Participant à ce
/xs:complexType
à la fin de l'élément a contribué à la fixation de l'illégal de l'héritage de classe de boucle d'erreur.OriginalL'auteur amit dahiya