Maison >développement back-end >Tutoriel XML/RSS >Exemple de code de déclaration d'attribut du didacticiel de mise en route XML

Exemple de code de déclaration d'attribut du didacticiel de mise en route XML

黄舟
黄舟original
2017-03-15 16:51:201878parcourir

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.
ee56423a142649b0ea5b04fbc1a6279c
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>
Si la DTD déclare une entité non analysée nommée play, cet élément movie peut être utilisé dans le document XML Embed

Vidéo fichier :

<movie src="play" />
Un attribut de type ENTITIES contient plusieurs noms d'entités non analysés déclarés ailleurs dans la DTD, séparés par des espaces.

<!ATTLIST slide_show slides ENTITIES #REQUIRED>
Si la DTD déclare les entités non analysées slide1, slide2, slide3,..., vous pouvez utiliser l'élément slide_show pour intégrer la diapositive dans le document XML. Un attribut de type

<slide_show slides="slide1 slide2 slide3" />
NOTATION contient le nom d'une notation déclarée dans la DTD du document. Ce type d'attribut est rarement utilisé. En théorie, vous pouvez utiliser cet attribut pour associer certains éléments spéciaux à des types. L'exemple suivant déclare quatre notations pour différents types d'image, puis stipule que chaque élément d'image doit choisir parmi eux un attribut de type.

<!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>
La valeur de l'attribut type de chaque élément d'image peut être l'une des quatre valeurs​​de gif, tiff, jpeg et png. Cette propriété présente un léger avantage par rapport aux types d'énumération car le type de média MIME réel de la notation est théoriquement disponible. Étant donné que la barre oblique n'est pas un caractère légal dans les noms XML, le type d'énumération ne peut pas spécifier image/png ou image/jpeg comme valeurs autorisées.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn