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

Format d'échange (XML, JSON...) Java Discussion :

Validation fichier VXML [XSD]


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 47
    Par défaut Validation fichier VXML
    Bonjour,

    Je doit vérifier que des fichiers vxml sont bien formés. Pour cela j'ai récupéré le xsd du w3c. pourtant j'ai une erreur indiquant que le schémat est mal formé. Si quelqu'un à une idée car je sèche là

    Pour cela j'utilise le bout de code suivant
    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
    String path = new File(".").getCanonicalPath() + "\\src\\test\\";
     
    		SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
           File schemaLocation = new File(path + "vxml.xsd");
           Schema schema = factory.newSchema(schemaLocation);
           Validator validator = schema.newValidator();
     
           DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
           domFactory.setNamespaceAware(true); // never forget this
           DocumentBuilder builder = domFactory.newDocumentBuilder();
           Document doc = builder.parse(new File(path + "test.vxml"));
     
           DOMSource source = new DOMSource(doc);
           DOMResult result = new DOMResult();
     
           try {
               validator.validate(source, result);
               Document augmented = (Document) result.getNode();
               // do whatever you need to do with the augmented document...
           }
           catch (SAXException ex) {
               System.out.println("test.vxml is not valid because ");
               System.out.println(ex.getMessage());
           }
    L’erreur générée est la suivante
    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
    org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name 'EventHandler.attribs' to a(n) 'attribute group' component.
    	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getGlobalDecl(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAttributeGroupTraverser.traverseLocal(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDAbstractTraverser.traverseAttrsAndAttrGrps(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.processComplexContent(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseComplexTypeDecl(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDComplexTypeTraverser.traverseGlobal(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseSchemas(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(Unknown Source)
    	at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(Unknown Source)
    	at javax.xml.validation.SchemaFactory.newSchema(Unknown Source)
    	at javax.xml.validation.SchemaFactory.newSchema(Unknown Source)
    	at test.Test.validationBis(Test.java:85)
    	at test.Test.main(Test.java:36)
    le fichier test.vxml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="UTF-8"?>
    <vxml xmlns="http://www.w3.org/2001/vxml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://www.w3.org/2001/vxml http://www.w3.org/TR/voicexml20/vxml.xsd" version="2.0">
      <form>
      <field name="drink">
         <prompt>Would you like coffee, tea, milk, or nothing?</prompt>
         <grammar src="drink.grxml" type="application/srgs+xml"/>
      </field>
      <block>
         <submit next="http://www.drink.example.com/drink2.asp"/>
      </block>
     </form>
    </vxml>
    le fichier vxml.xsd à télécharger http://www.w3.org/TR/voicexml20/vxml.xsd

  2. #2
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    Si vous voulez valider auprès des copies locales de schemas, seule vxml.xsd n'est pas sufficent. Il faut télécharger l'ensemble complet qui incluse:

    grammar-core.xsd
    synthesis-core.xsd
    vxml.xsd
    vxml-attribs.xsd
    vxml-datatypes.xsd
    vxml-grammar-extension.xsd
    vxml-grammar-restriction.xsd
    vxml-synthesis-extension.xsd
    vxml-synthesis-restriction.xsd

    C'est ça la source de problème.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 47
    Par défaut
    Citation Envoyé par tsuji Voir le message
    Si vous voulez valider auprès des copies locales de schemas, seule vxml.xsd n'est pas sufficent. Il faut télécharger l'ensemble complet qui incluse:

    grammar-core.xsd
    synthesis-core.xsd
    vxml.xsd
    vxml-attribs.xsd
    vxml-datatypes.xsd
    vxml-grammar-extension.xsd
    vxml-grammar-restriction.xsd
    vxml-synthesis-extension.xsd
    vxml-synthesis-restriction.xsd

    C'est ça la source de problème.
    merci ça marche
    effectivement la source de ses fichiers est locale. j'aurais cru qu'on les cherchait comme pour le xsd

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

Discussions similaires

  1. validation fichier XML /XSD
    Par ammah dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 04/06/2009, 15h59
  2. [JDOM] Validation fichier XML avec DTD grace à JDOM ?
    Par ederf dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 20/04/2009, 12h06
  3. [DTD] Valider fichier xml avec une DTD externe
    Par Tail dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 26/06/2006, 18h14
  4. Erreur validation fichier après un OpenDialog
    Par jackrabbit dans le forum Langage
    Réponses: 2
    Dernier message: 24/08/2005, 13h28
  5. Valider fichier XML : problème avec la DTD
    Par SkIllz2k dans le forum Valider
    Réponses: 2
    Dernier message: 26/04/2005, 17h15

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