Beziehung und Unterschiede zwischen SGML, XML, HTML und XHTML

16
  1. Ich habe mich gefragt, was "Profil" in Wikipedia bedeutet :

    XML ist ein Profil eines ISO-Standards SGML, und der größte Teil von XML stammt unverändert aus SGML.

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

    HTML ist eine Teilmenge von SGML.

    XML ist eine hochfunktionale Untermenge von SGML.

    XHTML erweitert und setzt HTML unter.

    Bedeutet "eine Untergruppe einer anderen", dass der Code in der ersten auch syntaktisch korrekt und semantisch derselbe ist wie in der zweiten?

    Wie im Sinne der Elementarsatztheorie

    • Sind HTML, XML und XHTML verschiedene Untergruppen von SGML?
    • Überschneiden sich XML und HTML fast nicht?
    • Ist XHTML eine Obermenge von XML und HTML?
  3. Kann ich eine präzisere und klarere Zusammenfassung der Unterschiede in den Zwecken der vier und / oder wann welche zu verwenden sind als der obige Link? Ich bin wirklich verwirrt über die klare Grenze zwischen den beabsichtigten Zwecken.
  4. Laut http://xml-tips.assistprogramming.com/sgml-xml-html-xhtml-all-together.html :

    XML ist keine einzelne Auszeichnungssprache. Es ist eine Metasprache, Benutzer ihre eigene Auszeichnungssprache entwerfen zu lassen.

    Ich habe mich gefragt, wie man versteht, dass XML und HTML Teilmengen von SGML sind, aber HTML eine Auszeichnungssprache ist, während XML keine Auszeichnungssprache, sondern eine Metasprache für das Entwerfen von Auszeichnungssprachen ist.

    Sind SGML und XHTML auch Metasprachen für das Entwerfen von Markup-Sprachen?

  5. Wie in beiden Links erwähnt, ist HTML eine Anwendung von SGML sowie eine Teilmenge von SGML, und XHTML ist eine Anwendung von XML. Ich frage mich, worin die Unterschiede bestehen, wenn man sagt, dass eine Sprache eine Anwendung einer anderen ist und eine Sprache eine Teilmenge einer anderen?
Tim
quelle

Antworten:

8

HTML und XML sind beide Auszeichnungssprachen (daher die * ML). XML ist eine generische Auszeichnungssprache, die zur Darstellung beliebiger Daten geeignet ist, während HTML eine spezifische Auszeichnungssprache ist, die nur zur Darstellung von Webseiten geeignet ist.

HTML und XHTML sind beide nur Teilmengen von SGML, mit der Ausnahme, dass XHTML zusätzliche Spezifikationen hat, sodass es auch als XML validiert wird. Stellen Sie sich XML als den einflussreichen Paten von XHTML vor.

Aufgrund dieser Beziehung zu SGML in allen drei dieser Sprachen gibt es viele Ähnlichkeiten, aber alle werden als unterschiedliche Sprachen betrachtet. Was diese Sprachen jedoch in hohem Maße definiert, sind ihre Einschränkungen für SGML.

  • HTML schränkt SGML ein, indem eine Liste von Tags definiert wird, die verwendet werden dürfen.
  • XML schränkt SGML dadurch ein, dass nicht geschlossene oder leere Start- und End-Tags nicht zugelassen werden, und erzwingt die explizite Angabe von Attributen. XML weist außerdem eine Vielzahl zusätzlicher Einschränkungen auf, die in SGML nicht vorhanden sind.
  • XHTML schränkt SGML mit den Tags aus HTML (mit einigen Ausschlüssen, z. B. Frameset usw.) und mit den Tag- und Entitätsbeschränkungen aus XML ein.

Sie finden dieses Dokument möglicherweise hilfreich, obwohl die Fachbegriffe möglicherweise schwer zu verdauen sind. http://www.w3.org/TR/NOTE-sgml-xml-971215

XML ist keine Metasprache zum Definieren von Markup-Sprachen. Wirklich, das ist nur SGML. XML ist einfach eine Datenformatierungs-Auszeichnungssprache. Ihre zitierte Quelle verwendet technische Begriffe ungenau, weshalb sie verwirrend sind.

