Dans cet article, nous allons examiner comment on peut créer une DTD. Pour comprendre le XML (extensible markup language) de fichiers DTD, nous examinerons les principes de base de XML dans la présente introduction. Vous êtes censés avoir une compréhension de base de XML pour ce savoir-faire.
XML- Le langage de balisage extensible est un texte basé sur la plate-forme transversale qui est la langue vous permet de stocker des données (comme les adresses dans un carnet d'adresses) d'une manière structurée. Le document XML est censé avoir la syntaxe correcte. Par conséquent, lorsque des documents XML, ils doivent être bien formés. Un document bien formé est la suivante:
- Fermé les tags (<hello> </ bonjour> ou <hi />)
- Un élément de l'attribut doit être entre guillemets (<candy price="0.50">)
- XML est sensible à la casse. En d'autres termes, le tag de début et de fin doivent utiliser le même cas
Un exemple très simple d'un document XML est donnée ci-dessous pour un magasin de bonbons menu.
<candystore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<candy>
<productName company="XYZ"> Lollipops </ productName>
<id> 634847 </ id>
<price> 0.50 </ price>
</ bonbons>
<candy>
<productName company="ABC"> Mints </ productName>
<id> 634812 </ id>
<price> 0.75 </ price>
</ bonbons>
</ candystore>
La première déclaration est l'instruction de traitement. Il raconte l'analyseur, nous travaillons avec une version du langage XML. Le reste du document est composé de balises et de nos éléments. Dans l'exemple ci-dessus l'élément "nom" est un attribut de la "société". Une bonne façon de se souvenir d'un attribut est de penser que c'est une propriété qui ont quelque chose de mai. Un bonbon a un nom. Le nom est associé à une entreprise en particulier.
Dans notre savoir-faire, nous allons prendre l'exemple ci-dessus et de créer une DTD pour elle qui va définir les règles pour savoir comment notre élément du contenu, de données ou en d'autres termes, doit être donné. (Par exemple, ce format est prévu pour nos id? Peut-il avoir des caractères alphabétiques?)
DTD (Document Type Definition) - Une DTD, comme un schéma XML, déclare métadonnées qui attribue un type particulier, qu'il soit simple ou complexe, aux éléments et leurs attributs dans un document XML.
Jetons un coup d'oeil à nouveau notre exemple pour le magasin de bonbons.
<candystore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<candy>
<productName company="XYZ"> Lollipops </ productName>
<id> 634847 </ id>
<price> 0.50 </ price>
</ bonbons>
<candy>
<productName company="ABC"> Mints </ productName>
<id> 634812 </ id>
<price> 0.75 </ price>
</ bonbons>
</ candystore>
Notre candystore élément a deux sous-éléments de bonbons. Chaque élément possède les bonbons sous-éléments du nom, id, et le prix. Il a également un attribut appelé entreprise. Lors de la construction de règles de syntaxe, nous devons définir les contraintes pour le format de nos données. Ces contraintes mai être fondée sur la manière dont les données seront utilisées. Si, par exemple, les bonbons de notre pièce d'identité doit tenir sur un produit dans la facture de 6 caractères alors que les aideront à déterminer nos contraintes. Posez-vous quelques questions à propos de vos données:
1. Est-ce que les données doivent être uniquement des chiffres ou des lettres?
2. Est-ce que les données doivent être d'une certaine longueur? Ou un minimum ou maximum plus précisément?
3. Est-ce que les données doivent avoir un attribut ou d'subelement prévus? Ou sont-ils en option?
Maintenant que nous avons quelques idées sur les questions que nous pouvons nous demander, nous pouvons aller de l'avant. Let's construire un ensemble de règles avant de commencer la création de notre code XML Schema.
1. Le nom de bonbons est nécessaire.
2. Le nom de l'entreprise peut être pas plus de 30 caractères de long. Elle est facultative.
3. L'id doit être tous les chiffres, et doit être exactement 6 chiffres. Il est requis.
4. Le prix est nécessaire.
Avec la liste de nos règles, nous pouvons maintenant créer notre définition de type de document. Passons en revue les éléments de base.
Le meilleur processus de pensée dans la création d'une DTD est de penser à la création d'une table dans une base de données. Nous savons ce qui est nécessaire à l'étape 1 par exemple le nom du bonbon pour le prix. Avec cette liste, nous pouvons définir nos éléments. Éléments dans un fichier DTD sont définis comme suit:
<! ELEMENT elementname (content-type ou le contenu du modèle)>
- elementnamespécifie le nom de l'élément
- Content-type ou le contenu du modèle spécifie si l'élément contient des données textuelles ou d'autres éléments
Les éléments peuvent être de trois types: vide, sans restriction, ou par conteneur.
Vider les éléments n'ont pas de contenu (nom ou numérique de prix, etc) et ils sont marqués comme <empty-element/>.
<! ELEMENT storemanager EMPTY>
Unrestrictedéléments sont naturellement à l'opposé de l'élément vide. Ils peuvent contenir n'importe quel élément déclaré quelque part dans le fichier DTD. Container éléments contiennent des données caractère et d'autres éléments.
Avant de préciser nos éléments, nous avons besoin d'être présenté à certains symboles utilisés dans la DTD des fichiers:
- ? - L'élément est à zéro ou à un moment.
- - Il peut être utilisé pour spécifier plusieurs enfants.
- | - Les pépins symbole est utilisé comme un ou une déclaration. Cette valeur ou cette valeur est acceptable.
- + - Il ya un minimum d'un accident.
- * L'élément est-zéro fois ou plus.
<! ELEMENT productName (# PCDATA)>
<! ELEMENT prix (# PCDATA)>
<! ELEMENT id (# PCDATA)>
<! ELEMENT candystore ((candy +))>
<! ELEMENT candy ((productName, id, prix))>
Après nos éléments que nous avons le texte PCDATA. Cela signifie fondamentalement les données de type caractère. Notre élément candystore l'enfant est l'élément de bonbons. Nous utilisons le symbole + car on peut avoir plus d'un. L'élément de bonbons a l'enfant des éléments de productName, id, et le prix. Celles-ci figurent entre parenthèses après bonbons. L'un de nos éléments, productName, est un attribut. Nous allons avoir à déclarer que, à côté.
<! ATTLIST elementname attributename valuetype [attributetype] [ "default"]>
Le attributename valuetype [attributetype] [ "default"] section est répétée aussi souvent que nécessaire pour créer de multiples caractéristiques d'un élément.
<! ATTLIST productName entreprise CDATA # REQUIRED>
Maintenant, nous allons construire notre fichier DTD.
Tout d'abord dans un fichier DTD nous avons besoin d'une instruction de traitement.
<? xml version = "1.0" encoding = "UTF-8"?>
Maintenant nous avons besoin de préciser la productName élément et de ses attributs.
<! ELEMENT productName (# PCDATA)>
<! ATTLIST productName entreprise CDATA # REQUIRED>
Maintenant, nous pouvons préciser les autres éléments:
<! ELEMENT prix (# PCDATA)>
<! ELEMENT id (# PCDATA)>
Suivant notre candystore le récipient avec son élément enfant de bonbons:
<! ELEMENT candystore ((candy +))>
Enfin, nous avons besoin de spécifier l'attribut de candystore. L'attribut est en fait celui qui pourrait vous déstabiliser. Mais rappelez-vous, XML s'attend à ce que vous suivez syntax.Recall l'élément candystore ligne dans le fichier XML:
<candystore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
Nous avons besoin de définir dans notre DTD comme un attribut:
<! ATTLIST candystore
xmlns: xsi CDATA # FIXED "http://www.w3.org/2001/XMLSchema-instance"
>
Enfin, nous donnons l'élément bonbons avec ses enfants attributs:
<! ELEMENT candy ((productName, id, prix))>
candystore.xml
<? xml version = "1.0" encoding = "UTF-8"?>
<! DOCTYPE candystore SYSTEM "candystore.dtd">
<candy>
<productName company="XYZ"> Lollipops </ productName>
<id> 634847 </ id>
<price> 0.50 </ price>
</ bonbons>
<candy>
<productName company="ABC"> Mints </ productName>
<id> 634812 </ id>
<price> 0.75 </ price>
</ bonbons>
</ candystore>
candystore.dtd
<? xml version = "1.0" encoding = "UTF-8"?>
<! ELEMENT productName (# PCDATA)>
<! ATTLIST productName entreprise CDATA # REQUIRED>
<! ELEMENT prix (# PCDATA)>
<! ELEMENT id (# PCDATA)>
<! ELEMENT candystore ((candy +))>
<! ATTLIST candystore
xmlns: xsi CDATA # FIXED "http://www.w3.org/2001/XMLSchema-instance"
>
<! ELEMENT candy ((productName, id, prix))>


Delicious
Digg
Google
Yahoo