J’ai googlé cette question mais je ne comprends pas clairement ce qui est des schémas et DTD et pourquoi le schéma est plus puissant par rapport à une DTD.
Toute orientation serait très appréciée.
Merci.
J’ai googlé cette question mais je ne comprends pas clairement ce qui est des schémas et DTD et pourquoi le schéma est plus puissant par rapport à une DTD.
Toute orientation serait très appréciée.
Merci.
À partir des Différences Entre les Dtd et Schéma de la section de la Conversion d'un fichier DTD dans un Schéma de l'article:
La différence essentielle entre les Dtd et XML Schema est que le XML Schéma utilisent une syntaxe XML, alors que Dtd ont une syntaxe unique tenue plus de SGML Dtd. Bien que les Dtd sont souvent critiqué en raison de ce besoin pour apprendre une nouvelle syntaxe, de la syntaxe lui-même est assez laconique. Le contraire est vrai pour les schémas XML, qui sont verbeux, mais également l'utilisation des balises et XML, de sorte que les auteurs de XML doit trouver la syntaxe de XML Schema moins intimidant.
L'objectif de la Dtd a été de conserver un niveau de de la compatibilité avec SGML pour les applications qui veulent convertir SGML Dtd en XML Dtd. Cependant, en accord avec l'un des les objectifs de XML, "laconisme de balisage XML est de minime importance," il n'y a pas de réelle préoccupation avec le maintien de la syntaxe bref.
[...]
Donc, quelles sont les autres différences qui peut être particulièrement important lorsque nous sommes à la conversion d'une DTD? Jetons un coup d'oeil.
En tapant
La différence la plus significative entre les Dtd et schémas XML est la capacité à créer et à utiliser les types de données dans le Schéma en conjonction avec d'élément et d'attribut déclarations. En fait, c'est une différence importante que la moitié de la Recommandation du Schéma XML est consacré à datatyping et XML Schema. Nous couvrons les types de données en détail dans la Partie III de ce livre, "XML Schema Datatypes."
[...]
Contraintes D'Occurrence
Un autre domaine où les Dtd et Schéma diffèrent considérablement avec l'apparition de contraintes. Si vous vous rappelez de nos précédents exemples dans le Chapitre 2, "Schéma de Structure" (ou de votre propre travail avec les Dtd), il y a trois symboles que vous pouvez utiliser pour limiter le nombre d'occurrences d'un élément: *, + et ?.
[...]
Les énumérations
Donc, nous allons dire que nous avions un élément, et nous voulions être en mesure de définir un attribut de taille pour le t-shirt, qui permettait aux utilisateurs de choisir une taille: petite, moyenne ou grande. Notre DTD devrait ressembler à ceci:
<!ELEMENT item (shirt)> <!ELEMENT shirt (#PCDATA)> <!ATTLIST shirt size_value (small | medium | large)>
[...]
Mais que faire si nous voulions
size
être un élément? Nous ne pouvons pas le faire avec une DTD. Les dtd ne fournissent pas pour les énumérations dans un texte de l'élément de contenu. Toutefois, en raison de types de données avec le Schéma, lorsque nous avons déclaré l'énumération dans l'exemple précédent, nous avons créé unsimpleType
appeléssize_values
qui nous pouvons maintenant utiliser avec un élément:<xs:element name="size" type="size_value">
[...]
Les différences entre une Définition de Schéma XML (XSD) et de la Définition de Type de Document (DTD) comprennent:
Une différence est également que, dans une DTD, le modèle de contenu d'un élément est complètement déterminé par son nom, indépendamment de l'endroit où il apparaît dans le document. Donc, dire, vous voulez avoir un name
des enfants de l'élément de votre person
élément qui a lui-même des éléments d'enfant first
et last
. Alors, si vous voulez avoir un name
élément enfant pour city
élément dans le même document, qui aurait également besoin d'avoir des éléments d'enfant first
et last
. En revanche, le Schéma XML permet de déclarer l'enfant de types d'éléments, localement, dans ce cas, vous pouvez déclarer l' name
éléments d'enfant pour les deux person
et city
séparément, en leur donnant un contenu approprié modèles dans ces contextes.
L'autre différence majeure est la prise en charge des espaces de noms. Depuis les Dtd sont une partie de l'original spécification XML (et héritées de SGML), ils ne sont pas de l'espace de noms courant du tout parce que les espaces de noms XML ont été précisées plus tard. Vous pouvez utiliser des Dtd en combinaison avec des espaces de noms, mais il nécessite quelques contorsions, comme l'a obligé à définir les préfixes dans la DTD et en utilisant seulement les préfixes, au lieu d'être en mesure d'utiliser arbitraire de préfixes.
Pour moi, d'autres différences sont le plus souvent superficielle. Type de soutien pourrait facilement être ajoutés à la Dtd, et la syntaxe est juste la syntaxe. (Je trouve le Schéma XML syntaxe horrible et ne veut plus jamais la main-d'entretenir un Schéma XML, je ne dirais pas que sur les Dtd ou schémas RELAX NG; si j'ai besoin d'un Schéma XML pour une raison quelconque, j'ai l'habitude d'écrire un RELAX NG un et convertir il avec trang
.)
XML DTD
Une DTD vise à définir la structure d’un document XML. Il définit la structure avec une liste d’éléments juridiques :
XML Schema
XML Schema permet aux auteurs de schéma spécifier que les données de la grandeur de cet élément doivent être numérique ou, encore plus précisément, un entier. Dans l’exemple suivant, j’ai utilisé string :
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.