Heim > Backend-Entwicklung > XML/RSS-Tutorial > Detaillierte Erklärung der DTD

Detaillierte Erklärung der DTD

黄舟
Freigeben: 2017-02-20 15:06:11
Original
2118 Leute haben es durchsucht

DTDDetaillierte Erklärung

Grundlegende Übersicht


Dokumenttypdefinition(Dokumenttypdefinition) ist eine Reihe grammatikalischer Regeln für Tags, die für den Datenaustausch zwischen Programmen festgelegt wurden. Es ist Teil der Standard Generalized Markup Language (SGML) und der Extensible Markup Language (XML) Version 1.0 und ist unter dokumentiert Eine Art DTD-Syntaxregel überprüft, ob das Format dieser Regel entspricht. Dokumenttypdefinitionen können auch verwendet werden, um die Rechtmäßigkeit von Standard-Dokumentformaten der universellen Auszeichnungssprache und der erweiterbaren Auszeichnungssprache sicherzustellen. Sie können Dokumente mit Dokumenttypdefinitionsdateien vergleichen, um zu überprüfen, ob das Dokument der Spezifikation entspricht und ob die Elemente und Tags korrekt verwendet werden . Dateiinstanzen stellen Anwendungen ein Format für den Datenaustausch zur Verfügung.

PS: Kurz gesagt, DTD wird verwendet, um XML einzuschränken Dokument, so dass es unter bestimmten Spezifikationen verwendet werden kann. was auch für eingeschränkte XML-Dokumente verwendet wird. Referenzdokument: DTD http://www.php.cn/Referenzdokument:

Schema

http://www.php.cn/

DTDSchema

PS

: eingeschränkt durch DTD,

XML kann unter den Einschränkungen von DTD angepasst werden, aber DTD hat einen Nachteil Es können den Daten keine Bereichsbeschränkungen wie numerische Beschränkungen auferlegt werden. DTDDeklaration und Referenz des DokumentsIntern

DTD

Dokument

Wurzelelement [

Definitionsinhalt

]>ExternDTDDokument

Wurzelelement SYSTEM "DTD

Dateipfad

">Interne und externe DTDDokumentenkombination

Root-Element SYSTEM "DTD

Dateipfad

" [Definitionsinhalt]>

Hinweis: 1

, Definitionsschlüsselwörter müssen großgeschrieben werden, zum Beispiel:

DOCTYPE

,

ELEMENT

, ATTLIST. 2, Wenn die referenzierte Datei lokal ist, wird die folgende Methode verwendet:

Dokumentstammknoten SYSTEM "DTDURL der Datei">

Zum Beispiel: bookshelf SYSTEM "book .dtd>

Wenn es sich bei der referenzierten Datei um eine öffentliche Datei handelt, wird die folgende Methode verwendet:

Dokumentstammknoten PUBLIC "DTDName" "DTD Datei URL">

Zum Beispiel: "-//Sun Microsystems, Inc.//DTD Web Anwendung 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

DTDElement

Grundlegende Syntax

 

Erklärung:

ELEMENT: Schlüsselwort (muss groß geschrieben werden).

NAME: Elementname.

INHALT: Es gibt vier Elementtypen, alle müssen großgeschrieben werden.

 1, EMPTY – Dieses Element kann keine Unterelemente und keinen Text enthalten, kann aber Attribute (leere Elemente) haben

2, ANY – Dieses Element kann alles in DTD Der in

3, #PCDATA definierte Elementinhalt kann beliebige Zeichendaten enthalten, darf diese jedoch nicht enthalten enthält alle untergeordneten Elemente

4, andere Typen (Kombination) , kann ein untergeordnetes Element, eine Kombination aus untergeordneten Elementen und Modifikatoren, ein Basiselement, eine Kombination aus untergeordneten Elementen und Modifikatoren sein.

Fall:

Klasse (Student+,Autor)>Student (Name,Alter,Einleitung)>< ;!ELEMENT

