J'ai toujours considéré que XMLSchemas et DTD étaient équivalentes, mais que ce dernier est plus lourd à utiliser lors de la modélisation de relations complexes (comme l'héritage).Equivalence des DTD et des XMLSchemas
Récemment je voulais construire un schéma pour valider les documents qui ont une structure comme celle-ci:
<data>
<array>
<int></int>
<int></int>
</array>
</array>
<float></float>
<float></float>
</array>
<int><int>
<float></float>
</data>
Les éléments à l'intérieur < données> peuvent apparaître dans l'ordre et chacun de cardinalité 0 .. * utilisant XMLSchema, si je définis un type complexe en utilisant < xs: all> Je peux avoir les éléments en désordre mais la cardinalité maximum est 1. < xs: sequence> et < xs: choice> sont les autres candidats évidents mais ils sont plus restrictive que ce que je veux.
Je remarquai alors qu'une DTD semble être en mesure d'y parvenir comme ceci:
<!ELEMENT data (array | float | int)*>
Est-il possible de construire un schéma équivalent ou dois-je utiliser ici DTDs?
Merci Fernando. Je ne peux pas supposer une séquence particulière en raison de la façon dont les données seront générées, donc je vais regarder quelques alternatives. Je ne veux pas utiliser de DTD car je ne peux pas valider les données de l'élément, sauf de manière très lâche. Cela laisse RelaxNG * doigts croisés *. – Daniel