Zwecke

XML dient zum Definieren Ihres eigenen Datenformats. Wenn Sie Daten zwischen zwei Systemen übertragen möchten, ist XML häufig die richtige Methode.

Wenn Sie beispielsweise einen Kundenauftrag von Ihrer Website an Ihr Abrechnungssystem übergeben müssen, können Sie folgende XML-Nutzdaten erstellen:

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

Ihre Website sendet dann diese XML-Datei an Ihr Abrechnungssystem, das dann die Daten aus dieser XML-Datei analysieren kann.

XHTML und HTML sind offensichtlich nur für Webseiten gedacht. Der Hauptzweck von XHTML ist es, die Unklarheiten zu beseitigen, die wir in früheren Jahren (Jahrzehnten) der Webentwicklung hatten. In den späten 90ern, als ich anfing, verwendeten wir HTML 3.2, was ernsthaften schlampigen Code erlaubte. HTML 4+ und XHTML versuchen, dies zu beheben, indem explizite schließende Tags, explizite Attribute und nicht zugelassene Tags entweder dringend empfohlen oder erzwungen werden, was sowohl für den Browser als auch für den Menschen einfacher ist und unerwartete Unterschiede im Verhalten von Browser zu Browser vermeidet.

Jordan
quelle
Vielen Dank! (1) Sind sowohl HTML- als auch XML-Teilmengen von XHTML? (2) Ist es richtig, dass weder HTML eine Teilmenge von XML noch XML eine Teilmenge von HTML ist? Haben HTML und XML eine nicht leere Schnittmenge oder sind sie vollständig voneinander getrennt?
Tim
(3) Welche Unterschiede gibt es zwischen der Aussage, dass eine Sprache eine Anwendung einer anderen ist und eine Sprache eine Teilmenge einer anderen?
Tim
Es gibt Dokumente, die sowohl mit XML als auch mit HTML kompatibel sind. Es gibt Dokumente, die mit XML und nicht mit HTML übereinstimmen, und es gibt Dokumente, die mit HTML und nicht mit XML übereinstimmen. Also ist keiner von beiden eine Teilmenge des anderen, aber sie haben eine nicht leere Schnittmenge.
Michael Kay
@Tim: (1) HTML, XML und XHTML sind nur Teilmengen von SGML. Sie sind alle verschieden. XML hat eigentlich fast nichts mit HTML oder XHTML zu tun ... es dient einem anderen Zweck. XHTML kann sowohl als HTML als auch als XML analysiert werden, wird jedoch nur von Browsern als HTML-Markup verwendet. HTML und XML haben beide einen gemeinsamen Vorfahren von SGML, sind aber ansonsten nicht miteinander verbunden. Für jede Absicht sind sie getrennt, weil SGML so allgemein ist.
Jordanien
Ehrlich gesagt denke ich, dass Sie zu tief in die Terminologie mit Anwendung vs Teilmenge eintauchen. Ich glaube nicht, dass es einen Unterschied zwischen diesen Begriffen gibt, oder ich bezweifle, dass dies weitgehend vereinbart ist. Es genügt zu sagen, dass XHTML Konzepte aus XML entlehnt und als strikte Teilmenge von HTML verwendet wird. HTML stand an erster Stelle. XHTML kam danach.
Jordanien
6

Ich beginne damit, dass XML eine Teilmenge von SGML ist, dann ist XHTML eine Teilmenge von XML.

HTML basiert auf SGML, aber mit einigen anderen Regeln. XHTML ist im Grunde eine aktualisierte HTML-Version, die jedoch nach einigen Regeln platziert wird, sodass es auch korrektes XML ist.

Einige Hinweise zur Funktionsweise des HTML 5-Standards mit anderen Spezifikationen. http://dev.w3.org/html5/spec/Overview.html#compliance-with-other-specifications

Ich bin mir nicht sicher, welche Unterschiede zwischen SGML und XML bestehen oder wann Sie einen über den anderen verwenden würden. Obwohl XML häufig verwendet wird.

Für XHTML und HTML ist es wahrscheinlich besser, immer XHTML zu verwenden. Fehler sind leichter zu finden und als Bonus wird es auch gültiges XML sein.

