2016-03-29 2 views
0

Il y a 5 fichiers avec des schémas xsd ici: http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2016/01/25/eD/DefinicjeTypy/.JAXB: xjc ne crée pas de fichier à partir d'un fichier xsd spécifique

3 d'entre eux sont correctement analysés et compilés mais j'ai un gros problème avec d'autres 2.Here est l'un d'entre eux http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2016/01/25/eD/DefinicjeTypy/KodyUrzedowSkarbowych_v4-0E.xsd

J'utiliser la commande comme ceci:

xjc -p jpk -b binding.xjb KodyUrzedowSkarbowych_v4-0E.xsd 

compilateur Malheureusement xjc doesn Ne créez aucune classe pour ces deux. J'ai également résolu le problème de la limitation par défaut du type d'énumération en utilisant la liaison globale - binding.xjb, car il y a 400 éléments. Mais encore, je n'ai aucune idée pourquoi je ne reçois pas de classes de ces deux fichiers.

Répondre

0

Le schéma XML KodyUrzedowSkarbowych_v4-0E.xsd ne génère pas d'énumération car toutes les valeurs sont numériques, ce qui n'est pas possible en tant que nom de membre Java enum. (Essayez préfixant toute valeur = « 0202 », etc. avec un « X'- compile.)

Pour résoudre, vous devrez ajouter un autre mantra de personnalisation dans chaque <xsd:enumeration value="x0202">, comme celui-ci (!):

<xsd:annotation><xsd:appinfo> 
<jaxb:typesafeEnumMember> 
    name = "x0202" value="0202" 
</jaxb:typesafeEnumMember> 
</xsd:annotation></xsd:appinfo> 

probablement écrire un XSLT pour automatiser cette ou utilisez sed, ou un script Perl ...

Je ne pas vérifier l'autre fichier puisque vous ne l'avez pas le nom.