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

Detaillierte Erklärung der DTD

黄舟
黄舟Original
2017-02-20 15:06:112105Durchsuche

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

6484d0945c9b66c0fcac4492ffd7d90fExternDTDDokument

05646a9a9c7fde7634098f63258d6032Interne und externe DTDDokumentenkombination

94af83d901bf92defb8e22593a1bacca

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:

0f6b7d0023a761674259e14055d7a24a

Zum Beispiel: bbef4f3a87d3623c91b43fb834d92e26

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

184b196c42c2677dc06a9d6fd7e58f6d

Zum Beispiel: 57249699bc56bd707925dee2688d4828

DTDElement

Grundlegende Syntax

 8a200477f44ef1072bb1d4a0c7920261

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:

cc09fadbeef220c68dd8b6705dbe05e42f71e860cdcf0574c8a44c3be28a4828< ;!ELEMENT

Autor (#PCDATA)>

927134306a801c6a7ab0c1c90a5afc7ab74c5a82f4fee348ad84363ebabfb81a7c618561e3653c4e3432d7c80e6d168d

Modifikator


DTDAttribute

Grundlegende Syntax


460e0162688d92f07fb704ca24f4bd8e

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)>


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 verwenden. Grundlegende Syntax

57d135defe99af7c0f46fff1f5c4aa72 // Referenzentität

d4480924d938705f4336f17e88c963cd // 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">


综合案例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)>


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;</作者>
</班级>


综合案例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)>


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>

 以上就是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

Stellungnahme:
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
Vorheriger Artikel:Erste Schritte mit XMLNächster Artikel:Erste Schritte mit XML