web-dev-qa-db-fra.com

Relation et différences entre SGML, XML, HTML et XHTML

  1. Je me demandais ce que signifie "profil" dans Wikipedia :

    XML est le profil d'un SGML standard ISO, et la plupart du XML provient de SGML inchangé.

  2. Selon http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html :

    HTML est un sous-ensemble de SGML.

    XML est un sous-ensemble hautement fonctionnel de SGML.

    XHTML étend et sous-définit le HTML.

    "L'un étant un sous-ensemble d'un autre" signifie-t-il que le code dans le premier est également syntaxiquement correct et sémantiquement le même que dans le second?

    Comme dans le sens de la théorie des ensembles élémentaires,

    • hTML, XML et XHTML sont-ils tous des sous-ensembles différents de SGML?
    • xML et HTML ne se croisent-ils presque pas?
    • xHTML est-il un surensemble de XML et de HTML?
  3. Puis-je m'attendre à un résumé plus concis et plus clair des différences dans les objectifs des quatre et/ou quand les utiliser, que le lien ci-dessus? Je suis vraiment confus quant à la ligne claire entre leurs objectifs.
  4. Selon http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html :

    XML n'est pas un langage de balisage unique. Il s'agit d'un métalangage permettant aux utilisateurs de concevoir leur propre langage de balisage.

    Je me demandais comment comprendre XML et HTML sont tous deux des sous-ensembles de SGML, mais HTML est un langage de balisage alors que XML n'est pas un langage de balisage mais un métalangage pour concevoir des langages de balisage?

    SGML et XHTML sont-ils tous deux également métalangage pour la conception d'un langage de balisage?

  5. Comme dans les deux liens, mentionnez que HTML est une application de SGML ainsi qu'un sous-ensemble de SGML, et XHTML est une application de XML. Je me demande quelles sont les différences entre dire qu'une langue est une application d'une autre et qu'une langue est un sous-ensemble d'une autre?
16
Tim