WalterJ89
quelle
Vielen Dank! (1) Ich habe mich gefragt, wie ich die beiden scheinbar widersprüchlichen Fakten verstehen soll: XML und HTML sind beide Teilmengen von SGML, und HTML ist eine Auszeichnungssprache, während XML keine Auszeichnungssprache, sondern eine Metasprache für das Entwerfen von Auszeichnungssprachen ist. (2) Ihrer Antwort zufolge ist XHTML eine Teilmenge von XML. XHTML ist eine Obermenge von HTML als "XHTML-Untermenge von HTML", die aus einem Link in meinem Beitrag zitiert wird. HTML ist also eine Teilmenge von XML? Ich bin mir nicht sicher, ob es wahr ist.
Tim
HTML bricht zu viele Regeln, um XML zu sein. HTML ist SGML näher, glaube ich. HTML ist lose mit Tags und es gibt eine festgelegte Anzahl verschiedener Tag-Typen. XHTML nur die XML-Version von HTML.
WalterJ89
Vielen Dank! Wie in beiden Links erwähnt, ist HTML eine Anwendung von SGML sowie eine Teilmenge von SGML, und XHTML ist eine Anwendung von XML. Ich frage mich, worin die Unterschiede bestehen, wenn man sagt, dass eine Sprache eine Anwendung einer anderen ist und eine Sprache eine Teilmenge einer anderen?
Tim
2

Die Geschichte dieser könnte Sie hier aufklären. Nur über Metasprachen, Profile, Teilmengen und Instanzen zu sprechen, ist ein bisschen trocken! Ich werde versuchen, es kurz und einfach zu halten.

SGML wurde aus GML (Generalized Markup Language) entwickelt, das von drei IBM-Ingenieuren in den 1960er-Jahren entwickelt wurde, um aufwändige juristische, behördliche, industrielle und militärische Dokumente zu speichern. GML wurde schrittweise weiterentwickelt, bis es 1986 als SGML standardisiert wurde.

GML / SGML ist keine Sprache an sich . Es ist eher eine Metasprache , dh eine Sprache, um übereinstimmende Sprachen oder die "Regeln" zu definieren, nach denen die Formatierung einer Vielzahl von ausführlichen Dokumenten allgemein konsistent gestaltet werden kann. Jeder unterschiedliche Dokumenttyp definiert daher einen eigenen SGML-konformen Satz von Tag-Namen und zugehörigen Attributen sowie alle definierten formalen öffentlichen Bezeichner / Namespaces, Schemata usw. Jedes so definierte Format wurde daher zu einer eigenen Datenspeichersprache für das Dokument Art betroffen. Aufgrund der Konsistenz zwischen allen Dokumenten, die den SGML-Regeln entsprechen, ist es möglich, Code zu schreiben, um Daten in diesen Dokumenten zu sammeln / zu verarbeiten und Daten zwischen Dokumenten zu übertragen, die ein gemeinsames Format haben.

SGML wurde für das zahlreiche, aber kleinere Dokument als überaus aufwändig befunden. So XML zwischen 1996 und 2006 als entwickelte Teilmenge (das Wort Profil effektiv bedeutet das gleiche wie Subset) von SGML , die sowohl kleine als auch große Dokumente verarbeiten konnte. Als Teilmenge einer Metasprache ist XML selbst eine Metasprache, wenn auch eine einfachere. Man könnte sagen, dass XML eine Grundlage für das Entwerfen von Dokumentformaten bietet, die sich sowohl für die einfache Speicherung als auch für die Übertragung zwischen Systemen in einem Netzwerk eignen.

Nach der Standardisierung von SGML, aber bevor es zu XML vereinfacht wurde, entstand das Internet und damit die Notwendigkeit eines Dokumentenformats, das eine einfache Übertragung und Anzeige sowohl von Dokumenten als auch von losen Daten ermöglichte. Das Ergebnis war die HTML-Sprache, eine Instanz (gelegentlich als Anwendung bezeichnet ) von SGML mit 18 vordefinierten Tags, die eine standardisierte Möglichkeit zur Anzeige einer Vielzahl von Datentypen, z. B. Text, Bilder, Audio usw., bietet Einige Elemente zum Weglassen von Start- oder End-Tags. Nachfolgende Versionen von HTML fügten neue Tags und Attribute hinzu und machten einige vorhandene überflüssig. Bis zu HTML 5 wurden Änderungen an HTML vorgenommen, sodass es immer eine untergeordnete Sprache von SGML blieb.

