|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Invité de passage
![]() Inscription : avril 2009 Messages : 4 ![]() |
Bonjour,
Je suis en train de créer un XSD dans lequel j'aimerai valider un élément de la forme suivante: Code :
Code :
J'ai essayé plusieurs solutions sans succès. Pour la première solution j'ai crée 2 groupes d'attributs mais XML Schema ne permet pas de faire des unions de groupe d'attributs d'après ce que j'ai compris et essayé. Pour la seconde solution j'ai essayé de faire un "choice" de 2 types d'élement avec les bonne types mais alors les noms de ces deux éléments sont identiques (Vecteur) ce qui pose un problème. Voici mon code pour la seconde solution: XSD: Code :
Code :
Merci |
||||||||
|
|
00
|
|
|
#2 |
![]() ![]() |
Pas faisable. La validité d'un élément ou d'un attribut, ne peut pas dépendre des valeurs (valides, donc,) prises par d'autres éléments ou attributs.
En langage savant, on dit que XML Schema permet de valider la grammaire du format, pas sa sémantique. En XML Schema 1.1 il y aurait toujours moyen d'utiliser <xs:assert>, qui du coup se dédouane du côté grammaire seulement. Mais bon, c'est pas géré par grand-chose.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher du poisson, il videra le lac et au bout de deux ans son village ne mangera plus jamais. Partagez vos connaissances, mais aussi comment s'en servir. |
|
|
00
|
|
|
#3 | ||||
|
Membre chevronné
![]() Inscription : octobre 2011 Messages : 412 ![]() |
[0] En xsd 1.0, effectivement vous ne pouvez pas faire comme montré. C'est tout à fait défendu. Le mieux on peut faire c'est de relié le type au temps tardif et dynamique.
[0.1] Le xml doit préciser le type. Code :
[0.2] Le xsd, je commente le xsd:element Test et le remplace par ceux qui suivent. Code :
[0.4] Effectivement une solution comme telle peut parâitre maladroite; mais, avec xsd 1.0 c'est la mieux à mon sens qu'on puisse faire. [1] Avec xsd 1.1, ce genre de problèmes serait résolu bien plus concis et satisfaisant: on peut utilser l'element xsd:alternative pour arriver une résolution bien nette. Les supports de xsd 1.1 dans les applications ne sont pourtant mois répandus pour le moment. C'est déjà tout à fait faisable. |
||||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com