La lecture de la DTD XHTML Guide de déclarations XML

La lecture de la DTD XHTML: A Guide to XML Déclarations

Bien que le W3C a longtemps eu Document Type Definition (DTD) pour le HTML, peu de développeurs utilisent effectivement les DTD en tant que fondement de l'apprentissage HTML. XHTML 1.0 simplifie les DTD XML avec la syntaxe légèrement plus favorable - ils déjà utilisé la syntaxe SGML plus complexe - et l'accent mis sur la validation mai conduire les développeurs à les explorer de plus près. Du bon usage de XHTML 1.1 requiert un certain niveau de compréhension de la DTD, aussi pour se commencé maintenant, c'est une bonne idée. Heureusement, XHTML ne pas utiliser tous les outils XML fournit; Déterminer XHTML est plus facile que de tout apprendre sur XML.

NoteLe W3C se déplace lentement vers la nouvelle norme des schémas XML pour décrire les structures de document. Vous voulez apprendre le XML Schemas quand ils sont prêts, mais la DTD décrit dans cet ouvrage constituent une base solide pour tenter de représenter les. Vous pouvez travailler avec XHTML 1.0 sans aucune compréhension de la DTD parce que les règles pour l'élément et d'attribut d'utilisation sont les mêmes que celles pour le HTML 4.0. Toutefois, si vous prévoyez d'utiliser la validation des parsers avec XHTML 1.0, vous devez savoir sur les DTD de comprendre certains des messages d'erreur que vous rencontrez mai. En outre, les DTD compréhension peut vous aider considérablement à la norme XHTML 1.1 et son approche modulaire.

NoteParce que vous n'avez pas nécessairement besoin de comprendre la syntaxe d'utiliser la DTD XHTML, vous êtes les bienvenus pour renflouer de cet article si vous préférez, et de revenir à elle si et quand vous en avez besoin. Le W3C a écrit les DTD XHTML pour son propre commodité, les rendant plus faciles à gérer (et à un niveau abstrait, plus lisible) - mais au prix de demander un certain recoupement pour savoir exactement ce qui est inclus dans un élément ou d'un attribut. En conséquence, les DTD XHTML sont pas une lecture recommandée pour les développeurs sans XML ou SGML arrière-plan. Les sections suivantes présentent les différents types de déclarations utilisées dans la DTD XHTML dans leurs formes les plus simples, mise en place des règles plus complexes utilisés pour assembler les DTD XHTML 1.0.

  

Astuce Si vous voulez un guide pour créer et lire des DTD XML dans toute leur gloire, essayez XML:Primer, 2e édition par Simon St-Laurent (articles IDG, 1999). Pour encore plus de détails sur les techniques XML, consultez XML Elements of Style (McGraw-Hill, 1999), également par Simon St.Laurent.

Type d'élément DéclarationsChaque document valide a besoin d'une ou plusieurs élément déclarations de type, qui décrivent les noms d'éléments utilisés dans un document et le contenu qui apparaît dans un élément donné. Si un nom d'élément apparaît dans un document et il n'ya aucune déclaration en ce sens élément de type, la validation des analyseurs signaler une erreur. (Certains parseurs arrêter également le traitement, bien que ce n'est pas nécessaire.) De même, si un élément apparaît dans un contexte où il n'est pas censé paraître, la validation des erreurs parseurs rapport. La syntaxe des déclarations d'élément type est simple:

elementName contentModel>

Les noms d'élément doit commencer par des lettres, des traits de soulignement, ou de deux points, et ils mai contenir des lettres, underscores, colonnes, des chiffres, des tirets et points. Les noms d'éléments à commencer par xml (ou toute variation sur ce cas, tels que XML ou XML) sont réservées à l'usage du W3C. L'utilisation des deux-points est découragée sauf pour une utilisation avec espaces de noms, dont l'article 4 décrit. modèles de contenu peut être beaucoup plus compliqué, permettant aux concepteurs de spécifier des combinaisons complexes d'éléments et de texte. Il existe quatre types de base de modèles de contenu disponibles: vide, pas de modèles de contenu structuré, et des modèles mixtes de contenu.

NoteLe type d'élément déclarations ne fournir toute information sur ce que l'élément est pour, quels contextes il être utilisé en mai, ou ce que son apparition dans un contexte donné peut signifier. Vous devez fournir ces informations séparément, généralement dans la documentation. Déclarations du type d'élément ne font que décrire une petite, mais importante, ensemble de propriétés de l'élément: nom et le contenu autorisé.

Le modèle de contenu EMPTYLe VIDE contenu de modèle est le modèle le plus simple disponibles. Les éléments vides mai, soit utiliser des balises élément vide ou un ensemble de début et de fin sans contenu que ce soit (même pas d'espace blanc) entre eux. Toutefois, ils mai (et le font généralement) de stocker des informations dans les attributs, qui sont déclarés séparément. Les éléments img et br sont deux exemples d'éléments avec des modèles de contenu vide, et leurs déclarations sont très similaires:


    

Le modèle de contenu TOUTLe TOUT contenu de modèle est presque aussi simple que le modèle vide. Éléments déclarés COMME TOUT peut contenir n'importe quel mélange de texte et (déclaré) éléments. Le modèle de contenu TOUT n'est jamais utilisé dans XHTML 1.0, mais il apparaît parfois dans les documents XML qui contiennent un contenu XHTML (peut-être suivie d'un commentaire):


   

Les développeurs XML désapprouvent l'utilisation répandue de tout, y voyant l'introduction de graves lacunes, mais vous mai l'utiliser de manière appropriée dans votre propre DTD au début d'un projet ou pour préserver les espaces pour des extensions futures. Décodeur aide de cette clé, vous pouvez traduire le contenu du modèle de la déclaration du type d'élément de tableau et ses pièces en anglais. L'extérieur des parenthèses juste ci-joint le modèle de contenu tout entier - une exigence pour les déclarations modèle structuré de contenu. Le premier point inscrit à l'intérieur des parenthèses, la légende?, Indique qu'un élément caption mai, une fois apparaître comme le premier élément de l'élément de tableau (mais il est facultatif) . La virgule légende suivante? Indique que les autres points suivants il doit apparaître dans l'ordre. Le morceau suivant fournit quelques options:

(col * | colgroup *)

Ce regroupement signifie que soit les éléments col ou colgroup mai apparaissent après la légende et avant la thead (s'ils apparaissent), mais que des éléments col et colgroup mai pas être mélangé dans un élément donné de table. Ce morceau de balisage dit que soit zéro ou plusieurs éléments de col ou zéro ou plusieurs éléments colgroup mai semblent à ce point. Si les développeurs de la norme XHTML avait voulu permettre à des éléments col et colgroup être mélangés, ils auraient pu écrire:

(col | colgroup) * 

Cela dit, zéro ou plusieurs instances des éléments col ou colgroup mai apparaissent, sans interdire à la fois d'apparaître dans une seule séquence. Une virgule suit le col (* | colgroup *) groupement, suivie par thead?. Comme la légende?, Cela permet à l'élément thead à apparaître une fois ou aucune. La virgule qui suit permet alors tfoot? pour indiquer l'éventuelle apparition d'un élément tfoot zéro ou une fois. La dernière partie du modèle de contenu est similaire à la col (* | colgroup *) de regroupement, mais avec un léger changement:

(tbody + | tr +)

Encore une fois, les éléments ou soit tbody tr mai apparaissent dans cette localisation dans le modèle de contenu. Toutefois, au moins une instance de l'un de ces éléments est nécessaire pour un document valide. Ceci est le contenu que requis dans un élément table. Aucun cas de l'élément table mai apparaître sans contenant au moins une ou un élément tbody tr.

Mixte des modèles de contenuLa plupart des éléments HTML contiennent mixte des modèles de contenu, Qui permettent aux auteurs de documents de mélanger des textes et des éléments ensemble afin de créer des pages Web. Mixte des modèles de contenu au format XML se présentent sous deux variétés. La variété simple vous permet de créer des éléments qui mai contenir du texte uniquement: L'élément de titre, par exemple, mai contenir du texte uniquement:

PCDATA signifie données de caractères analysées, Le seul des types textuels SGML que XML prend en charge. Vous pouvez écrire la même déclaration comme ceci:

L'astérisque est facultatif quand un texte seul élément est déclarée, mais l'astérisque, il est plus compatible avec d'autres modèles de contenu mixte. Mixte des modèles de contenu que décrire le mélange de texte et les éléments sont plus compliquées. Ils ressemblent à des modèles de contenu structurés, en utilisant l'| et * indicateurs, mais vous êtes très limité dans la façon dont vous pouvez les utiliser. La syntaxe générale d'une déclaration d'élément de contenu mixte type à l'aide de ce type ressemble à ceci:

elementName (# PCDATA | enfant1 | enfant2 | ...) *>

Mixte des modèles de contenu permettent seulement de lister un ensemble d'éléments qui semblent mai mélangés à du texte, mais vous ne pouvez pas spécifier leur séquence ou le nombre de fois qu'ils apparaissent mai. Par exemple, si un élément très simple paragraphe contient que du texte mélangés avec des éléments en gras et en italique, les déclarations pourrait ressembler à ceci:


   
 

Sur la base de ces déclarations, tous les points présentés ici sont légales:

 Il ya dans ce texte qui vient d'un!  This one's bold!  Celui-ci est en italique!  Celui-ci est partie en gras  et  partie en italique!  Italique partie This one's  et  bold partie --  et puis  bold again! 

Déclarations mixtes sont utilisés dans toute la DTD XHTML 1.0, pour comprendre leur utilisation là, vous devez savoir sur les entités paramètres (que je couvre plus loin dans cet article).

Liste d'attributs DéclarationsListe Attribut déclarations vous permettent de spécifier les attributs que vous pouvez utiliser sur les types d'élément particulier. Chaque élément XHTML a au moins un ensemble d'attributs pour l'attribut déclarations de liste (parfois abrégé ATTLIST déclarations) sont une partie importante du 1,0 DTD XHTML. Vous avez plus d'options pour les déclarations de liste d'attributs que les déclarations de type d'élément en XML, mais heureusement, la spécification XHTML 1.0 se tient à distance à partir des types les plus compliqués d'attributs. La syntaxe de base pour une déclaration d'attribut liste ressemble à ceci:

elementName attName défaut attType attName défaut attType ... >

Plusieurs déclarations d'attributs liste mai apparaître pour un type d'élément unique, bien que la première définition d'un attribut particulier pour un élément donné est celui qui s'habitue dans les définitions répétées. N'importe quel nombre d'attributs mai être définies pour un élément particulier dans une déclaration donnée liste d'attributs, même aucun:

Les noms des attributs sont soumis aux mêmes règles que les noms d'éléments: ils doivent commencer par lettres, underscores, ou deux-points et mai contenir des lettres, underscores, colonnes, des chiffres, des tirets et points. Attribute les noms commençant par xml (ou toute variation de cas sur que, comme le XML ou XML) sont réservées à l'usage du W3C. En outre, l'utilisation des deux-points est découragée sauf pour une utilisation avec des espaces de noms. Le plus simple type d'attribut est le type CDATA, une abréviation pour DONNÉES DE CARACTÈRE. Le plus simple par défaut est le mot-clé # IMPLIED, qui ne fournit pas de valeur par défaut pour l'attribut. Une déclaration très simple attribut pourrait ressembler à ceci:

Les sections suivantes traitent des types d'attributs et options par défaut plus en détail.

Types d'attributsJetons un regard sur la manière dont ces attributs sont utilisés par l'exploration des sous-ensembles des déclarations employées dans la DTD XHTML. La DTD utilise les entités paramètres, reprise ultérieurement dans cet article, et des exemples plus petits sont plus faciles à travailler, donc nous allons créer des exemples qui sont faciles à lire, mais ne sont pas la citation exacte de la DTD XHTML. Aussi, comme vous allez le voir, le W3C utilise entités paramètre pour spécifier attentes en matière de contenu de l'attribut qui ne peut pas être exprimée en utilisant les types de base. Attributs de type CDATA apparaître dans les DTD XHTML. CDATA est le plus lâche modèle, pouvant accueillir tous types de besoins tout en fixant des attentes très peu. Types d'attributs CDATA peut contenir des URL, des informations numériques, des informations de style - au fond, tout ce qui peut être exprimé sous forme de texte. Un sous-ensemble de la déclaration d'attribut liste pour l'élément img, par exemple, pourrait ressembler à ceci:


    

L'attribut src, qui prend une URL, est représentée comme CDATA. L'attribut alt, qui contient du texte à afficher si l'image n'est pas chargé, est aussi représenté comme CDATA malgré les différences entre son contenu et celui de l'attribut src. La hauteur et les attributs de largeur, qui acceptent les longueurs, également utiliser CDATA. CDATA peut s'occuper de tous ces différents types, car elle impose des restrictions si peu sur son contenu. XHTML 1.0 La recommandation, tous les noms de ses attributs de type ID comme pièce d'identité et les met à la disposition de chaque élément dans la DTD. Pour ajouter l'élément d'identification de l'élément img, vous utilisez juste ceci:

 

Ou ajoutez ceci à la liste précédente:


    

Le IDREF et IDREF types d'attribut sont plus utilisées avec parcimonie. L'élément label, qui permet la création d'étiquettes pour tous les éléments dans un document, a pour attribut qui devrait contenir une valeur d'ID décrivant le contenu étant marqués:


    

Ce mécanisme permet à l'étiquette de se référer à l'un et un seul élément dans un document - celle qui a une valeur d'attribut id correspondant à celle de l'étiquette pour l'attribut. IDREFS sont utilisés de même, même si elles permettent un seul attribut de se référer à des valeurs multiples ID . XHTML 1.0 utilise IDREFS pour permettre à des cellules de tableau pour pointer vers les libellés des entêtes qui les décrivent:


    
    

Des tableaux complexes poussent parfois à plusieurs niveaux d'en-têtes, ce qui peut aider à gérer la réorganisation de table ou d'analyse. Par exemple, XHTML utilise l'attribut type NMTOKEN de limiter le contenu à un seul mot. Dans l'une, les cartes et éléments d'objets, NMTOKEN est utilisé pour restreindre la valeur des attributs de nom aux mêmes règles qui s'appliquent aux attributs id:


    
    
    

XHTML utilise attributs énumérés pour restreindre les valeurs d'un attribut à un ensemble limité de choix permis, présenté comme une liste. Attributs énumérés apparaissent tout au long de la DTD. L'utilisation d'un attribut de type énuméré pour restreindre les valeurs est particulièrement utile pour les éléments d'entrée dans lequel l'attribut type définit le sens «réel» de l'élément:


    

Les types énumérés sont également utilisés pour certains attributs (comme l'attribut ismap pour IMG éléments, qui ne peut avoir qu'une valeur si les types énumérés sont utilisés):

Si l'élément img doit être traitée comme une carte d'image, le créateur du document devraient utiliser les ismap attribut indiqué ici:

Si l'image n'est pas une carte, l'élément img ne devrait pas avoir un attribut ismap à tous comme indiqué ici:

XHTML 1.0 ne pas utiliser le NMTOKENS, notation, ENTITÉ, ou les entités à tous les types d'attribut. Cependant, leur utilisation n'est pas interdite dans les DTD XML qui sont conçues pour inclure ou être inclus par le XHTML. Si vous rencontrez ce type dans une DTD que vous utilisez avec XHTML, consultez la documentation de ce DTD concernant leur bon usage.

un article présenté par Albert Lichtblau


Disclaimer:Notre site n'est pas responsable du contenu de cet article. Webarticles est une ressource d'information gratuite.
Important: Cet article «Lire la DTD XHTML Guide de déclarations XML" a été traduit par un logiciel automatique. Nous nous sentons désolés pour les fautes d'orthographe que mai ont eu lieu. Nous vous remercions de votre compréhension.


Online: 452 users browsing the articles directory