Nach der Standardisierung von XML wurde eine Instanz namens XHTML veröffentlicht, die die vorhandenen HTML-Tag-Namen mit den strengen Vorgaben von XML zum Schließen von Tags, zu Namespaces, Schemata usw. kombinierte. XHTML versprach zunächst, für das Speichern, Übertragen und Anzeigen von Daten nützlich zu sein. Es schien im Begriff zu sein, HTML als häufigste Methode zum Anzeigen von Webmaterial zu ersetzen - bis HTML 5 herauskam. HTML 5 verfügte über einige syntaktische Funktionen, die über die in SGML definierten hinausgingen, um eine umfassendere Datenanzeige zu ermöglichen, insbesondere für multimediale Websites. Im Laufe der Zeit wurden zusätzliche Funktionen zu HTML 5 hinzugefügt, die die Verwendung für die Datenanzeige / -nutzung noch weiter bereicherten, sodass es zumindest in Bezug auf die Anzeige der betreffenden Daten unwahrscheinlich ist, dass sie jemals durch neue XHTML-Versionen ersetzt werden. Obwohl Standards für HTML und XHTML von W3C-Arbeitsgruppen erstellt werden, Die tatsächliche Verbreitung dieser Sprachen "vor Ort" erfolgt durch fortschrittliche Webdesigner und es gibt keine fortschrittlichere als die im Mediensektor (Werbung / PR / Marketing) tätigen: Sehen Sie sich nur die Kreativität der Websites von Werbeagenturen im Vergleich zu anderen Websites an. Dieser Sektor hat sich sehr für die neue HTML 5-Sprache interessiert und freut sich über die Nutzung seiner Kapazitäten für SVG, Audio, Video unddie neuen APIs . Die sofortige Einführung von HTML 5 führte schnell zu seiner Popularität bei Webdesignern im Allgemeinen, einem Prozess, der durch den Online-Austausch von Fähigkeiten und Tricks auf YouTube und verschiedenen anderen Websites beschleunigt wurde. Eine aktualisierte XHTML-Version, XHTML5, ist auf den Markt gekommen, aber es handelt sich nicht wirklich um ein striktes XML-Derivat, sondern um eine Version von HTML5, die XML-serialisiert ist. Nur ein kleiner Teil der Websites scheint eine Verwendung dafür zu haben.

Das ist die Geschichte hinter diesen Datensprachen. Ich hoffe, es hilft Ihnen, die Bedeutung und den Zweck von allen zu unterscheiden. Philosophisch zeigt diese Geschichte, wie ein essentielles Enabling Tool (SGML) für eine neue Technologie (Internet) in einem neuen Umfeld mit zunehmend unterschiedlichen Anforderungen aus seinen ursprünglichen Grenzen herauswachsen und gleichzeitig konzeptionell einfacher, anwendbarer, vielseitiger und effektiver werden kann.

Kofferraum
quelle
1

Im Allgemeinen ist ein "Profil" eines Standards in der Welt der Standards eine Auswahl von Optionen, die der Standard bietet: Wenn der Standard beispielsweise die Kodierung von Dokumenten in UTF-8 oder UTF-16 zulässt, kann ein Profil des Standards dies erfordern Sie müssen in UTF-8 codiert werden. Der Begriff "Teilmenge" hat eine sehr ähnliche Bedeutung; obwohl der Begriff "Profil" wohl etwas weiter gefasst ist.

Michael Kay
quelle
Vielen Dank! (1) Was ist mit der Bedeutung und dem Unterschied zwischen "Anwendung", "Teilmenge" und "Profil", wie in Teil 5 meiner Fragen? (2) Bedeutet XHTML in "XHTML ist die Basis für eine Familie zukünftiger Dokumenttypen, die HTML erweitern und unterteilen", dass XHTML eine Teilmenge von HTML oder HTML eine Teilmenge von XHTML ist?
Tim