IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Valider XML Discussion :

[XSD] Comment valider un XSD ?


Sujet :

Valider XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 43
    Points : 25
    Points
    25
    Par défaut
    Je n'ai pas encore réussi à valider un seul schéma (en XSD), mais avec ce post et d'autres, je vais réussir. En tout cas, ce que j'ai compris, c'est qu'il faut utiliser un langage pour valider son schéma (XSD, DTD, ...).

    Mais j'ai une question très conne, pourquoi personne n'a inventé une mini-application qui valide un schéma ? A moins que XML Spy et d'autres s'en chargent déjà ?

    Bon ce week-end, je vais tester la solution soit avec du C comme indiqué ci-dessus, soit avec MSXML 4 + ASP ou MSXML 4 + VB.Net.

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Un XSD est avant tout un document XML, c'est un des atouts principaux de XSD. Pour le valider, il suffit donc de le valider comme n'importe quel autre document XML
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Membre habitué

    Inscrit en
    Juin 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 76
    Points : 131
    Points
    131
    Par défaut
    oui, les éditeurs XML proposent généralement la validation. Ainsi de XML Spy, oXygen, Microsoft XML Notepad 2007 (gratuit), etc.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 43
    Points : 25
    Points
    25
    Par défaut
    1er acte

    Bon j'ai essayé le script VBS proposé (que vous avez effacé) dans le message épinglé : "Comment valider un XML avec un XSD". D'ailleurs, pourquoi ?

    Regardons à travers un exemple :

    schema.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0"?>
    <!-- element_racine xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd" -->
    <element_racine xmlns:xsi="schema.xsd">
      <nombre>sdg</nombre>
      <nombre>90</nombre>
      <nombre>80</nombre>
      <nombre>99</nombre>
    </element_racine>
    schema.xsd

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
     
    <xsd:simpleType name="entre50et100">
    <xsd:restriction base="xsd:positiveInteger">
      <xsd:minExclusive value="50"/>
      <xsd:maxExclusive value="100"/>
    </xsd:restriction>
    </xsd:simpleType>
     
    <xsd:element name="nombre" type="entre50et100"/>
     
    <xsd:element name="element_racine">
    <xsd:complexType>
    <xsd:sequence>
      <xsd:element ref="nombre" maxOccurs="unbounded"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
     
    </xsd:schema>
    schema.vbs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    Dim WshShell
    Set WshShell = CreateObject ("WScript.Shell")
     
    Dim xmlDoc
    set xmlDoc = CreateObject ("msxml2.DOMDocument.4.0")
    xmlDoc.async = false
    xmlDoc.validateOnParse = true
     
    Dim xmlSchema
    set xmlSchema = CreateObject ("msxml2.DOMDocument.4.0")
    xmlSchema.async = false
    xmlSchema.validateOnParse = true
    xmlSchema.load "schema.xsd"
     
    Dim xsdCache
    set xsdCache = CreateObject ("Msxml2.XMLSchemaCache.4.0")
    xsdCache.add "qersetr", xmlSchema
    Set xmlDoc.schemas = xsdCache
     
    xmlDoc.load "schema.xml"
     
    Set myErr = xmlDoc.parseError
    If (myErr.errorCode <> 0) Then
      WScript.Echo ("errorReason=" + myErr.reason)
    else
      WScript.Echo("Le schéma XSD est valide")
    End If
    Ça marche, mais le problème est que ce script ne valide que le schéma et non pas les 2 fichiers en même temps (XML-XSD). La preuve, j'ai inséré dans mon fichier XML, "<nombre>sdg</nombre>" et le programme VBS ne bronche pas.

    2nd acte

    J'ai essayé le même code avec "Microsoft XML Notepad 2007 (gratuit)" (merci ckeromen) et là ça marche ! Notepad me signale une erreur quand je tape sdg dans <nombre></nombre> ou alors un nombre non compris entre 50 et 100.


  5. #5
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Le message en question a été supprimé car il est désormais disponible ici : http://xml.developpez.com/sources
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  6. #6
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 756
    Points : 2 990
    Points
    2 990
    Par défaut Super
    J'étais à la recherche d'un moyen pour valider mon XSD versus mon XML et ta réponse m'a super bien aidée. XML Notepad est effectivement très précieux.

    Merci beaucoup
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  7. #7
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Il existe aussi LiquidStudio

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SAX] comment valider un xsd?
    Par amouna23 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 06/10/2009, 11h25
  2. Réponses: 3
    Dernier message: 24/07/2009, 14h04
  3. [XSD] JDK 1.3: Comment valider un XSD ?
    Par vbrabant dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 05/03/2007, 18h58
  4. [XSD] Comment valider avec un XML Schema
    Par gwe78 dans le forum Valider
    Réponses: 2
    Dernier message: 25/10/2006, 00h01
  5. Réponses: 3
    Dernier message: 27/01/2004, 16h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo