« STIC Discussion:STIC I - exercice 6 (Nestor-Pixel) » : différence entre les versions
Ligne 61 : | Ligne 61 : | ||
Ensuite: oui l'URL utilisé pour le namespace n'a aucune importance... | Ensuite: oui l'URL utilisé pour le namespace n'a aucune importance... | ||
Votre problème vient du fait que votre XSD n'est pas valide. Il faut valider. Dans Exchanger, Menu Schema->Validate XML Schema (donc c'est une procédure spéciale pour valider !) | Votre problème vient du fait que votre XSD n'est pas valide. Il faut valider. Dans Exchanger, Menu Schema->Validate XML Schema (donc c'est une procédure spéciale pour valider !). | ||
Dans l'exemple http://tecfa.unige.ch/etu-maltt/nestor/schneib0/stic/ex6/annuaire2.xsd: | Dans l'exemple http://tecfa.unige.ch/etu-maltt/nestor/schneib0/stic/ex6/annuaire2.xsd: | ||
Ligne 69 : | Ligne 69 : | ||
* Finalement le codage dans le fichier XML ne semble pas être en UTF-8 (enfin ce n'est pas génant pour valider). | * Finalement le codage dans le fichier XML ne semble pas être en UTF-8 (enfin ce n'est pas génant pour valider). | ||
... Ceci dit, je ne sais pas si les fichiers déposés sont les bons (genre dans le XML, vous faites référence à un XSD qui n'existe pas dans le répertoire. | ... Ceci dit, je ne sais pas si les fichiers déposés sont les bons (genre dans le XML, vous faites référence à un XSD qui n'existe pas dans le répertoire. Mais bon, je suis parti de là. En tout cas, ceci marche avec vos fichiers: | ||
Le XSD (annuaire2.xsd ... donc faites attention aussi aux noms de vos fichiers) | |||
Le XSD (annuaire2.xsd) | |||
<pre> | <pre> | ||
<?xml version="1.0"?> | <?xml version="1.0"?> |
Version du 27 octobre 2007 à 17:53
template xml
Ce chablon ne fonctionne pas (chez moi en tout cas) :
<?xml version="1.0"?> <?xml-stylesheet href="votre_style.xsl" type="text/xsl"?> <votre_racine xmlns="http://tecfa.unige.ch/perso/maltt/XXXX" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tecfa.unige.ch/perso/maltt/XXXX" votre_xsd.xsd" > <!-- ici le contenu --> </votre_racine>
Il y a déjà une erreur dans le xsi:schemaLocation. Ce n'est pas :
xsi:schemaLocation="http://tecfa.unige.ch/perso/maltt/XXXX" votre_xsd.xsd"
mais
xsi:schemaLocation="http://tecfa.unige.ch/perso/maltt/XXXX votre_xsd.xsd" (attention aux guillemets)
Ensuite la déclaration du namespace (xmlns) me renvoie une page grise quoi que je mette. J'ai résolu le problème en utilisant le template suivant :
<?xml version="1.0"?> <?xml-stylesheet href="votre_xsl.xsl" type="text/xsl"?> <votre_racine xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="votre_xsd.xsd"> <!-- ici le contenu --> </votre_racine>
Mais je reste quand même intrigué de savoir pourquoi le chablon où on définit notre namespace ne marche pas... j'ai pourtant essayé de mettre toutes les possibilités comme ns :
http://tecfa.unige.ch/perso/maltt/schneib0 (la solution conseillée)
http://tecfa.unige.ch/etu-maltt/nestor/schneib0/ (la location de la racine des fichiers)
http://tecfa.unige.ch/etu-maltt/nestor/schneib0/stic/ex6/ (le dossier exact)
http://tecfa.unige.ch/ (le nom de domaine)
En fait ça m'étonne que cette ligne pose problème, je pensais qu'elle était là uniquement à titre informatif... quelques éclaircissements seraient les bienvenus :)
Réponses (provisoires)
Effectivement, j'avais une erreur dans le template (un " en s'est glissé dedans). J'ai corrigé (merci) ceci:
xsi:schemaLocation="http://tecfa.unige.ch/perso/maltt/XXXX votre_xsd.xsd"
Ensuite: oui l'URL utilisé pour le namespace n'a aucune importance...
Votre problème vient du fait que votre XSD n'est pas valide. Il faut valider. Dans Exchanger, Menu Schema->Validate XML Schema (donc c'est une procédure spéciale pour valider !).
Dans l'exemple http://tecfa.unige.ch/etu-maltt/nestor/schneib0/stic/ex6/annuaire2.xsd:
- Il y a un > en trop à la ligne 6 ou 7
- Il manque la déclaration XML (<?xml version="1.0"?>
Votre solution adaptée ci-dessus ne peut pas non plus marcher avec le XSD que j'ai vu. En plus, il sera plus difficile de valider le XML par la suite.
- Finalement le codage dans le fichier XML ne semble pas être en UTF-8 (enfin ce n'est pas génant pour valider).
... Ceci dit, je ne sais pas si les fichiers déposés sont les bons (genre dans le XML, vous faites référence à un XSD qui n'existe pas dans le répertoire. Mais bon, je suis parti de là. En tout cas, ceci marche avec vos fichiers:
Le XSD (annuaire2.xsd ... donc faites attention aussi aux noms de vos fichiers)
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://tecfa.unige.ch/perso/maltt/schneib0" targetNamespace="http://tecfa.unige.ch/perso/maltt/schneib0" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
Le XML (annuaire2.xml)
<nestor xmlns="http://tecfa.unige.ch/perso/maltt/schneib0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tecfa.unige.ch/perso/maltt/schneib0 annuaire2.xsd" >
... après il y d'autres problèmes (liés à la construction du schéma, mais j'imagine que vous vous êtes arrété là ...)