J'ai donc analysé un ensemble de fichiers XML pour générer un fichier de schéma géant utilisant trang qui s'est bien passé. Cependant, lorsque je tente de générer des sources en utilisant xjc, je reçois l'erreur suivante,Erreur lors de la tentative de génération de schéma à l'aide de XJC
xjc reutersXMLSchema.xsd
parsing a schema...
[ERROR] no-xsi: The {target namespace} of an attribute declaration must not match 'http://www.w3.org/2001/XMLSchema-instance'.
line 11 of file:/Users/cqin/Downloads/trang-20081028/xsi.xsd
Failed to parse a schema.
Le schéma se présente comme suit,
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.w3.org/2001/XMLSchema-instance" xmlns:filter="http://schemas.reuters.com/ns/2006/04/14/rmds/webservices/news/filter" xmlns:ns0="http://www.reuters.com/ns/2006/05/01/webservices/rkd/News_1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://schemas.reuters.com/ns/2006/04/14/rmds/webservices/news/headlineml" xmlns:cache_1="http://www.reuters.com/ns/2008/03/01/webservices/rkd/Cache_1" xmlns:ns2="http://www.reuters.com/ns/2006/05/01/webservices/rkd/TokenManagement_1" xmlns:global="http://www.reuters.com/ns/2006/05/01/webservices/rkd/Common_1" xmlns:a="http://www.w3.org/2005/08/addressing">
<xs:import namespace="http://schemas.reuters.com/ns/2006/04/14/rmds/webservices/news/filter" schemaLocation="filter.xsd"/>
<xs:import namespace="http://schemas.reuters.com/ns/2006/04/14/rmds/webservices/news/headlineml" schemaLocation="ns1.xsd"/>
<xs:import namespace="http://www.reuters.com/ns/2006/05/01/webservices/rkd/Common_1" schemaLocation="global.xsd"/>
<xs:import namespace="http://www.reuters.com/ns/2006/05/01/webservices/rkd/News_1" schemaLocation="reutersXMLSchema.xsd"/>
<xs:import namespace="http://www.reuters.com/ns/2006/05/01/webservices/rkd/TokenManagement_1" schemaLocation="ns2.xsd"/>
<xs:import namespace="http://www.reuters.com/ns/2008/03/01/webservices/rkd/Cache_1" schemaLocation="cache_1.xsd"/>
<xs:import namespace="http://www.w3.org/2003/05/soap-envelope" schemaLocation="s.xsd"/>
<xs:import namespace="http://www.w3.org/2005/08/addressing" schemaLocation="a.xsd"/>
<xs:attribute name="type" type="xs:NCName"/>
</xs:schema>
Toute idée pourquoi il ne fonctionne pas?
J'ai essayé de changer le targetNameSpace en quelque chose d'unique mais j'ai plus d'erreurs donc je me demande s'il y a quelque chose que je peux faire avec l'erreur originale.
Merci!
Peut-être que la façon dont j'aborde ma tâche est fausse et peut-être que vous pouvez fournir un peu plus de perspicacité. Fondamentalement, j'ai quelques XML qui consistent en plusieurs requêtes/réponses XML SOAP, environ 6 d'entre elles. J'ai juste essayé d'utiliser trang pour combiner tous les XML dans un schéma géant comme m'a été conseillé par un collègue. Est-ce la bonne façon de s'y prendre en premier lieu? –
@soulesschild: Non, ça ne me semble pas une bonne idée, d'après ce que tu m'as dit. Qu'essayez-vous d'accomplir? – skaffman
Fondamentalement, nous utilisons l'API d'un tiers pour créer notre propre API à usage interne. Le moyen d'appeler leur API est d'utiliser POST pour publier du code XML avec la requête, puis recevoir une réponse au format XML. Il y a environ 5 demandes et réponses différentes. L'ensemble de l'API doit être écrit en Java. –