XML-DTD-Module

DTD-Module sind besser als abstrakte Module definiert, wenn auch nicht ganz so flexibel. Weil sie die Syntax von XML 1.0 DTDs verwenden (wie sie in Artikel 6 beschrieben), DTD-Module verfügen über alle Funktionen und alle die Grenzen einer XML-DTD. XHTML 1.1 DTD-Module sind auch komplexer als die durchschnittliche XML-DTD, und eine Reihe von Namenskonventionen, dass nutzt Parameter Einheiten zu schaffen, um anpassbare Schilderungen von Strukturen. Parametrisierung ist extrem leistungsfähig, aber es hat etwas gewöhnungsbedürftig.

TippXHTML 1.1 DTD-Module sind sehr viel schwieriger, als viele XML-DTDs zu lesen. Wenn Sie nicht durchdringen können, die formale Beschreibung eines bestimmten Moduls, das abstrakte Modulsollen helfen. Wenn Sie eigene Module zu schreiben, ist es wichtig, dass Sie abstrakte Module beinhalten.

XREF Wenn Sie nicht viel mit Parameter-Entities getan, können Sie zurück nach Artikel 6 zu gehen und ihre Syntax und Verwendung anzeigen möchten. Die Regeln für die Erstellung von XHTML 1.1 's XML-DTD-Module werden in Abschnitt 5 der dargebotenen BuildingXHTML-Module Entwurf und in Abschnitt 6 gezeigt. Es gibt ein paar zusätzliche Konventionen inModularisierung von XHTML das Building XHTML-Module nicht beschreiben, die ich hier ebenfalls erfasst ist. Sie erscheinen sinnvoll und erklären helfen, einige der syntaktischen Verknüpfungen (wie etwa die gemeinsame Attribute) in abstrakt-Module verwendet werden.

Parametrierung bedeutet nur, indem alle Inhalte der Erklärungen in param eter-Einheiten. Dies macht die Erklärungen leichter zu verwalten, und zur gleichen Zeit macht es viel einfacher, diese zu ändern. Während Sie Attribut-Deklarationen und Parameter-Entities können, indem sie die Erklärung wieder ändern, verbietet XML mehrere Erklärungen für das Element-Typen. Indem wir den Inhalt dieser Erklärungen in die Parameter-Entities, die Entwickler von XHTML-Modulen kann viel mehr Flexibilität bieten. Lassen Sie uns Beispiele für jeden dieser Suffixe aus den W3C-Entwurf aufgenommen Blick DTD, Gebäude aus dem kleinsten Atom-Stücke zu den größten.

  

. DatentypDie Datentypen in XHTML 1.1 sind direkte Nachfahren der in XHTML 1.0, und sie werden in Abschnitt B.2.1 erklärt. Die meisten Datentypen sind einfach präzisere Namen für CDATA, inhaltliche Ausgestaltung:

 Diese Datentypen werden dann in Attribut Deklarationen verwendet werden: 

Alle diese Daten Typdeklarationen tatsächlich zu lösen CDATA, wenn ein XML-Prozessor die DTD liest, aber sie machen die Inhalte, die in diesen Attributen viel mehr identifizierbar gespeichert werden soll.

TippWährend XML 1.0-Prozessoren können nicht viel tun, um Daten eingeben heute zu erzwingen, sollte Schema-Prozessoren werden vollbringen mehr mit diesen Informationen in der Zukunft zu. Denken Sie an dieses Konzept, da Einfügen von Informationen in der DTD, so ist es für die nächste Version fertig. Diese Daten geben Sie Namen sind in der abstrakten Module für XHTML 1.1 als auch verwendet werden, zur Ergänzung der Kern-XML-Satz von 1,0 Arten.

. attribDie. Attrib-Suffix ist auf Parameter-Entities verwendet, die einen oder mehrere stellen Attributspezifikationen - Der Teil eines Attributs Liste Erklärung, dass einzelne Attribute, deren Typen Standardwerte definiert, und die möglichen Werte. Diese Einrichtungen beschreiben, manchmal nur ein Attribut, davon eine für das id-Attribut:

 Sie können mehrere Attribute angeben, wie diese für xml: lang und dir: 

Diese Einrichtungen können auch andere Organisationen, die mit der. Attrib-Suffix, wie in der allgegenwärtigen Common.attrib Einheit:

 

