DTDの詳しい説明

黄舟
黄舟オリジナル
2017-02-20 15:06:112071ブラウズ

DTD 文法規則の詳細な説明。これは、標準一般化マークアップ言語

(SGML) および拡張マークアップ言語

(XML) バージョン 1.0

仕様の一部であり、ドキュメントを特定の DTD

構文規則に照らして検証して、形式が正しいかどうかを確認できます。このルールに準拠しています。ドキュメント タイプ定義は、標準のユニバーサル マークアップ言語および拡張マークアップ言語のドキュメント形式の合法性を確認するためにも使用できます。ドキュメントをドキュメント タイプ定義ファイルと比較して、ドキュメントが仕様に準拠しているかどうか、および要素とタグが正しく使用されているかどうかを確認できます。 。ファイル インスタンスは、アプリケーションにデータを交換するための形式を提供します。


PS

: つまり、

DTDは、XMLドキュメントを特定の仕様の下で使用できるように制約するために使用されます。DTDテクノロジーに加えて、もあります。 Schema テクノロジーは、

XML

ドキュメントを制約するためにも使用されます。 参考ドキュメント: DTD http://www.php.cn/参考ドキュメント: スキーマhttp://www.php.cn/ DTD概略図

PS: DTD

の制約を通じて、

XML

DTDの制約の下で処理できます

カスタマイズされていますが、

DTD 数値制約などの範囲制約をデータに適用できないという欠点があります。

DTDドキュメントの宣言と参照内部DTDDocument6890e4c087486c4b7460677d7b89ede0内部および外部DTD

ドキュメントの組み合わせ

66c39ba32bb527f471c0c725cf6c1fd5注:

1、定義キーワードは大文字である必要があります化されました。例: DOCTYPEELEMENT

ATTLIST

2

参照ファイルがローカルの場合、次のメソッドが使用されます:

43fdae3c863bec173838ed4ff63e52bb

参照されるファイルがパブリックファイルの場合、次のメソッドが使用されます:

bb2ed72b1c23d314d7e2ba37491f5924

DTDElement

基本構文

: ELEMENT: キーワード(

は大文字にする必要があります

)

)NAME: 要素名。

内容

: 要素には 4 種類あり、すべて大文字にする必要があります。

1

EMPTY

- この要素には子要素とテキストを含めることはできませんが、属性(空の要素)を持つことができます 2

ANY

- この要素には何でも含めることができますin DTD 3

#PCDATA

で定義された要素コンテンツ - 任意の文字データを含めることができますが、サブ要素 4、その他のタイプ を含めることはできません

(

組み合わせ)は、子要素、子要素と修飾子の組み合わせ、基本要素と子要素と修飾子の組み合わせにすることができます。 ケース:

59d20904d308c2e06d7da15e37dbc81a6fb8b84202c307d3f6b389d1f2794a8b1c11c17305a0d6c0efd792acfff3e32d

848f931dcd13fba5904350743708f078

b52e06600e37249555fc74476daedd4b

修飾子

シンボル

はメンバーが必ず出現することを意味し、複数のメンバーが出現することができますこのオブジェクトは、0 回から任意の回数 (ホビー缶0 回から何度も出現します オブジェクトは 1 回だけ出現します1 ルーキーは出現してもしなくても構いません。出現する場合は最大 1 回のみ出現できます (スイカ

使用

例の説明

( )

要素をグループ化するために使用されます

(古龙|ジンヨン| Liang Yusheng)(王朔|Yu Jie)

は2つのグループに分けられます

|

リストされたオブジェクトから 1 つ選択してください

(man|woman)

男性または女性が現れなければならないことを意味し、1つのオブジェクトのみを選択できます少なくとも 1 回、出現可能 複数回 (1 回

または複数回)

(メンバー

+
)

*

0

から複数回) 出現することができます

(趣味

*
)

?

(0

から

)

(rooki)え? )

,

オブジェクトは指定された順序で出現する必要があります

リンゴ

バナナ)

は、スイカ、リンゴ、バナナがこの順序で出現することを意味します


DTD属性

基本構文


739f9a69ee2454b8c356f2e5cc0a4d16

説明:

ATTLIST: 属性リスト (大文字にする必要があります)。

要素名: 対応する要素の名前。

属性: 複数の属性が存在でき、形式は名前タイプ属性特性です

タイプ:


PS: 一般的に使用されるものは CDATA( キャラクタータイプ )、列挙 (列挙形式は (1|2|3...)) ID( IDは繰り返したり、数字で始めることはできません)IDREF(は別のIDを参照します)IDREFS(は複数を参照できます) スペースで区切られた ID )

属性の特性は次のとおりです:


ケース: reee


Entity

エンティティには参照エンティティがあります参照エンティティとパラメータ エンティティの 2 種類があります。参照エンティティは通常

XML で使用され、パラメータ エンティティは通常 DTD で使用されます。

基本構文

c3be33727de7d123743f60954d319c97 参照エンティティ

b837a54ac5319f6d168705e4c9e7f0b3

// パラメータ エンティティ説明:

1

。参照エンティティは、

&エンティティ名を使用して、DTDを参照するXMLファイルで使用できます。 ; エンティティ コンテンツを使用します。 2

、私のパソコンのせいなのか分かりませんが、内部

DTDに参照エンティティ定義を置くと、参照エンティティが外部DTDで使用できなくなります。使用できます。 3

、パラメータエンティティは

DTDで使用されます。%エンティティ名を使用します。

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


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:XML の入門次の記事:XML の入門