HTML et XML sont tous deux des langages de balisage (d'où le * ML). XML est un langage de balisage générique adapté pour représenter des données arbitraires, tandis que HTML est un langage de balisage spécifique adapté uniquement pour représenter des pages Web.

HTML et XHTML ne sont que des sous-ensembles de SGML, sauf que XHTML a des spécifications supplémentaires pour qu'il soit également validé en XML. Considérez XML comme le parrain influent de XHTML.

En raison de cette relation avec SGML dans les 3 langues, il existe de nombreuses similitudes, mais elles sont toutes considérées comme des langues différentes. Cependant, une grande partie de ce qui définit ces langages est leurs restrictions sur SGML.

  • HTML restreint SGML en définissant une liste de balises autorisées à être utilisées.
  • XML restreint SGML en n'autorisant pas les balises de début et de fin non fermées ou vides, et force les attributs à être explicites. XML a également un grand nombre de restrictions supplémentaires qui ne se trouvent pas dans SGML.
  • XHTML restreint SGML avec les balises de HTML (avec certaines exclusions, telles que frameset, et al), et avec les restrictions de balises et d'entités de XML.

Vous pouvez trouver ce document utile, bien que les termes techniques puissent être difficiles à digérer. http://www.w3.org/TR/NOTE-sgml-xml-971215

XML n'est pas un métalangage pour définir des langages de balisage. Vraiment, c'est juste SGML. XML est simplement un langage de balisage de mise en forme des données. Votre source citée utilise des termes techniques de manière imprécise, c'est pourquoi ils prêtent à confusion.

Objectifs

XML sert à définir votre propre format de données. Si vous souhaitez transmettre des données entre deux systèmes, XML est souvent le moyen de le faire.

Si, par exemple, vous deviez passer une commande client de votre site Web à votre système de facturation, vous pourriez créer cette charge utile XML:

<order id="12345">
    <name>John Doe</name>
    <item id="443">Adult Diapers</item>
</order>

Votre site Web enverrait ensuite ce XML à votre système de facturation, qui pourrait ensuite analyser les données de ce XML.

XHTML et HTML sont évidemment réservés aux pages Web. Le but principal de XHTML est de lever une grande partie de l'ambiguïté que nous avions au cours des années (décennies) précédentes de développement Web. À la fin des années 90, lorsque j'ai commencé, nous utilisions HTML 3.2 qui permettait un code très bâclé. HTML 4+ et XHTML tentent de remédier à cela en suggérant fortement ou en appliquant des balises de fermeture explicites, des attributs explicites et des balises interdites, ce qui facilite la tâche des navigateurs et des humains, et évite les différences de comportement inattendues entre les navigateurs.

8
Jordan

Je vais commencer par dire que XML est un sous-ensemble de SGML, puis XHTML est un sous-ensemble de XML.

HTML est basé sur SGML mais avec des règles différentes. XHTML est fondamentalement une version HTML mise à jour mais avec quelques règles, placez-le donc c'est aussi du XML correct.

Quelques notes sur le fonctionnement de la norme HTML 5 avec d'autres spécifications. http://dev.w3.org/html5/spec/Overview.html#compliance-with-other-specifications

Je ne suis pas sûr des différences entre SGML et XML ou quand vous utiliseriez l'un sur l'autre. Bien que XML semble être couramment utilisé.

Pour XHTML et HTML, il vaut probablement mieux utiliser toujours XHTML. Les erreurs sont plus faciles à trouver et en bonus, ce sera également du XML valide.

6
WalterJ89

L'histoire de ceux-ci pourrait vous éclairer ici. Parler simplement de méta-langues, de profils, de sous-ensembles et d'instances est un peu aride! Je vais essayer d'être bref et simple.

SGML a évolué à partir du GML (Generalized Markup Language) qui a été conçu par 3 ingénieurs IBM dans les années 1960 comme un moyen de stocker des documents juridiques, gouvernementaux, industriels et militaires élaborés. Le GML a été progressivement affiné jusqu'à ce qu'il soit normalisé en SGML en 1986.

GML/SGML n'est pas une langue en soi . C'est plutôt un méta-langage , c'est-à-dire un langage pour définir des langages conformes ou les "règles" selon lesquelles la mise en forme d'une variété de documents élaborés pourrait être conçue de manière généralement cohérente. Chaque type de document différent définirait donc son propre ensemble de noms de balises conformes à SGML ainsi que les attributs associés, ainsi que tout identificateur public formel défini/espace de noms, schémas, etc. Chaque format défini comme celui-ci devenait donc un langage de stockage de données distinct pour le document type concerné. En raison de la cohérence entre tous les documents conformes aux règles SGML, il est possible d'écrire du code pour assembler/traiter des données dans ces documents et transférer des données entre des documents partageant un format commun.

SGML a été trouvé trop élaboré pour le document nombreux mais de plus petite taille. XML a donc été développé entre 1996 et 2006 en tant que sous-ensemble (le profil Word efficacement signifie la même chose comme sous-ensemble) de SGML qui pourrait gérer à la fois les petits et les gros documents. Étant un sous-ensemble d'un méta-langage, XML est lui-même un méta-langage, bien que plus simple. On pourrait dire que XML fournit une base pour la conception de formats de documents adaptés à la fois au stockage et au transfert faciles entre les systèmes d'un réseau.

Après la normalisation de SGML mais avant sa simplification en XML, Internet est apparu et avec lui un besoin pour un format de document qui permette un transfert facile et l'affichage de à la fois des documents et des données en vrac. Le résultat était le langage HTML, une instance (parfois appelée application ) de SGML avec 18 balises prédéfinies offrant un moyen normalisé d'afficher une variété de types de données, par exemple texte, images, audio, etc. HTML exploité SGML permettant à certains éléments d'omettre les balises de début ou de fin. Les versions suivantes de HTML lui ont ajouté de nouvelles balises et de nouveaux attributs et ont rendu obsolètes certaines existantes. Jusqu'à HTML 5, des modifications ont été apportées à HTML afin qu'il reste toujours un langage enfant de SGML.

Après la normalisation de XML, une instance de celui-ci appelée XHTML est sortie qui combinait les noms de balises HTML existants avec la rigueur de XML sur la fermeture des balises, les espaces de noms, les schémas, etc. XHTML avait initialement la promesse d'être utile pour le stockage, le transfert et l'affichage des données. Il semblait être sur le point de remplacer HTML comme moyen le plus courant d'afficher du matériel Web - jusqu'à ce que HTML 5 soit sorti. HTML 5 avait certaines fonctionnalités syntaxiques qui allaient au-delà de celles définies dans SGML afin de fournir un affichage de données plus riche, en particulier pour les sites Web chargés de multimédia. Au fil du temps, des fonctionnalités supplémentaires ont été ajoutées à HTML 5 qui ont encore enrichi son utilisation pour l'affichage/l'utilisation des données au point qu'il est peu probable qu'il soit remplacé par de nouvelles versions XHTML, au moins en ce qui concerne l'affichage des données concernées. Bien que les normes pour HTML et XHTML soient élaborées par des groupes de travail du W3C, la propagation réelle de ces langages "sur le terrain" est effectuée par des concepteurs de sites Web progressifs et il n'y en a pas plus progressifs que ceux travaillant dans le secteur des médias (publicité/relations publiques/marketing): juste regardez la créativité des sites des agences de publicité par rapport aux autres sites. Ce secteur a vraiment pris le nouveau langage HTML 5, ravi d'exploiter ses capacités en SVG, audio, vidéo et les nouvelles API . Leur adoption immédiate de HTML 5 a rapidement conduit à sa popularité auprès des concepteurs de sites Web en général, un processus accéléré par l'échange en ligne de compétences et d'astuces sur YouTube et divers autres sites. Une version XHTML mise à jour, XHTML5, a vu le jour mais ce n'est pas vraiment un dérivé XML strict mais plutôt une version de HTML5 sérialisée en XML. Seule une petite proportion des sites semblent en avoir une quelconque utilité.

C'est l'histoire derrière ces langages de données. J'espère que cela vous aidera à distinguer le sens et le but de tous. D'un point de vue philosophique, cette histoire montre comment un outil habilitant essentiel (SGML) pour une nouvelle technologie (Internet) peut, dans le nouvel environnement aux exigences de plus en plus variées, dépasser ses limites d'origine tout en devenant conceptuellement plus simple, plus polyvalent et plus puissant.

2
Trunk

Généralement, dans le monde des normes, un "profil" d'une norme est une sélection d'options que la norme offre: par exemple, si la norme autorise le codage de documents en UTF-8 ou UTF-16, un profil de la norme peut nécessiter les encoder en UTF-8. Le terme "sous-ensemble" a une signification très similaire; mais sans doute le terme "profil" est un peu plus large.

1
Michael Kay