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] complexType mixed


Sujet :

Valider XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 45
    Par défaut [XSD] complexType mixed
    J'ai un problème dont je commence à croire que c'est impossible à résoudre.
    En fait je veux créer un schéma XSD dans lequel il y a un élément de type complexType qui contient des éléments et du texte. Jusqu'ici c'est assez simple avec la commande magique du XSD <xs:complexType mixed="true">.
    Le problème c'est que je veux que ce texte doit suivre un format bien spécifique: c'est comme dans le cas du simpleType avec les restrictions.
    En gros le document XML doit être dans cette forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Elément 1>Texte avec format imposé<Elément2></Elément2></Elément1>
    Et là c'est totalement bloqué, il n'y a pas moyen de traduire ça sous XSD: apparemment les développeurs de l'XSD ont oublié de prendre en compte ce détail.
    Aidez moi SVP.
    MERCI

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Par défaut
    Ils ne l'ont pas oublié, c'est que cela n'a pas vraiment de sens.
    Un élément de type mixte contient des noeuds texte et des noeuds éléments.
    Hors XML Schema comme d'ailleurs tous les langages de validation ne 's'intéressent aux type des noeuds texte que lorsque ces derniers sont uniques dans un éléments(tout simplement ingérables autrement au niveau de la syntaxe).

    Si tu veux typer cette information il te faudra changer la structure du XML

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 45
    Par défaut
    Merci pour votre réponse.
    Le problème est que cette structure d'XML existe déjà pour des données que je dois valider avec JAVA par rapport des schémas XSD.
    Selon votre expérience, y a-t-il un autre moyen pour valider séparément le format de ces noeuds textes ?
    Merci

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    Citation Envoyé par sanzero Voir le message
    Selon votre expérience, y a-t-il un autre moyen pour valider séparément le format de ces noeuds textes ?
    Vous lisez le contenu avec Java et le validez vous-même avec Java.

    (Personnellement, je trouve que ça a bel et bien un sens, dans la logique de facilité et de lisibilité de XML. Mais concevoir une techno de validation qui peut le faire n'est pas évident.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Par défaut
    Citation Envoyé par thelvin Voir le message
    (Personnellement, je trouve que ça a bel et bien un sens, dans la logique de facilité et de lisibilité de XML.
    Pas de sens dans le sens analyse syntaxique.
    Que ce soit les dtd ou les XSD, l'analyse syntaxique se fait sur la strcuture des elements(balises).
    XML Schema va un plus loin en typant les noeuds textes (et en 1.1 en permettant des tests sur certaines valeurs) mais sur les éléments mixtes, il faudrait prévoir un "élément xsd " TEXT pour analyser et leurs types et leurs occurrences.
    On n'est à la limite de l'analyseur sémantique puisque la structure dépenderait de l'information.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 45
    Par défaut
    Donc, je suis obligé de faire une vérification "à la main" avec JAVA. ça parait un peu compliqué, parce que je dois d'abord identifier la position des noeuds texte, puis faire des infinités de if sachant que le texte doit être sous cetteforme "date|heure|String de 8 caractères|entier entre 0..99999|string de 255 caractères max" avec "|" est le fameux pipe.
    De toute façon, merci beaucoup, ça m'a permis de changer de direction et de ne pas perdre du temps sur une chose qui n'existe pas.

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    Citation Envoyé par sanzero Voir le message
    Donc, je suis obligé de faire une vérification "à la main" avec JAVA. ça parait un peu compliqué, parce que je dois d'abord identifier la position des noeuds texte, puis faire des infinités de if sachant que le texte doit être sous cetteforme "date|heure|String de 8 caractères|entier entre 0..99999|string de 255 caractères max" avec "|" est le fameux pipe.
    Sélectionner les nœuds textes serait très simple en utilisant JDOM et xPath, mais j'avoue que je ne sais pas trop comment valider avec XSD un document qu'on charge par JDOM.

    Mais de toute façon, pour se servir de ces informations, il faut bien les lire, non ? Alors pourquoi ne pas se demander si elles sont valides à ce moment-là ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [XSD] ComplexType
    Par ZeNoob dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 14/06/2012, 11h10
  2. [XSLT] Mise en forme d'un élément dans "complextype" "mixed"
    Par LionelMoi dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 08/06/2010, 20h25
  3. [XSD] faire un complexType
    Par sanchou dans le forum Valider
    Réponses: 4
    Dernier message: 25/06/2007, 15h13
  4. Réponses: 1
    Dernier message: 27/10/2005, 16h26

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