comment gérer plusieurs espaces de noms avec URI différent dans XSD
J'ai un XML (first.xml) qui ressemble à ::
<?xml version="1.0" encoding="utf-8"?>
<saw:jobInfo xmlns:saw="com.analytics.web/report/v1.1">
<saw:jobStats>...........</saw:jobStats>
<saw:detailedInfo> .....</saw:detailedInfo>
<saw:fileInfo>..........</saw:fileInfo>
</saw:jobInfo>
Le code XML ci-dessous (second.xml) est la même que ci-dessus mais avec un espace de noms différent.
<?xml version="1.0" encoding="utf-8"?>
<soap:jobInfo xmlns:soap="urn://bi.webservices/v6">
<soap:jobStats>...........</saw:jobStats>
<soap:detailedInfo> .....</saw:detailedInfo>
<soap:fileInfo>..........</saw:fileInfo>
</soap:jobInfo>
Que j'ai le même élément et d'attribut noms dans le xml que je suis en utilisant le même fichier xsd de valider à la fois.
Fichier XSD ::
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="com.analytics.web/report/v1.1"
xmlns="com.analytics.web/report/v1.1"
xmlns:saw="com.analytics.web/report/v1.1"
xmlns:soap="urn://bi.webservices/v6"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
Après, y compris xmlns:soap="urn://bi.webservices/v6" le schéma de validation a échoué pour second.xml en disant inconnu élément "soap:jobinfo". J'ai tourné autour et a trouvé le targetNamespace valeur doit être la même que l'URI d'espace de noms.
S'il vous plaît laissez-moi savoir comment l'utiliser de la même XSD pour deux différents espaces de noms différents Uri.
OriginalL'auteur prathima | 2012-03-21
Vous devez vous connecter pour publier un commentaire.
Réponse courte est que vous ne pouvez pas. Vous pouvez, cependant, si vous voulez être à l'aide de trois XSDs. Il vous permettra d'avoir toutes les XSD que les questions en un seul fichier (Caméléon.XSD), et en ai deux de plus que simplement composer Caméléon.XSD, les deux ayant les espaces de noms que vous voulez.
Caméléon.XSD
JobInfo1.xsd
JobInfo2.xsd
Relations:
Si vous voulez un XSD pour valider tous, alors vous pouvez aller et de construire un quatrième, que les importations de ces deux.
OneAll.XSD
Mise à jour des liens:
J'ai déjà mis à jour ma réponse, juste du timing... Si vous avez vraiment des schémas complexes qui incluent d'autres espaces de noms, alors vous ne pouvez pas obtenir ce que vous voulez, Caméléon ou pas. L'idée d'un caméléon est de supposer que l'espace de noms du schéma qui la compose. De sorte que vous pourraient avoir les mêmes structures dans les différents espaces de noms, sans avoir de duplication. Une chose à retenir est que l'un XSD = un espace de noms.
OriginalL'auteur Petru Gardea