J'ai un schéma ici où j'essaie d'inclure/importer un autre schéma qui n'a pas d'espace de noms (et cela ne peut pas être changé car il vient d'un autre fournisseur et il ne serait pas valider plus longtemps leur XML). Voici le premier schéma:Comment importer un schéma XML dans le "no namespace"
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:samp="http://sample/namespace"
targetNamespace="http://sample/namespace"
elementFormDefault="unqualified" attributeFormDefault="unqualified"
xmlns:otr1="http://sample/import/namespace1"
xmlns:otr2="http://sample/import/namespace2">
<xs:import namespace="http://sample/import/namespace1" schemaLocation="other1.xsd" />
<xs:import namespace="http://sample/import/namespace2" schemaLocation="other2.xsd" />
<!-- This one below is having problems, it is valid XML, and I am able to use it
but I am not meeting the actual requirments I have (explained later) -->
<xs:include schemaLocation=="NO_NAME_SPACE_PROBLEM.xsd"/>
...
<xs:element ref="some-elem-from-NO_NAME_SPACE_PROBLEM_SCHEMA"/>
...
</xs:schema>
Et le « NO_NAME_SPACE_SHEMA_PROBLEM.xsd » qui peut être changé dans une certaine mesure, mais il ne peut pas avoir l'espace de noms.
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified" attributeFormDefault="unqualified">
<xsd:element name="some-elem-from-NO_NAME_SPACE_PROBLEM_SCHEMA"
type="xsd:string" nillable="true"/>
</xs:schema>
Le problème est que le some-elem-from-NO_NAME_SPACE_PROBLEM_SCHEMA
est mis dans l'espace de noms samp
. Donc, quand j'essaye de le faire passer en XML, il imprime <samp:some-elem-from-NO_NAME_SPACE_PROBLEM_SCHEMA><child-elem/></samp:some-elem-from-NO_NAME_SPACE_PROBLEM_SCHEMA>
, ce qui est un gros problème parce que le XML ne va pas valider puisqu'il n'est pas destiné à l'avoir. Mon but est donc simplement d'importer des éléments dans l'espace de noms sans espace de noms.
Mise à jour 1: Désolé pour la confusion, j'étais et j'utilise xs: include, pas xs: import pour le schéma sans espace de noms. La syntaxe de la question a été mise à jour. J'utilise également JiBX codegen pour générer des objets de domaine et une liaison JiBX pour le marshalling. Donc ça doit être compatible avec JiBX aussi.
Mise à jour 2: Selon la réponse de skaffman, j'utiliserai maintenant xs: import. Je pense que je vais brancher ceci dans une nouvelle question.
Vous devez être très clair sur la distinction entre 'import' et' include', ils font des choses follement différentes. – skaffman
Oui, je suis désolé, je voulais y aller plus tôt mais j'ai été retenu avant que je puisse revenir à mon clavier. – Zombies