Un document XML valide doit déclarer l' attribut de l'élément. Utilisez la déclaration ATTLIST pour compléter. Un ATTLIST peut déclarer plusieurs attributs pour un type d'élément.
REQUIRED>
L'exemple ci-dessus déclare que l'élément image doit avoir un attribut src et que la valeur de cet attribut est une donnée de caractère. Vous pouvez utiliser l'instruction ATTLIST pour déclarer plusieurs attributs pour un élément, tels que :
width CDATA #REQUIRED height CDATA #REQUIRED alt CDATA #IMPLIED > ;
L'instruction ci-dessus souligne que les attributs src, width et height sont obligatoires et que l'attribut alt est facultatif. 1. Type d'attribut
La valeur de l'attribut de type CDATA peut contenir n'importe quel texte chaîne . DTD ne peut pas spécifier l'attribut sous la forme d'un entier ou d'une date. Le schéma peut fournir des types de données plus puissants.
La valeur de l'attribut de type NMTOKEN est un jeton de nom XML. Les jetons de nom XML sont similaires aux noms XML, mais les jetons de nom XML permettent d'utiliser tous les caractères comme caractère de début d'un nom, tandis que la première lettre d'un nom XML doit être une lettre, un caractère idéographique et un trait de soulignement. Donc 10, .bashrc est une balise de nom XML légale, mais pas un nom XML légal. Chaque nom XML est une balise de nom XML, mais toutes les balises de nom XML ne sont pas des noms XML. Si l'attribut contient des entiers tels que 1990, 2005, son type doit être spécifié comme NMTOKEN. Par exemple :
<!ELEMENT person birthday NMTOKEN #REQUIRED>
L'attribut de type NMTOKENS contient un ou plusieurs jetons de nom XML séparés par des espaces. Par exemple :
<person dates="02-01-2005 03-01-2005 05-01-2005">person</person>
La déclaration correspondante doit être :
<!ATTLIST person dates NMTOKENS #REQUIRED>
Par contre, cette déclaration ne peut pas être utilisée pour le formulaire 01/02/2005 à cause de la barre oblique dedans Pas un caractère de nom légal.
Déclaration d'énumération, aucun mot-clé n'est utilisé pour les énumérations. Répertoriez toutes les valeurs directement, séparées par des barres verticales. Par exemple :
<!ATTLIST date month(January | February | March | April | May | June | July | August | September | October | November | December) #REQUIRED>
En réponse à l'instruction ci-dessus, l'attribut mois de l'élément date peut sélectionner l'un des douze mois.
Les attributs de type ID doivent contenir un nom XML unique au sein du document. L'attribut ID attribue un identifiant unique à l'élément.
<!ATTLIST name card_id ID #REQUIRED>
Étant donné que les nombres ne sont pas des noms XML légaux, le numéro d'identification ne peut pas commencer par un chiffre. La solution consiste à ajouter un trait de soulignement ou une lettre devant.
L'attribut de type IDREF pointe vers l'attribut de type ID d'un élément du document. Il doit donc s'agir d'un nom XML dont le but est d'établir une relation plusieurs-à-plusieurs entre des éléments lorsqu'une simple relation de confinement ne suffit pas. Par exemple :
<project project_id="p1"> <goal>deploy linux</goal> <team_member person_card_id="c123"> </project> <person card_id="c123"> <name>linuxsir</name> <assignment project_project_id="p1"> </person>
L'attribut project_id de l'élément project et l'attribut card_id de l'élément person doivent être de type ID. L'attribut person_card_id de l'élément team_member et l'attribut project_project_id de l'élément d'affectation sont de type IDREF. La déclaration correspondante est la suivante :
<!ATTLIST person card_id ID #REQUIRED> <!ATTLIST project project_id ID #REQUIRED> <!ATTLIST team_member person_card_id IDREF #REQUIRED> <!ATTLIST assignment project_project_id IDREF #REQUIRED>
Les attributs de type IDREFS contiennent une liste de noms XML. Les noms sont séparés par des espaces et chaque nom est l'ID d'un élément du document. Cet élément est utilisé lorsqu'un élément doit référencer plusieurs autres éléments. Par exemple :
<!ATTLIST person card_id ID #REQUIRED assignment IDREFS #REQUIRED> <!ATTLIST project project_id ID #REQUIRED team IDREFS #REQUIRED>
Le document correspondant peut s'écrire comme :
<project project_id="p1" team="c123"> <gold>deploy linux</gold> </project> <person card_id="c123" assignment="p1"> <name>Linuxsir</name> </person>
Les attributs de type ENTITY sont inclus dans les noms d'entités non analysées déclarées dans d'autres positions de la DTD . Par exemple, l'élément movie peut avoir un attribut d'entité qui identifie le fichier mpeg ou rm à lire lorsqu'il est activé :
<!ATTLIST movie src ENTITY #REQUIRED>
Vidéo fichier :
<movie src="play" />
<!ATTLIST slide_show slides ENTITIES #REQUIRED>
<slide_show slides="slide1 slide2 slide3" />
<!NOTATION gif SYSTEM "image/gif"> <!NOTATION tiff SYSTEM "image/tiff"> <!NOTATION jpeg SYSTEM "image/jpeg"> <!NOTATION png SYSTEM "image/png"> <!ATTLIST image type NOTATION (gif | tiff | jpeg | png) #REQUIRED>
2.属性缺省值
每个ATTLIST声明除了要提供一种数据类型外,还要声明属性的缺省行为。
#IMPLIED,属性可选。
#REQUIRED,属性必须有。
#FIXED,属性是常量,不能更改。
<!ATTLIST person name CDATA #FIXED "linuxsir"
Literal,作为一个引用字符串的实际缺省值。
<!ATTLIST person name NMTOKEN "linuxsir"
如果没有显示指明person元素的name属性,则该值为linuxsir。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!