STIC Discussion:STIC I - exercice 6 (Nestor-Pixel)

De EduTech Wiki
Aller à la navigation Aller à la recherche

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 (enfin faudra indiquer manuellement le XSD).

... 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.