SAXParseException; src-résoudre: Impossible de résoudre le nom de '...' à un(n) 'définition de type de volet
Je suis en train de faire de la validation du schéma, actuellement à l'aide d'un javax.xml.validation.SchemaFactory
. Malheureusement, Lorsque j'appelle la newSchema(Source schema)
fonction, j'obtiens l'erreur suivante:
Caused by: org.xml.sax.SAXParseException; systemId: file:/C:/Users/C42056/Documents/workspace-sts-3.2.0.RELEASE/cec-sample-ws-integration-2-war/target/classes/WEB-INF/schemas/xsd/individual/PrivateComponentTypes_4_0.xsd; lineNumber: 33; columnNumber: 88; src-resolve: Cannot resolve the name 'utility:ObjectStatusDateType' to a(n) 'type definition' component.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.xs.traversers.XSDHandler.reportSchemaError(Unknown Source)
at org.apache.xerces.impl.xs.traversers.XSDHandler.reportSchemaError(Unknown Source)
at org.apache.xerces.impl.xs.traversers.XSDHandler.getGlobalDecl(Unknown Source)
at org.apache.xerces.impl.xs.traversers.XSDElementTraverser.traverseNamedElement(Unknown Source)
at org.apache.xerces.impl.xs.traversers.XSDElementTraverser.traverseLocal(Unknown Source)
at org.apache.xerces.impl.xs.traversers.XSDHandler.traverseLocalElements(Unknown Source)
at org.apache.xerces.impl.xs.traversers.XSDHandler.parseSchema(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaLoader.loadSchema(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaLoader.loadGrammar(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaLoader.loadGrammar(Unknown Source)
at org.apache.xerces.jaxp.validation.XMLSchemaFactory.newSchema(Unknown Source)
at com.sei.ec.xml.validation.SimpleXmlValidator.loadSchema(SimpleXmlValidator.java:70)
at com.sei.ec.xml.validation.SimpleXmlValidator.<init>(SimpleXmlValidator.java:83)
... 75 more
La utility:ObjectStatusDateType
élément est utilisé dans le .fichier xsd qui je suis de passage dans la newSchema(Source schema)
fonction. Je suis de l'importation de la ObjectStatusDateType
de l'autre .fichier xsd - pour qui j'ai triple vérifié le chemin d'accès au fichier. Le utility
espace de noms est également déclarée.
Voici un extrait du schéma, je suis de passage dans la fonction (LocateCoverageIndexesByIdentifier_3_0.xsd):
<xs:import namespace="http://www.sei.com/utility/1/" schemaLocation="../../utility/InvocationOutcome_1_0.xsd"/>
<xs:import namespace="http://www.sei.com/utility/1/" schemaLocation="../../utility/ObjectHistory_1_0.xsd"/>
<xs:import namespace="http://www.sei.com/individual/component/4/" schemaLocation="../PrivateComponentTypes_4_0.xsd"/>
<xs:import namespace="http://www.sei.com/individual/shared/5/" schemaLocation="../IndividualTypes_5_0.xsd"/>
.
. <!-- Some more stuff -->
.
<xs:element name="coveragePeriod"
type="utility:ObjectStatusDateType"
minOccurs="0"/>
Et c'est à partir de ObjectHistory_1_0.xsd:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://www.sei.com/utility/1/"
targetNamespace="http://www.sei.com/utility/1/"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="1.0">
.
. <!-- Some more stuff -->
.
<xs:complexType name="ObjectStatusDateType">
<xs:sequence>
<xs:element name="effectiveDate" type="xs:date"/>
<xs:element name="cancelDate" type="xs:date" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
Et enfin, le haricot
<bean id="locateClaimValidator"
class="com.sei.ec.xml.validation.SimpleXmlValidator">
<constructor-arg>
<value>classpath:WEB-INF/schemas/xsd/individual/ci/LocateCoverageIndexesByIdentifier_3_0.xsd
</value>
</constructor-arg>
</bean>
Personne n'a rencontré ce type de problème avant?
OriginalL'auteur Mac | 2013-09-17
Vous devez vous connecter pour publier un commentaire.
J'ai eu ce problème avant. Tout validé dans Eclipse, mais a cassé lors de l'exécution. Avez-vous des schémas d'importer plus d'un schéma dans le même espace de noms?
Quelque chose comme cela ne fonctionnera pas, mais sera validée par Eclipse:
désolé, ça ne marchera pas à valider quand un autre espace de noms est-il inclus ?
cette répondre résolu.
OriginalL'auteur CSum
Beaucoup de gens ont rencontré ce type de problème avant. Il vient à chaque fois que votre valideur est, pour quelque raison que ce soit, ne pas surcharger le schéma documents que vous voulez charger (et pense que c'est le chargement).
Pour confirmer le diagnostic: essayez d'introduire une erreur -- dire, une formation d'erreur -- en ObjectHistory_1_0.xsd, et de voir si le système se plaint.
OriginalL'auteur C. M. Sperberg-McQueen
À l'aide de Xerces cela peut résoudre par la définition de la fonction
http://apache.org/xml/features/honour-all-schemaLocations
de vrai.La fonction
http://apache.org/xml/features/honour-all-schemaLocations
n'est disponiblede Xerces 2.7.0. Les versions actuelles de Java 5.0 et 6.0 avoir un Xerces 2.6.2
built-in. C'est pourquoi l'on doit utiliser une version plus récente de Xerces de la bibliothèque dans l'ordre pour que cela fonctionne,
c'est à dire. la copie
xml-apis.jar
etxercesImpl.jar
à<jdk-home>/jre/lib/endorsed
etla création d'un
jaxp.properties
fichier dans<jdk-home>/jre
contenant la ligneOriginalL'auteur Adrien Vercoutere
J'ai eu le même problème lors de l'exécution du plugin maven jaxb2-maven-plugin.
Après mentionnant explicitement le fichier xsd à l'analyse, il a fonctionné comme un charme:
xsd
fichier (il y a plusieursxsd
fichiers dans le même répertoire).OriginalL'auteur Aurelius Baier