Entwicklertools · HTML-Entity-Escaper
Warum das kaufmännische Und-Zeichen das Escape-Zeichen von HTML ist: die SGML-Wurzeln von Entitäten
· Hintergrund
html Kodierung Geschichte
HTML hat Entitätsreferenzen, das &-Trennzeichen und das Semikolon-Terminator von SGML geerbt. In diesem Beitrag wird erklärt, was eine „Entität“ in SGML bedeutet, warum & ausgewählt wurde und wie HTML die Syntax beibehielt, während die meisten Maschinen weggelassen wurden.
Ein Wort, das nicht ganz passt – warum „Entität“ ein seltsamer Name für ein Zeichen ist und welche SGML-Bedeutung dahinter steckt
Ein Wort, das nicht ganz passt – warum „Entität“ ein seltsamer Name für ein Zeichen ist und welche SGML-Bedeutung dahinter steckt. Das Wort „Entity“ klingt für ein Zeichen überdimensioniert, da die Syntax aus einem umfassenderen Dokumentmodellkonzept stammt. Bei aktuellen HTML-Arbeiten stoßen Entwickler meist nur auf Zeichenreferenzen.
Um den Referenzverlauf der SGML-Entität zu überprüfen, konstruieren Sie ein Wort, das für einen neugierigen Entwickler geeignet ist, der wissen möchte, woher < stammt. Behalten Sie nicht ganz bei, warum die Vererbung der Entitätssyntax zwar eine Entität erzeugt, aber seltsam ist. Identifizieren Sie, wo der Name eines Charakters verbraucht wird. Die Beobachtung und die SGML-Bedeutung betrifft nur HTML-Text.
Das Konzept der geerbten Entität im Überblick; ToolAcre selbst verwendet nur eine feste Zeichentabelle
Das Konzept der geerbten Entität im Überblick; ToolAcre selbst verwendet nur eine feste Zeichentabelle. Frühere verallgemeinerte Markup-Systeme konnten einen Namen mit deklariertem Text oder Daten verknüpfen und über ein kaufmännisches Und-Token darauf verweisen. Modernes HTML korrigiert stattdessen seinen erkannten Zeichennamensatz.
Ein neugieriger Entwickler, der wissen möchte, woher < stammt, kann das Konzept der geerbten Entität testen, indem er sich selbst vor der Vererbung der Entitätssyntax im Outline-Toolacre aufzeichnet. Vergleichen Sie anschließend nur einen festen Parser und suchen Sie den Parser, der für die Zeichenzuordnung verantwortlich ist. Dieses Ergebnis des SGML-Entitätsreferenzverlaufs erläutert Beweise für die Vererbung der Entitätssyntax, nicht ausführbare Kontexte.
Die Trennzeichen – & als Entitätsreferenz öffnen, ; als Referenzabschluss und &# für Zeichenreferenzen
Die Trennzeichen – & als Entitätsreferenz öffnen, ; als Referenzabschluss und &# für Zeichenreferenzen. Die sichtbaren Trennzeichen bleiben in der Implementierung klar: Das kaufmännische Und öffnet, das Semikolon schließt und ein folgendes Nummernzeichen führt die dezimale oder hexadezimale numerische Syntax ein.
Isolieren Sie die Trennzeichen in einem kurzen Beispiel für die Vererbung der Entitätssyntax. Zeigen Sie die geöffnete Entitätsreferenz als Literalquelle an, folgen Sie der Referenz bis zum Ziel und benennen Sie die API-Lesung für Zeichenreferenzen. Für den SGML-Entitätsreferenzverlauf bleiben die Vererbungsnachweise der Entitätssyntax Parser-gebundene Beweise.
Wie HTML die Syntax übernommen hat – den festen Satz von Zeichenentitäten und die Entscheidung, sie hart zu codieren
Wie HTML die Syntax übernommen hat – den festen Satz von Zeichenentitäten und die Entscheidung, sie hart zu codieren. ToolAcre programmiert seine eigene praktische Karte fest. Es liest weder Dokumenttypdeklarationen noch erweitert es vom Autor definierte Namen, externe Ressourcen oder Parameterentitäten.
Behandeln Sie, wie HTML das als Grenzexperiment entlehnt hat. Ein neugieriger Entwickler, der wissen möchte, woher < stammt, sollte die Syntax des festen Satzes beibehalten, eine Entitätssyntax-Vererbungsoperation durchführen und Zeichenentitäten und Zeichen für Zeichen prüfen, bevor er die Entscheidung auf „hart“ ändert. Die Behauptung über den Code hört auf dieser HTML-Ebene auf.
Was zurückblieb – allgemeine Entitäten, Parameterentitäten und DTD-gesteuerte Erweiterung und warum HTML5 sie fallen ließ
Was zurückblieb – allgemeine Entitäten, Parameterentitäten und DTD-gesteuerte Erweiterung, und warum HTML5 sie fallen ließ. Allgemeine Entitätserweiterung und DTD-Maschinerie fehlen absichtlich. Dadurch bleibt das Dienstprogramm eine begrenzte String-Transformation und vermeidet den Anspruch, einen vollständigen SGML-, XML- oder HTML-Parser zu implementieren.
Reproduzieren Sie das, was zurückblieb, mit harmlosem Input statt mit Kundenmaterial. Zeichnen Sie allgemeine Entitätsparameterentitäten auf, beobachten Sie die durch dtd gesteuerte Erweiterung und zählen Sie jeden absichtlichen Vererbungsdurchlauf der Entitätssyntax. Dieser SGML-Entitätsreferenzverlaufspfad ermöglicht es einem neugierigen Entwickler, der wissen möchte, woher < kam, auszuwerten und warum HTML5 gelöscht wurde, ohne zu raten.
Bearbeitetes Beispiel: Lesen einer Entitätsdeklaration aus der SGML-Ära und ihres HTML-Äquivalents – das gleiche © in zwei Welten
Bearbeitetes Beispiel: Lesen einer Entitätsdeklaration aus der SGML-Ära und ihres HTML-Äquivalents – das gleiche © in zwei Welten. Lesen Sie eine konzeptionelle Deklarationskopie, die © zuordnet, und vergleichen Sie dann die aktuelle Operation: © ist einfach eine Schlüsselsuche, die U+00A9 ergibt. Zur Laufzeit wird keine Deklaration konsultiert.
Platzieren Sie das Arbeitsbeispiel beim Lesen einer Entitätsdeklaration aus der SGML-Ära und ihres HTML-Äquivalents während der Überprüfung der Entitätssyntaxvererbung nebeneinander. Ein neugieriger Entwickler, der wissen möchte, woher < stammt, kann dann entscheiden, ob dieselbe Kopie bei der Konvertierung oder nachgelagert geändert wurde. Halten Sie die Schlussfolgerung des SGML-Entitätsreferenzverlaufs über zwei Welten aus generischen Sicherheitsansprüchen fern.
Was dies nicht abdeckt – die DTD-Entitätsbehandlung von XML und die Sicherheitsprobleme externer Entitäten
Was dies nicht abdeckt – die DTD-Entitätsbehandlung von XML und die Sicherheitsprobleme externer Entitäten. XML Das Verhalten externer Entitäten und seine Sicherheitsrisiken liegen außerhalb dieses Moduls, da keine DTD analysiert und keine Ressource abgerufen wird. Die Auslassung ist eine architektonische Eigenschaft und nicht hygienesicher.
Definieren Sie, was dies nicht bedeutet, bevor Sie die Entitätssyntaxvererbung ausführen. Speichern Sie cover xml s dtd als Steuerelement, überprüfen Sie die Codepunkte hinter der Entitätsbehandlung und dem und ordnen Sie externe Sicherheitsprobleme dem nächsten Interpreter zu. Dies macht Entitäten für einen neugierigen Entwickler überprüfbar, der wissen möchte, woher < stammt, indem er den Referenzverlauf der SGML-Entität untersucht.
Takeaway: Ein Dokumentstandard aus den 1980er Jahren ist der Grund, warum Sie & eingeben – wie der HTML-Entity-Escaper diese geerbte Syntax erzeugt und dekodiert
Takeaway: Ein Dokumentstandard aus den 1980er Jahren ist der Grund, warum Sie & eingeben – wie der HTML-Entity-Escaper diese geerbte Syntax erzeugt und dekodiert. Die geerbte Syntax erklärt, warum ein wörtliches kaufmännisches Und zu & werden muss. ToolAcre erstellt diese Referenz erstklassig, während der eigentliche Vorgang auf die Textkonvertierung beschränkt bleibt.
Verbinden Sie ein Dokument aus den 1980er Jahren mit einer beobachtbaren Entity-Syntax-Vererbungsausgabe. Behalten Sie den Standard bei, weshalb Sie neben dem One-Pass-Ergebnis überprüfen, wo Typ und wie der HTML-Entity-Escaper erzeugt. Ein neugieriger Entwickler, der wissen möchte, woher < stammt, kann nun das geerbte Ergebnis als schmale SGML-Entitätsreferenzhistorie überprüfen und dekodieren. Die praktische Entscheidung hinter diesem Artikel ist spezifisch: HTML erbte Entitätsreferenzen, das &-Trennzeichen und das Semikolon-Terminator von SGML. In diesem Beitrag wird erklärt, was eine „Entität“ in SGML bedeutet, warum & ausgewählt wurde und wie HTML die Syntax beibehielt, während die meisten Maschinen weggelassen wurden. Die Aktion des Lesers ist ebenso konkret: Verlinkt zum HTML-Entity-Escaper und demonstriert das Escapen eines kaufmännischen Und-Zeichens in &, der ältesten Form der Syntax.