Autor (#PCDATA)>

Name (#PCDATA)>Alter (#PCDATA)>Einführung (#PCDATA)>

Modifikator


DTDAttribute

Grundlegende Syntax


Elementname

Attributname Typ Attributmerkmale

Attributname Typ Attributmerkmale......

>

Erklärung:

ATTLIST: Attributliste, ( muss groß geschrieben werden).

Elementname: der Name des entsprechenden Elements.

Attribut: Es können mehrere Attribute vorhanden sein und das Format ist Name Typ Attribut Merkmale

Typ:


PS: Häufig verwendete sind CDATA(Zeichentyp ), Aufzählung ( Aufzählungsformat ist (Wert1| Wert2|Wert3...)), ID(ID kann nicht wiederholt werden und darf nicht mit einer Zahl beginnen ), IDREF ( bezieht sich auf eine andere ID Wert), IDREFS( kann auf mehrere ID Werte, getrennt durch Leerzeichen )

Attributmerkmale sind:


Fall:

<!ELEMENT 班级 (学生+,作者)>
<!ATTLIST 班级
	班次 CDATA "1班"
	编号 ID #REQUIRED
>
<!ELEMENT 学生 (名字,年龄,介绍)>
<!ELEMENT 作者 (#PCDATA)>
<!ATTLIST 学生
	地址 CDATA #IMPLIED
	授课方式 CDATA #FIXED "面授"
	学号 ID #REQUIRED
	班级编号 IDREF #REQUIRED
	朋友 IDREFS #IMPLIED
>
<!ELEMENT 名字 (#PCDATA)>
<!ELEMENT 年龄 (#PCDATA)>
<!ELEMENT 介绍 (#PCDATA)>
Nach dem Login kopieren


Entität

Es gibt zwei Arten von Entitäten: Referenzentitäten und Parameterentitäten werden im Allgemeinen in

XML verwendet, und Parameterentitäten werden im Allgemeinen in DTD<🎜 verwendet > verwenden. Grundlegende Syntax

Entitätsname "Entitätsinhalt" > // Referenzentität

Entitätsname "Entitätsinhalt" > // ParameterentitätErklärung:

1

, die Referenzentität kann in

DTD 🎜 referenziert werden >XML-Datei, verwenden Sie &Entitätsname;, um Entitätsinhalte zu verwenden. 2 Ich weiß nicht, ob es an meinem Computer liegt. Sie können keine Referenzentitäten in externen

verwenden Wenn Sie es verwenden, geben Sie die Referenzentitätsdefinition ein. Es kann innerhalb von DTD verwendet werden. 3, Parameterentität wird in DTD

verwendet, verwenden Sie %Entitätsname;Verwenden Sie

4、可以将那些重复使用的值定义成实体,这样能减少代码的冗余度。

5、在外部DTD中,引用实体最好放在DTD底部,参数实体最好放在DTD顶部。

案例:

<!ENTITY % sex "男|女">
<!ELEMENT 班级 (学生+,作者)>
<!ELEMENT 学生 (名字,年龄,介绍)>
<!ELEMENT 作者 (#PCDATA)>
<!ATTLIST 学生
	性别 (%sex;) #REQUIRED
>
<!ELEMENT 名字 (#PCDATA)>
<!ELEMENT 年龄 (#PCDATA)>
<!ELEMENT 介绍 (#PCDATA)>
<!ENTITY writer "Switch">
Nach dem Login kopieren


综合案例1

XML3.dtd

<!ENTITY % sex "男|女">
<!ELEMENT 班级 (学生+,作者)>
<!ATTLIST 班级
	班次 CDATA "1班"
	编号 ID #REQUIRED
>
<!ELEMENT 学生 (名字,年龄,介绍)>
<!ELEMENT 作者 (#PCDATA)>
<!ATTLIST 学生
	地址 CDATA #IMPLIED
	授课方式 CDATA #FIXED "面授"
	学号 ID #REQUIRED
	班级编号 IDREF #REQUIRED
	朋友 IDREFS #IMPLIED
	性别 (%sex;) #REQUIRED
>
<!ELEMENT 名字 (#PCDATA)>
<!ELEMENT 年龄 (#PCDATA)>
<!ELEMENT 介绍 (#PCDATA)>
Nach dem Login kopieren


XML3.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- 引入DTD -->
<!DOCTYPE 班级 SYSTEM "XML3.dtd"
[<!ENTITY writer "Switch">]>
<班级 编号="C1" 班次="1班">
	<学生  地址="湖南" 授课方式="面授" 学号="n1" 班级编号="C1" 朋友="n2" 性别="男">
		<名字>张三</名字>
		<年龄>20</年龄>
		<介绍>不错</介绍>
	</学生>
	<学生 授课方式="面授" 学号="n2" 班级编号="C1" 朋友="n1 n3" 性别="女">
		<名字>李四</名字>
		<年龄>18</年龄>
		<介绍>很好</介绍>
	</学生>
	<学生 授课方式="面授" 学号="n3" 班级编号="C1" 朋友="n2" 性别="男">
		<名字>王五</名字>
		<年龄>22</年龄>
		<介绍>非常好</介绍>
	</学生>
	<作者>&writer;</作者>
</班级>
Nach dem Login kopieren


综合案例2

XML4.dtd

<!ENTITY AUTHOR "John Doe">
<!ENTITY COMPANY "JD Power Tools, Inc.">
<!ENTITY EMAIL "jd@jd-tools.com">

<!ELEMENT CATALOG (PRODUCT+)>

<!ELEMENT PRODUCT
(SPECIFICATIONS+,OPTIONS?,PRICE+,NOTES?)>
<!ATTLIST PRODUCT
NAME CDATA #IMPLIED
CATEGORY (HandTool|Table|Shop-Professional) "HandTool"
PARTNUM CDATA #IMPLIED
PLANT (Pittsburgh|Milwaukee|Chicago) "Chicago"
INVENTORY (InStock|Backordered|Discontinued) "InStock">

<!ELEMENT SPECIFICATIONS (#PCDATA)>
<!ATTLIST SPECIFICATIONS
WEIGHT CDATA #IMPLIED
POWER CDATA #IMPLIED>

<!ELEMENT OPTIONS (#PCDATA)>
<!ATTLIST OPTIONS
FINISH (Metal|Polished|Matte) "Matte" 
ADAPTER (Included|Optional|NotApplicable) "Included"
CASE (HardShell|Soft|NotApplicable) "HardShell">

<!ELEMENT PRICE (#PCDATA)>
<!ATTLIST PRICE
MSRP CDATA #IMPLIED
WHOLESALE CDATA #IMPLIED
STREET CDATA #IMPLIED
SHIPPING CDATA #IMPLIED>

<!ELEMENT NOTES (#PCDATA)>
Nach dem Login kopieren


XML4.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE CATALOG SYSTEM "XML4.dtd">
<CATALOG>
	<PRODUCT NAME="C&#39;estbon" CATEGORY="Shop-Professional" INVENTORY="Backordered" PARTNUM="10" PLANT="Chicago">
		<SPECIFICATIONS POWER="0" WEIGHT="555ml">SPECIFICATIONS</SPECIFICATIONS>
		<OPTIONS>OPTIONS</OPTIONS>
		<PRICE>2</PRICE>
		<NOTES>NOTES</NOTES>
	</PRODUCT>
</CATALOG>
Nach dem Login kopieren

 以上就是DTD详解的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Symbol

Zweck

Beispiel

Beispielbeschreibung

( )

wird zum Gruppieren von Elementen verwendet

(古龙|Jin Yong|Liang Yusheng),(Wang Shuo |Yu Jie)

In zwei Gruppen unterteilt

|

Wählen Sie eines der aufgelisteten Objekte

(Mann|Frau)

bedeutet, dass ein Mann oder eine Frau erscheinen muss und Sie nur einen auswählen können

+

Das Objekt erscheint mindestens einmal und kann mehrmals erscheinen (1 oder mehrmals)

(Mitglieder +)

bedeutet, dass Mitglieder muss erscheinen, und es können mehrere Mitglieder erscheinen Mitglieder

*

Dieses Objekt darf bis zu jeder Zahl als Null erscheinen von Malen (0 Bis mehrfach)

(Hobby*)

Hobby kann null bis mehrmals vorkommen

?

Dieses Objekt kann erscheinen, aber es kann nur einmal (0 bis 1mal)

(Rookie

?)

Der Rookie kann erscheinen oder nicht. Wenn es erscheint, kann es höchstens einmal erscheinen

,

Objekte müssen in der angegebenen Reihenfolge erscheinen

(Wassermelone

,Apfel,Banane)

bedeutet, dass Wassermelone, Apfel, Banane erscheinen müssen, und zwar in dieser Reihenfolge

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage