Contenu.
- La terminologie
- Langues et Serializations
- Spécifications
- Navigateur Analyseurs et de Contenu (MIME) Types
- Prise En Charge Du Navigateur
- Des validateurs et des Définitions de Type de Document
- Bizarreries, Limitée Bizarreries, Normes et modes de.
La terminologie
Une des difficultés de l'décrivant c'est clairement que la terminologie dans les spécifications officielles a changé au fil des ans, depuis HTML a été introduite. Ce qui suit ci-dessous est basé sur HTML5 terminologie. Aussi, "fichier" est utilisé comme un terme générique pour désigner un fichier, document, flux d'entrée, le flux d'octets, etc pour éviter d'avoir à faire des distinctions subtiles.
Langues et Serializations
HTML et XHTML sont définis en termes de langue et de sérialisation.
Le langage définit le vocabulaire des éléments et des attributs, et leur modèle de contenu, c'est à dire les éléments qui sont autorisés à l'intérieur de laquelle d'autres éléments, dont les attributs sont autorisés sur l'élément, ainsi que l'objet et la signification de chaque élément et d'attribut.
La sérialisation définit la façon dont le marquage est utilisé pour décrire ces éléments et d'attributs dans un document texte. Ceci comprend les balises sont nécessaires et qui peuvent être déduites, et les règles de ces inférences. Il décrit par exemple comment annuler éléments doivent être marqués (par exemple, " > " vs "/>") et lorsque les valeurs d'attributs doivent être entre guillemets.
Spécifications
La spécification HTML 4.01 est l'actuel cahier des charges qui définit à la fois le langage HTML et le code HTML de sérialisation.
La spécification XML 1.0 définit une sérialisation, mais laisse la langue définie par d'autres spécifications, qui sont appelés "applications XML"
Le XHTML 1.0 et 1.1 spécifications sont à la fois en cours d'utilisation. Essentiellement, ils utilisent le même langage que le HTML 4.01, mais utiliser un autre sérialisation, celle qui est compatible avec la spécification XML 1.0. c'est à dire le XHTML est une application de XML.
Le HTML5 (comme de 2010-04-18, le projet d') spécification décrit une nouvelle langue pour le HTML et le XHTML. Cette langue est surtout un sur-ensemble de l'HTML 4.01 langue, mais elle est destinée à n'être vers l'arrière compatible avec les outils web (par exemple, les navigateurs, les moteurs de recherche et les outils de création) et pas avec les spécifications précédentes, où les différences surviennent. Donc, la signification de certains éléments sont parfois changé à partir de l'ancien cahier des charges. De même, chacun des serializations sont rétro-compatibles avec les outils actuels.
Navigateur Analyseurs et de Contenu (MIME) Types
Lorsqu'un fichier texte qui est envoyé à un navigateur, il est analysée dans sa mémoire interne de la structure (modèle d'objet). Pour ce faire, il utilise un analyseur qui suit, soit le code HTML de sérialisation des règles ou de la sérialisation XML règles. Analyseur il utilise dépend de ce qu'il en déduit le type de contenu de base pour les fichiers sur le "content-type" en-tête HTTP. En interne, une fois que le fichier a été analysé, le navigateur traite le modèle d'objet de pratiquement de la même manière, indépendamment du fait qu'il a été initialement fourni à l'aide d'un code HTML ou XHTML de sérialisation.
Pour un navigateur pour utiliser ses XHTML analyseur, le type de contenu d'en-tête HTTP doit être l'un des XML types de contenu. Le plus souvent, c'est soit l'application/xml ou application/xhtml+xml. Non XML type de contenu signifie que le fichier, indépendamment de savoir si elle répond à tous le langage XHTML et la sérialisation des règles ou pas, ne sera pas traité par le navigateur XHTML.
À l'aide d'un type de contenu HTTP texte/html (ou dans la plupart des scénarios de secours, où le type de contenu est manquant ou tout autre type non-XML) fera en sorte que le navigateur à utiliser son code HTML de sérialisation de l'analyseur.
Une différence essentielle entre les deux analyseurs est que le code HTML de la sérialisation de l'analyseur effectue le recouvrement d'erreur. Si le fichier d'entrée de l'analyseur ne respectent pas le code HTML de sérialisation des règles, l'analyseur va récupérer dans les moyens à l'ingénierie inverse de la précédente navigateurs et de poursuivre la construction de son modèle d'objet jusqu'à ce qu'il atteint la fin du fichier. HTML5 contient la première définition normative de la reprise, mais pas d'intégrer le navigateur a envoyé une mise en œuvre de l'algorithme activée dans une version de 2010-04-26.
En revanche, la sérialisation XML parser, s'arrête quand il rencontre quelque chose qu'il ne peut pas interpréter comme XML (c'est à dire lorsqu'il découvre que le fichier n'est pas XML bien formé). Ce qui est requis des analyseurs par la spécification XML 1.0.
Prise En Charge Du Navigateur
La plupart des navigateurs modernes en charge à la fois un analyseur HTML et d'un analyseur XML. Cependant, dans les versions de Microsoft Internet Explorer 8.0 et versions antérieures, le parseur XML ne peut pas créer directement un modèle d'objet pour le rendu de la page HTML. La structure XML peut, toutefois, être traitées avec un fichier XSLT pour créer un flux qui, à leur tour être analysée à l'aide de l'analyseur HTML pour créer un modèle d'objet qui peut être rendu.
À partir de Internet Explorer 9 Platform Preview, XHTML fournie à l'aide d'un fichier XML de type de contenu peut être analysé directement de la même manière que les autres navigateurs modernes.
Lors de leur parseurs XML détecter que leurs fichiers d'entrée ne sont pas XML bien formé, certains navigateurs affichent un message d'erreur, et d'autres montrent la page en tant que construit à l'endroit où l'erreur a été détectée et certaines offrent à l'utilisateur la possibilité d'avoir le fichier ré-analysée à l'aide de leurs analyseur HTML.
Des validateurs et des Définitions de Type de Document
Le HTML et le XHTML fichiers peuvent commencer par une Définition de Type de Document (DTD) de la déclaration qui indique la langue et la sérialisation qui est utilisée dans le document. Les validateurs, tels que celui de l' http://validator.w3.org/ utiliser cette information pour correspondre à la langue et la sérialisation utilisé dans le fichier contre les règles définies dans la DTD. Puis, il signale les erreurs sur la base où les règles dans la DTD sont violés par la marque dans le fichier.
Pas tout le code HTML de la sérialisation et les règles de la langue peut être décrit dans une DTD, de sorte que les validateurs seul test pour un sous-ensemble de toutes les règles décrites par le cahier des charges.
HTML 4.01 et XHTML 1.0 définir Stricte, de Transition et de Dtd Frameset qui diffèrent dans les éléments de langage et les attributs qui sont autorisés dans les fichiers conformes à la norme.
Les validateurs basé sur HTML5 comme le validateur.nu se comportent plus comme des navigateurs, le traitement de la page en fonction de l'adresse HTTP de type de contenu et l'utilisation d'une DTD à base de règle de jeu de sorte qu'ils attrapent des erreurs qui ne peuvent pas être décrites par des Dtd.
Bizarreries, Limitée Bizarreries, Normes et modes de.
Les navigateurs ne pas valider les fichiers envoyés. Ni n'en font aucune déclaration de DTD pour déterminer la langue ou de la sérialisation du fichier. Cependant, ils ne l'utilisent de deviner l'époque à laquelle la page a été créée, et donc les chances d'analyse et de rendu le comportement de l'auteur aurait attendu d'un navigateur à l'époque. En conséquence, ils définissent trois d'analyse et de rendu des modes, connu comme mode Quirks, Limitée Caprices (ou Presque Normes) le mode et le mode standard.
N'importe quel fichier a servi à l'aide d'un XML type de contenu est toujours traitée en mode standard. Pour les fichiers analysés à l'aide de l'analyseur HTML, si il n'y a pas de DTD ou la DTD est déterminé à être très vieux, les navigateurs utilisent leur mode quirks. Globalement, HTML 4.01 et XHTML dossiers traités en tant que texte/html seront traitées avec limitée en mode quirks si elles contiennent une DTD transitoire et avec les normes de la mode si vous utilisez une DTD strict.
Où la DTD n'est pas reconnue, le mode est déterminé par un ensemble complexe de règles. Un cas particulier est l'endroit où le public et les identifiants sont omis et la déclaration est tout simplement <!DOCTYPE html>. Ceci est connu pour être la plus courte déclaration doctype où les navigateurs actuels permettra de traiter le fichier en tant que normes de la mode. Pour cette raison, il est de la déclaration mentionnée à être utilisé pour le HTML5 fichiers conformes à la norme.