Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1786 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  question sur xsd

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

question sur xsd

n°1985255
Toinou87
That misread could have been.
Posté le 18-04-2010 à 18:23:08  profilanswer
 

voila je suis en train de tester XSD. J'ai cru comprendre que c'etait sensé valider un fichier xml.
 
donc j'ai fait le test suivant, j'ai recupéré un xml et l'xsd correspondant et changé un type de donné pour voir ce qu'il me dit quand l'xml ne correspond pas avec le schema
 
j'ai donc l'xsd suivant (notez que l'element "nom" doit etre un float, c'est l'erreur que j'ai insérée)
 
<?xml version="1.0" encoding="UTF-8"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="personne">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="nom" type="xs:float" />
          <xs:element name="prenom" type="xs:string" />
          <xs:element name="date_naissance" type="xs:date" />
          <xs:element name="etablissement" type="xs:string" />
          <xs:element name="num_tel" type="xs:string" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:schema>
 
#####################################
l'xsl suivant
 
<?xml version='1.0'?>
<xsl:stylesheet
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">
 
 
  <xsl:template match="/">
<html>
  <body>
<xsl:for-each select="personne">
    <b>Nom:</b> <xsl:value-of select="nom"/> <br />
    <b>Prenom:</b> <xsl:value-of select="prenom"/> <br />
    <b>Date de naissance:</b> <xsl:value-of select="date_naissance"/> <br />
    <b>Etablissement:</b> <xsl:value-of select="etablissement"/> <br />
    <b>Numero de telephone</b> <xsl:value-of select="num_tel"/> <br />
</xsl:for-each>
  </body>
</html>
  </xsl:template>
</xsl:stylesheet>  
 
 
##########################
et l'xml suivant
 
<?xml version="1.0" encoding="UTF-8"?>
 
<?xml-stylesheet type="text/xsl" href="personne.xsl" ?>
  <personne xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="personne.xsd">
    <nom>MBODJ</nom>
    <prenom>Babacar</prenom>
    <date_naissance>1996-10-06</date_naissance>
    <etablissement>NIIT</etablissement>
    <num_tel>764704140</num_tel>
  </personne>
 
##########################
Et donc le fait que j'ai mis float a la place de string n'affecte en rien l'affichage
 
Est ce normal? Ce ne devrait pas me dire un truc du genre: "l'xml n'est pas conforme au schema"? Est ce que ca vient de l'implementation de xsd dans firefox par hazard? Ai je oublié de faire quelque chose...?
 
Bref si ca ne me dit pas que l'xml n'est pas conforme, quelle est l'utilité de déclarer le schema dans l'xml ?
 
Je cherche depuis un moment sur le net sans trouvé rien de pertinent.
Merci d'avance pour vos explications


---------------
Toinou87 ;-p May the force be with you!!
mood
Publicité
Posté le 18-04-2010 à 18:23:08  profilanswer
 

n°1985284
masklinn
í dag viðrar vel til loftárása
Posté le 18-04-2010 à 20:39:25  profilanswer
 

Toinou87 a écrit :

voila je suis en train de tester XSD. J'ai cru comprendre que c'etait sensé valider un fichier xml.


Oui mais c'est pourri, c'est verbeux et illisible, je suggère fortement d'utiliser RelaxNG et/ou Schematron à la place (Schematron pour les contraintes que RelaxNG ne peut pas exprimer).

 

Et Firefox n'effectue pas de validation XSD, à ce que je sache, il faut que tu fasses ta validation séparément.

 

Exemple: http://validator.nu/?doc=http%3A%2 [...] source=yes

 

En utilisant la conversion suivante de ton schéma XSD:

Code :
  1. start = element personne {
  2.   element nom { xsd:float },
  3.   element prenom { text },
  4.   element date_naissance { xsd:date },
  5.   element etablissement { text },
  6.   element num_tel { text }
  7. }

Message cité 1 fois
Message édité par masklinn le 18-04-2010 à 20:54:32

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1985295
Toinou87
That misread could have been.
Posté le 18-04-2010 à 21:01:34  profilanswer
 

masklinn a écrit :


Oui mais c'est pourri, c'est verbeux et illisible, je suggère fortement d'utiliser RelaxNG et/ou Schematron à la place (Schematron pour les contraintes que RelaxNG ne peut pas exprimer).
 
Et Firefox n'effectue pas de validation XSD, à ce que je sache, il faut que tu fasses ta validation séparément.
 
Exemple: http://validator.nu/?doc=http%3A%2 [...] source=yes
 
En utilisant la conversion suivante de ton schéma XSD:

Code :
  1. start = element personne {
  2.   element nom { xsd:float },
  3.   element prenom { text },
  4.   element date_naissance { xsd:date },
  5.   element etablissement { text },
  6.   element num_tel {text }
  7. }



 
j'ai du mal m'exprimer. Quand j'ai dit que je testais XSD je ne parlais pas d'un logiciel mais du langage. Apres c'est pour des exercices donc j'ai pas le choix de la technologie de validation de l'xml
 
Donc si je comprends bien ce que tu dis, le browser ne valide pas la structure du fichier xml quand un xsd y est referencé.
a quoi ca sert alors d'inclure xsi:noNamespaceSchemaLocation="personne.xsd" dans un fichier xml, si le fichier xsd n'est pas automatiquement comparé?
 
Parce que quand on rajoute un fichier xsl par exemple, on a pas besoin d'avoir un script ou un code derriere qui va generer la page stylisée. Donc je trouve bizarre/dommage que le browser ne fasse pas la validation du fichier xml !!!


---------------
Toinou87 ;-p May the force be with you!!
n°1985297
masklinn
í dag viðrar vel til loftárása
Posté le 18-04-2010 à 21:05:37  profilanswer
 

Toinou87 a écrit :

j'ai du mal m'exprimer. Quand j'ai dit que je testais XSD je ne parlais pas d'un logiciel mais du langage.


J'ai bien compris.

Toinou87 a écrit :

Apres c'est pour des exercices donc j'ai pas le choix de la technologie de validation de l'xml


Ca par contre c'était pas spécifié. Tu peux pas demander à ton prof si t'as pas droit à un truc moins pourri?

Toinou87 a écrit :

Donc si je comprends bien ce que tu dis, le browser ne valide pas la structure du fichier xml quand un xsd y est referencé.


Oui, le parseur XML de Firefox ne gère pas les XSD (à ce que je sache)

Toinou87 a écrit :

a quoi ca sert alors d'inclure xsi:noNamespaceSchemaLocation="personne.xsd" dans un fichier xml, si le fichier xsd n'est pas automatiquement comparé?


Pour les parseurs XML qui comprennent/gèrent les XSD.

Toinou87 a écrit :

Parce que quand on rajoute un fichier xsl par exemple, on a pas besoin d'avoir un script ou un code derriere qui va generer la page stylisée. Donc je trouve bizarre/dommage que le browser ne fasse pas la validation du fichier xml !!!


Bof. Un navigateur, ça n'a pas vocation de faire ta validation, ça a pour vocation d'afficher des pages. Les XSL (une autre technologie bien merdique) c'est une feuille de style, ça sert à afficher un fichier XML, ça a du sens que ce soit supporté. XSD, pas vraiment.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1985392
rufo
Pas me confondre avec Lycos!
Posté le 19-04-2010 à 10:20:36  profilanswer
 

La vadilation se fait via un parser, par ex, en, PHP, tu peux utiliser DOM : tu files le XML et le XSD et il répond true ou false. Et XSD, c'est pas pour formater l'affichage mais pour vérifier la validité des données fournies en entrée dans le XML...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  question sur xsd

 

Sujets relatifs
Question sur les fichiersSEO: question sur le cloaking
Question encapsulation debutant en Perl [HELP]Question de SESSION ...
Comparaison de chaine de caractères / Question à la conLa question la plus simple de la programmation
question sur les iterateursquestion sur les références
Question sur excel[RESOLU] Question simple sur la DTD
Plus de sujets relatifs à : question sur xsd


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR