So erstellen Sie eine Document Type Definition für XML-Datei

Average rating:

In diesem Artikel werden wir prüfen, wie man eine DTD. Um zu verstehen, XML (Extensible Markup Language) DTD-Dateien werden wir die Grundlagen von XML in dieser Einführung. Sie sind zu erwarten, dass ein grundlegendes Verständnis von XML für dieses How-to.

XML- Die Extensible Markup Language ist ein Text-basierten Cross-Plattform-Sprache, die können Sie zum Speichern von Daten (zB Adressen in einem Adressbuch) in einer strukturierten Art und Weise. Das XML-Dokument ist zu erwarten, dass korrekte Syntax. Deshalb, wenn Sie XML-Dokumente sollten sie gut gebildet. Ein gut gebildet Dokument ist wie folgt:

  • Geschlossen Tags (<hello> </ hallo> oder <hi />)
  • Ein Element des Attributs muss in Anführungszeichen (<candy price="0.50">)
  • XML ist Groß-und Kleinschreibung. Mit anderen Worten den Anfang und das Ende-Tag sollte den gleichen Fall

Ein sehr einfaches Beispiel für ein XML-Dokument ist unter einer Candy Store-Menü.

<candystore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<candy>
<productName company="XYZ"> Lutscher </ ProductName>
<id> 634847 </ id>
<price> 0,50 </ price>
</ Candy>
<candy>
<productName company="ABC"> Mints </ ProductName>
<id> 634812 </ id>
<price> 0,75 </ Preis>
</ Candy>
</ Zuckerbackerei>

Die erste Erklärung ist die Verarbeitungsanweisung. Es erzählt die Parser arbeiten wir mit einer bestimmten Version von XML. Der Rest des Dokuments besteht aus unserer-Tags und-Elemente. In dem obigen Beispiel das Element "name" ist ein Attribut der "Firma". Eine große Weise zu erinnern, ein Attribut ist zu denken, der es als eine Eigenschaft, die etwas haben kann. Ein Bonbon hat einen Namen. Der Name wird im Zusammenhang mit einer bestimmten Firma.

In unserem, wie wir zu gehen, um das obige Beispiel und erstellen Sie eine DTD für sie, die Regeln definieren, wie unser Element der Inhalt, oder in anderen Worten, müssen angegeben werden. (Zum Beispiel, in welchem Format wird erwartet, für unsere ID? Kann es Buchstaben?)

DTD (Document Type Definition) - Eine DTD, wie ein XML-Schema, Metadaten, die erklärt, weist eine besondere Art, unabhängig davon, ob es sich um einfache oder komplexe, auf die Elemente und ihre Attribute in ein XML-Dokument.

Step 1:

Werfen wir einen Blick wieder auf unserem Beispiel für die Candy Store.

<candystore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<candy>
<productName company="XYZ"> Lutscher </ ProductName>
<id> 634847 </ id>
<price> 0,50 </ price>
</ Candy>
<candy>
<productName company="ABC"> Mints </ ProductName>
<id> 634812 </ id>
<price> 0,75 </ Preis>
</ Candy>
</ Zuckerbackerei>

Unsere Zuckerbackerei Element hat zwei Candy-sub-Elemente. Jedes Element hat die Süßigkeiten Unterelemente des Namens, ID und Preis. Es hat auch ein Attribut namens Unternehmen. Beim Aufbau der Syntax-Regeln müssen wir definieren, Einschränkungen für das Format der Daten. Diese Beschränkungen können sich auf, wie die Daten verwendet werden. Wenn, zum Beispiel, unsere Süßigkeiten-ID muss sich auf ein Produkt der Rechnung innerhalb von 6 Zeichen, dann werden Sie feststellen, dass unsere Zwänge. Fragen Sie sich selbst ein paar Fragen zu Ihren Daten:

1. Ist die Daten müssen nur Ziffern oder Buchstaben?
2. Ist die Daten zu einer bestimmten Länge? Oder eine minimale oder maximale Länge mehr konkret?
3. Ist die Daten auf eine bestimmte Eigenschaft oder subelement festgelegt? Oder sind sie optional?

Nun, wir haben einige Ideen, welche Fragen können wir uns fragen, können wir vorankommen. Lassen Sie uns eine Reihe von Regeln, bevor wir beginnen, unsere XML-Schema-Code.

1. Der Name der Candy ist erforderlich.
2. Die Firma kann nicht mehr als 30 Zeichen lang sein. Es ist optional.
3. Die ID muss alle Ziffern und muss genau 6 Zeichen lang sein. Es ist nicht erforderlich.
4. Der Preis ist nicht erforderlich.

Step 2:

Mit unserer Liste der Regeln können wir nun unsere Document Type Definition. Lassen Sie uns die Grundlagen.

Die besten Gedanken in die Schaffung einer DTD ist es, von der Erstellung einer Tabelle in einer Datenbank. Wir wissen, was notwendig ist, aus Schritt 1 wie den Namen der Bonbons auf den Preis. Mit dieser Liste können wir unsere Elemente. Elemente in einer DTD-Datei ist wie folgt definiert:

