Maison  >  Article  >  développement back-end  >  Tutoriel d'introduction XML - Introduction détaillée aux entités

Tutoriel d'introduction XML - Introduction détaillée aux entités

黄舟
黄舟original
2017-03-15 16:47:541422parcourir

Étant donné que les données ne sont pas au format XML, utilisez la déclaration NDATA pour spécifier le type de données. avi est un type de média MIME défini dans NOTATION. L'intégration d'entités non analysées dans XML est compliquée et non standard, alors essayez de ne pas l'utiliser. Entité

définit une entité à l'aide de la déclaration ENTITY. Par exemple :

<!ENTITY linux "linux is a very good system"> 用&linux;可引用该字符串

peut définir une entité externe et référencer un document XML externe

<!ENTITY linux SYSTEM "/home/linux/test.xml"> 使用&linux;可引用/home/linux/test.xml文档

Les entités externes n'ont pas de déclarations XML, mais peuvent avoir des déclarations de texte. Les deux sont très. similaire. La principale différence est que les déclarations de texte doivent avoir une déclaration de codage, mais les informations de version sont facultatives.

<?xml version="1.0" encoding="gb2312"?> 是一个合法的文本声明 <?xml encoding="gb2312"?> 也是一个合法的文本声明

Toutes les données ne sont pas XML. Tels que des photos JPEG, des films MPEG, etc. XML recommande d'utiliser des entités externes non analysées comme mécanisme pour intégrer ce contenu dans les documents. DTDSpécifie un nom et un URI pour les entités contenant des données non XML.

<!ENTITY movie SYSTEM "/home/linux/test.avi" NDATA avi>

Les données n'étant pas au format XML, utilisez la déclaration NDATA pour spécifier le type de données. avi est un type de média MIME défini dans NOTATION. L'intégration d'entités non analysées dans XML est compliquée et non standard, alors essayez de ne pas l'utiliser.

L'entité paramètre peut définir un ensemble d'entités communes, et les entités peuvent être référencées via cette entité paramètre dans le document. La définition des entités paramètres est similaire à la définition des entités générales, sauf qu'il y a un % supplémentaire au milieu et que le code % & est également utilisé lors du référencement.

<!ENTITY % person "name,address,postcode"> 引用方法 %person; 这样会用name,address,postcode代替参数实体%person;

Habituellement, les DTD sont relativement volumineuses. La DTD de DocBook fait plus de 11 000 lignes si elle est stockée dans un seul fichier, elle sera très difficile à gérer et à maintenir. Nous pouvons utiliser des sous-ensembles de DTD externes pour diviser une grande DTD en différents blocs fonctionnels selon les fonctions et les stocker dans différents fichiers. Introduisez-le ensuite dans la DTD actuelle via la déclaration d'entité de paramètre externe, telle que :

Définissez l'entité de paramètre pour faire référence aux noms externes.dtd 011f02d2423187dd42d61c19d2b08a93 le sous-ensemble DTD externe %names ;

Utilisez le mot-clé IGNORE pour commentez l'instruction , par exemple :

<![IGNORE[ <!ELEMENT note (#PCDATA)> ]]>

Bien sûr, la même manière d'utiliser 19ccfca326b8d59b02a0d85b4fa92a2f est utilisé. Le mot-clé

INCLUDE indique que l'instruction donnée est effectivement utilisée dans la DTD, telle que :

<![INCLUDE[ <!ELEMENT note (#PCDATA)> ]]>

À en juger par cette seule instruction, cela n'a aucun effet si ou non, INCLUDE est utilisé de la même manière, mais si INCLUDE et IGNORE sont combinés, la sélection de la fonction DTD peut être obtenue. On peut définir une entité paramètre :

<!ENTITY % note_allowed "INCLUDE" >

puis utiliser la référence d'entité paramètre sans utiliser de mots-clés :

<![%note_allowed;[ <!ELEMENT note (#PCDATA)> ]]>

Comme ci-dessus, la déclaration de l'élément est valide, mais on peut aussi redéfinir le paramètre entité %note_allowed à IGNORE, de sorte que la déclaration de l'élément soit invalide.

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