2010-06-22 4 views
6

Il y a beaucoup de threads expliquant ce que Doctype doit choisir, mais je ne trouve aucune explication de la syntaxe actuelle. Prenons par exemple:Explication de la syntaxe de Doctype

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd "> 

En particulier:

  • public peut être remplacé par d'autres valeurs et qu'est-ce que cela signifie?
  • Pourquoi l'URL doit-elle être entourée de guillemets?
  • Qu'est ce que le "-"?
  • Pourquoi la première chaîne est-elle séparée par deux barres obliques plutôt que par 1?
  • Est-ce que EN signifie anglais? Si oui, pourquoi les sites Web utilisent-ils également lang=en?

Répondre

2

Bien qu'il ne réponde pas à toutes vos questions, mais je pense que c'est un bon début. Wikipedia est votre ami. ;)

http://en.wikipedia.org/wiki/Document_Type_Declaration

P.S. Pour la question guillemet étant laissé, je pense que les citations sont là pour interpréter les cordes avec des espaces blancs correctement

1

Pourquoi la première chaîne est-elle séparée par deux barres obliques plutôt que 1?

Le SGML syntax est "Owner//Keyword Description//Language". Mais en pratique, ce n'est pas pertinent, car les navigateurs n'utilisent pas réellement d'analyseurs syntaxiques SGML pour le langage HTML. DOCTYPE est juste un commutateur pour choisir entre le mode quirks et le mode standard.

0

Les types de documents ne sont pas limités aux pages HTML. Les types de document sont utilisés pour référencer les définitions de type de document (DTD), qui définissent la contrainte sur la structure d'un document XML.

Il existe différents types possibles, l'exemple OP suit un format "DTD externe public":

<!DOCTYPE root_element PUBLIC "DTD_name" "DTD_location"> 

où:

  • root_element: est la racine du xml
  • DTD_name: un identificateur de la DTD, afin que les processeurs puissent en utiliser une version locale plutôt que de devoir la télécharger
  • DTD_location: l'emplacement de la DTD au cas où elle n'est pas disponible localement.

Le DTD_name dispose également d'un format défini:

"prefix//owner_of_the_DTD//description_of_the_DTD//ISO 639_language_identifier" 

prefix est une des opérations suivantes:

  • ISO: La DTD est une norme ISO. Toutes les normes ISO sont approuvées.
  • +: La DTD est une norme non ISO approuvée.
  • -: La DTD est une norme non-ISO non approuvée.

Source: http://xmlwriter.net/xml_guide/doctype_declaration.shtml