<! ELEMENT elementname (Content-Type-oder Content-Modell)>

  • elementnamegibt den Namen des Elements
  • Content-type-oder Content-Modell gibt an, ob das Element enthält Text-Daten oder anderen Elementen

Unsere Elemente können eine von drei Arten: leer, frei, oder Container.

Leere Elemente ohne Inhalt (Name oder numerische Preis, etc.), und sie sind als <empty-element/>.

<! ELEMENT storemanager EMPTY>

UnrestrictedElemente sind natürlich das Gegenteil von dem leeren Element. Sie können jede Art von Element, erklärt irgendwo sonst in der DTD-Datei. Container-Elemente enthalten, Zeichen und anderen Elementen.

Bevor wir unsere Elemente angeben, müssen wir eingeführt, um einige Symbole in der DTD-Dateien:

  • ? - Das Element tritt auf Null oder eine Zeit.
  • - Dies kann verwendet werden, um mehrere Kinder.
  • | - Die PIP-Symbol wird als ODER-Anweisung. Dieser Wert oder Wert akzeptabel ist.
  • + - Es ist mindestens ein Ereignis.
  • * Das Element tritt auf-Null-oder mehrmals, ausgeübt werden.

<! ELEMENT ProductName (# PCDATA)>
<! ELEMENT Preis (# PCDATA)>
<! ELEMENT id (# PCDATA)>
<! ELEMENT Zuckerbackerei ((Candy +))>
<! ELEMENT Candy ((ProductName, id, Preis))>

Nach unserer Elemente haben wir den Text PCDATA. Dass im Grunde steht für Charakter-Daten. Unser Element Zuckerbackerei hat das Kind-Element von Süßigkeiten. Wir benutzen das "+"-Symbol, denn wir können mehr als eine. Das Element Candy hat das Kind Elemente ProductName, ID und Preis. Diese sind in Klammern nach Süßigkeiten. Einer unserer Elemente, ProductName, hat ein attribut. Wir haben zu erklären, dass auch.

<! ATTLIST elementname attributename valuetype [attributetype] [ "default"]>

Die attributename valuetype [attributetype] [ "default"]-Abschnitt wiederholt wird, so oft wie nötig, um mehrere Attribute für ein Element.

<! ATTLIST ProductName Unternehmen CDATA # REQUIRED>

Step 3:

Lassen Sie uns jetzt unsere DTD-Datei.

Zunächst in einer DTD-Datei benötigen wir eine Verarbeitungsanweisung.

<? xml version = "1.0" encoding = "UTF-8"?>

Als nächstes brauchen wir, um die ProductName Element und seine Attribute.

<! ELEMENT ProductName (# PCDATA)>
<! ATTLIST ProductName Unternehmen CDATA # REQUIRED>

Jetzt können wir unsere anderen Elemente:

<! ELEMENT Preis (# PCDATA)>
<! ELEMENT id (# PCDATA)>

Weiter ist unser Zuckerbackerei Container mit seinem Kind Element Candy:

<! ELEMENT Zuckerbackerei ((Candy +))>

Schließlich brauchen wir, um das Attribut der Zuckerbackerei. Das Attribut ist eigentlich ein, die dich aus. Aber denken Sie daran, dass XML erwartet Sie folgen syntax.Recall Zuckerbackerei Element der Zeile in der XML-Datei:

<candystore xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

Wir müssen festlegen, in unserem DTD als Attribut:

<! ATTLIST Zuckerbackerei
xmlns: xsi CDATA # FIXED "http://www.w3.org/2001/XMLSchema-instance"
>

Schließlich geben wir das Element mit seinen Kindern Süßigkeiten Attribute:

<! ELEMENT Candy ((ProductName, id, Preis))>

Step 4:

candystore.xml

<? xml version = "1.0" encoding = "UTF-8"?>
<! DOCTYPE Zuckerbackerei SYSTEM "candystore.dtd">
<candy>
<productName company="XYZ"> Lutscher </ ProductName>
<id> 634847 </ id>
<price> 0,50 </ price>
</ Candy>
<candy>
<productName company="ABC"> Mints </ ProductName>
<id> 634812 </ id>
<price> 0,75 </ Preis>
</ Candy>
</ Zuckerbackerei>

candystore.dtd

<? xml version = "1.0" encoding = "UTF-8"?>
<! ELEMENT ProductName (# PCDATA)>
<! ATTLIST ProductName Unternehmen CDATA # REQUIRED>
<! ELEMENT Preis (# PCDATA)>
<! ELEMENT id (# PCDATA)>
<! ELEMENT Zuckerbackerei ((Candy +))>
<! ATTLIST Zuckerbackerei
xmlns: xsi CDATA # FIXED "http://www.w3.org/2001/XMLSchema-instance"
>
<! ELEMENT Candy ((ProductName, id, Preis))>