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] type NULL entre balise existe?


Sujet :

Valider XML

  1. #1
    Membre habitué
    Inscrit en
    Décembre 2002
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 186
    Points : 130
    Points
    130
    Par défaut [XSD] type NULL entre balise existe?
    bonjour,
    j'ai un soucis en définissant un schema (xml schema) à partir d'un fichier xml existant (valide)
    L'element qui pose probleme est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <property name="kjkj" value="sdqdé">
    </property>
    j'ai donc écrit le type suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <complexType name="propertyType">
    	<attribute name="name" type="string" use="required"></attribute>
    	<attribute name="value" type="string" use="required"></attribute>
    </complexType>
    Or mon document xml n'est plus valide et j'ai l'erreur suivante:
    cvc-complex-type.2.1: Element 'property' must have no character or element information item [children], because the type's content type is empty.
    Je pense que cela vient du fait que j'ai <property ...><property>
    au lieu de
    <property .../>

    En fait je veux spécifier que mon fichier xml peut avoir <property ...><property>, mais rien entre ces balises...

    je précise au passage que j'utilise Eclipse WTP pour générer ce schema graphiquement, et donc la solution semble etre trouvée lorque je définit le type propertyType par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <complexType name="propertyType">
    	<simpleContent>
    		<extension base="string">
    			<attribute name="name" type="string" use="required">
    			</attribute>
    			<attribute name="value" type="string" use="required">
    			</attribute>
    		</extension>
    	</simpleContent>
    </complexType>
    ... et la mon document semble etre valide...


    Le probleme intervient dans la 2eme partie de mon application, qui consister à générer des classes Java à partir du schema (unmarshalling)
    En effet, g un attribut de nom value, et par défaut, le nom donné à ce qui est contenu entre les balises (propery dans mon cas) est également value! Il y a donc un conflit...


    Donc en resumé, ce qui m'interesses c'est un type qui autorise <element value="jjj"></element>, mais rien entre les 2...

    merci d'avance

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut Re: [XML Schema] type NULL entre balise existe?
    Bonjour,

    Citation Envoyé par mauvais_karma
    Je pense que cela vient du fait que j'ai <property ...><property>
    au lieu de
    <property .../>
    Non, tu n'as pas exactement <property...></property> tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <property ...>
    </property>
    Nuance... Le retour-chariot entre les balises ouvrante et fermante est pris en compte lors de la validation comme du texte, ce qui explique que ton premier schéma (qui ne prévoit que des attributs) ne passe pas, tandis que le deuxième (qui dérive par extension d'un type xs:string) l'accepte.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre habitué
    Inscrit en
    Décembre 2002
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 186
    Points : 130
    Points
    130
    Par défaut
    OK! merci,
    je suis donc condamné à transformer le nom de l'attribut value...
    xslt, dom ou manipulation de fichier texte: quel serait le + simple

    merci

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Il ne serait pas plus propre de convertir tes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <property>
    </property>
    en :
    ou encore en :
    :

    En tout cas, XSLT est idéal pour ce genre de transformation.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

Discussions similaires

  1. [XSD] Type numérique qui peut être null ?
    Par zabojadek dans le forum Valider
    Réponses: 2
    Dernier message: 24/11/2010, 16h17
  2. Récupérer un champs à null si une entrée n'existe pas
    Par zglurb dans le forum Langage SQL
    Réponses: 6
    Dernier message: 16/04/2008, 18h31
  3. Réponses: 3
    Dernier message: 15/06/2005, 10h15
  4. [debutant] extraire phrase entre balises
    Par debdev dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 13/06/2005, 13h00
  5. [C#] Placer fichier html entre balises DIV
    Par Febus dans le forum ASP.NET
    Réponses: 9
    Dernier message: 07/05/2004, 11h44

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