Diese enthält alle nur das Attribut angegebenen Spezifikationen in der Core.attrib, I18n.attrib und Events.attrib Unternehmen, der Aufbau einer großen Liste von gemeinsamen Komponenten. Die Anführungszeichen müssen genutzt werden, auch wenn der gesamte Inhalt des Unternehmens in Parameter-Entities enthalten sind.

. ATTLISTDie. ATTLIST Suffix (nicht dokumentiert in Building XHTML-Module) Ist in der XHTML-DTDs verwendet 1,1 bis ATTLIST Erklärungen ein-und ausschalten. Einrichtungen, die die Parameter. ATTLIST Suffix treffen haben einen von zwei Werten: INCLUDE oder IGNORE. Diese Funktion mit einer Funktion von XML 1.0 DTDs nicht in XHTML 1.0 verwendet: bedingte Abschnitte.

TippFür eine viel genauere Erklärung des bedingten Abschnitten und ihre Verwendung in anderen Kontexten XML, siehe Artikel 16 der XML-Elements of Style von Simon St. Laurent (McGraw-Hill, 2000). Bedingte Abschnitte können in DTDs werden nur angezeigt, sie Designer DTD ermöglichen, setzt der Meldungen ein-und auszuschalten. Durch die Verwendung von Parameter-Entities zu bestimmen, ob ein-oder ignorieren einen Abschnitt, Entwickler machen es möglich, Teile einer DTD benutzen oder sogar zwischen den verschiedenen Variationen eines einzigen DTD wählen. Zum Beispiel enthält dieser DTD-Fragment die Attribute für das Element title type:

 ]]>

Die erste Zeile erstellt eine Person namens Title.attlist Parameter, dessen Wert INCLUDE. In der nächsten Zeile, ist das Unternehmen mit% Title.attlist ersetzt; diese resultierende Erklärungen zu erstellen:

 ]]> Ein XML-Parser-Streifen aus der INCLUDE-Abschnitt und dem Kommentar, so dass ein Kern:  Welche ist dann:  und schließlich: 

Wenn auf der anderen Seite, redeclares ein weiteres Modul der Title.attlist Einrichtung zu ignorieren:

 dann ist das Ergebnis:  ]]>
, die der Parser bei der Verarbeitung der Meldungen auf allen untersagt, so dass Titel ohne Attribute. Einheiten mit. ATTLIST Suffix Surround das Attribut Liste Erklärungen für jedes Element geben Sie denModularisierung von XHTML Entwurf.
  

. InhaltDie. Inhalt Suffix Funktionen für Parameter-Entities, die beschreiben, Content-Modelle für bestimmte Element-Typen. Das einfachste Beispiel für eine leere Content-Modell sieht wie folgt aus:

 Bei der Weiterverarbeitung wird, löst dies: 
und definiert die input-Element als mit einem leeren Inhalt Modell. Von redeclaring Organisationen, die mit ein. Inhalt Suffix, andere Module leicht lassen sich die Content-Modell eines Elements ändern. 

. Klasse (und. extra)Die. Klasse Suffix Funktionen für Parameter-Entities, die immer wieder in Content-Modelle für mehrere Elemente verwendet werden können, aber nur, wenn der Inhalt Elementtyp Namen, die alle etwas gemeinsam. In XHTML, neigt das bedeuten, dass Block-Elemente einer Klasse sind, während die Inline-Elemente einer anderen Klasse sind. Diese Einrichtungen sind nicht definiert (mit einer Ausnahme stellte weiter) in der Modularisierung vonXHTML Entwurf. Sie sind in der Anpassung Datei, ein anderes Modul, in Anhang C der definierten XHTML 1.1 --Modul-basierte XHTML. Zum Beispiel:

Durch die Abkürzungen können Sie sehen, dass diese strukturellen Element-Typen, die als Inline-Elemente auftauchen können. br ist für Zeilenumbrüche innerhalb von Block-Elementen verwendet, während die Spanne ist ein abstraktes Element vor allem nützlich für die Abgrenzung Inline-Inhalt in einer Weise, die nicht durch andere Inline-Inhalt zum Ausdruck kommen. Diese Unternehmen und einige seiner Geschwister erhalten, in eine größere Einheit Inline.class kombiniert:

 

Ein Kuriosum ist hier Inline.extra -- Building XHTML-Module beschreibt keine "offizielle" Konvention für. extra. Inline.extra hat folgende Erklärung ab:

