Importer l'espace de noms Ne peut pas résoudre le nom d'un(n) 'définition de type de volet
Contexte: je suis de la génération des classes java à partir de fichiers xsd à l'aide de maven-jaxb plugin. Tous mes .les fichiers xsd sont en un seul endroit - src/main/répertoire des ressources.
Problème: Tout fonctionne bien lorsque xsd ne fait pas référence/importer d'autres xsd avec un autre espace de noms cible. Toutefois, lorsque le xsd suivant ci-dessous (avec targetNamespace="http://www.companyA.com/someservice") les importations d'un autre nom de fichier xsd.xsd à partir d'un autre espace de noms (namespace="http://www.companyB.com/"), j'obtiens l'erreur ci-dessus: Impossible de résoudre le nom de xxx à a(n) 'définition de type de volet.
Edit: le nom de l'élément dans le courant de fichier xsd est "entityName", et son type est "entrepriseb:entityName" (c) les noms sont les mêmes.
J'ai ensuite essayé en invoquant xjc sur ce fichier à partir de la ligne de commande et cela a généré des classes Java correctement. J'ai aussi fait en sorte que, dans Eclipse, je suis en mesure de ctrl-clic/examiner source sur "type="companyCdm:entityName", qui s'ouvre correctement le nom de fichier.fichier xsd. Cependant, pour une raison quelconque maven est pas en mesure de l'obtenir.
Question: Ce qui me manque? Pourquoi est-ce le cas (2 espaces de noms) différentes de traiter avec un seul espace de noms?
Voici mon XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.companyA.com/someservice"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:companyB="http://www.companyB.com/version"
targetNamespace="http://www.companyA.com/someservice"
elementFormDefault="qualified" attributeFormDefault="qualified">
<xsd:import namespace="http://www.companyB.com/version" schemaLocation="filename.xsd" />
<xsd:element name="MyName" type="MyType" />
<xsd:complexType name="MyType">
<xsd:annotation>
<xsd:documentation>
A list
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="entityName" type="companyB:entityName" maxOccurs="1" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
aucun à ce point, malheureusement.
OriginalL'auteur crazy horse | 2012-02-23
Vous devez vous connecter pour publier un commentaire.
Ok compris le travail autour de:
J'ai déplacé tous les dépendants xsd (que la problématique xsd références), plus un tas d'autres non utilisés xsds à un dossier distinct, puis re-génération de code à l'aide de maven - il fonctionne maintenant. Il semble qu'il y avait un espace de noms en conflit avec l'un de l'autre non utilisés xsd je n'ai pas encore relevé spécifique.
OriginalL'auteur crazy horse
Le O'Rielly
[Java and XML Chap3][1]
dit que l'utilisation d'un InputSource vont vous permettre d'analyser les chemins d'accès relatifs:OriginalL'auteur KingAndrew