Die DTD Kommentare beschreiben, wie Sie diese verwenden. Zusätzlichen Suffix: Während in einigen Fällen kann dieses Modul müssen umgeschrieben werden, um Änderungen an dem Dokument Modell anzupassen, kann geringfügige Erweiterungen von redeclaring einer der drei *. extra zu bewerkstelligen ist; werden Parameter-Entities enthalten extension-Element-Typen wie folgt:% Misc.extra, deren Muttergesellschaft kann jede Block-oder Inline-Element.% Inline.extra; deren Muttergesellschaft können alle Inline-Element.% Block.extra; deren Muttergesellschaft kann jede Block-Element. Bei Verwendung diese Parameter-Entities muss eine OR-getrennte Liste beginnend mit einem oder Separator ("|"), zB. "| a | b | c" While. extra ist undokumentiert (bisher) in Building XHTML-ModuleEs ist ein kritisches Stück für Entwickler, die eigene Erweiterungen auf XHTML 1.1 hinzufügen möchten. Die. Suffix-Klasse funktioniert auch in den zumindest ein Platz für Attribute. Die folgenden Unternehmen gehören alle Arten der Eingabe:

 

Diese Anomalie leitet sich wahrscheinlich von den ungewöhnlichen Einsatz der Eingabe des Elements eine Eigenschaft, die "echte" Inhalte bedeuten.

. MixDie. Suffix-Mix erstellt Listen von Elementen für den Einsatz in Content-Modelle, in denen verschiedene Arten von Produkten kombiniert zu erhalten. Die Flow.mix Unternehmen (auch aus der Anpassung der Datei XHTML 1.1 - Modul-basierteXHTML) Ist ein gutes Beispiel:

 
Jedes Element, Flow.mix in ihrem Inhalt Modell verwendet, umfassen kann nur über ein Element in der XHTML-Vokabular. It's definitely a combination.
  

. modParameter-Entities, die auf. Mod montieren komplette DTDs aus all dieser kleinen Teile umfassen XHTML. XHTML 1.1 's-Treiber-Datei (als Anhang B des XHTML 1.1 - Modul-basierteXHTML) Enthält viele dieser Einrichtungen.

 % xhtml-form.mod;

In diesem Fall ist die Einheit unter Verwendung einer öffentlichen Kennung und ein System teil. Wenn die Anwendung oder Verarbeitung dieser Parser versteht die öffentliche Kennung, können sie diese Informationen benutzen, um auch die DTD. Wenn nicht, können es die relative URL, um die Datei abzurufen folgt. Nach der Erklärung, wird der Inhalt der Datei sofort in der DTD enthalten.

. ModulParameter-Entities diesem Zweck in-Modul. Wiederum die Unternehmen, die auf. Mod-und Ausschalten mit dem gleichen bedingte Anweisungen (INCLUDE und IGNORE) that. ATTLIST Einrichtungen zu nutzen. Zum Beispiel, in der Regel die Form XHTML-Modul wird, da dieser Code geladen:

 % xhtml-form.mod;]]>

Wenn Sie das Formular-Modul geladen behalten wollen, alles, was Sie tun müssen, ist eine neue xhtmlform definieren. Modul-Einheit vor, dass ein und überschreibt es mit einem Wert von IGNORE:

 ...  % xhtml-form.mod;]]> Das Ergebnis ist folgendes:  % xhtml-form.mod;]]>

Das Modul wird nicht geladen. Beachten Sie die Namenskonvention hier - sowohl die Auftraggeber (. Mod und. Modul) den gleichen Namen haben, außer für die Endung. Das macht die DTDs viel leichter zu handhaben.

Schema-ModuleXHTML 1.1 wird XML-Schemas verwenden, wenn sie bereit sind. Der Modularisierung von XHTML Entwurf der Anlage A fest: "Dieser Anhang Implementierung der Module in XHTML Abstract Module über XML-Schema definiert enthalten [XMLSCHEMA], wenn das XML-Schema wird eine W3C-Empfehlung gebilligt." Die Building XHTML-Module Entwurf nicht festlegen, wie Schema-Module zu bauen. Das aktuelle Schema Entwürfe nicht verwenden Mechanismen, die direkt entsprechen Parameter-Entities, aber ähnliche Ansätze können möglicherweise mit allgemeinen Entities (weil Schemata sind XML-Dokumente selbst) und die Erweiterung und Beschränkung Mechanismen der XML-Schemas.

Ein Artikel eingereicht von Albert Lichtblau


Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle.
Wichtig: Dieser Artikel "XML-DTD-Module" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.


Online: 196 users browsing the articles directory   


  

|