ホームページ > バックエンド開発 > XML/RSS チュートリアル > XML での DTD ドキュメント タイプ定義の詳細な紹介

XML での DTD ドキュメント タイプ定義の詳細な紹介

黄舟
リリース: 2017-03-10 19:32:35
オリジナル
2110 人が閲覧しました

この記事では主に XML の DTD 文書型定義を紹介します。これは、XML の入門学習のための基礎知識です。必要な友人は参照してください。一般に DTD として知られる XML 文書型定義は、XML 文書型定義を正確に記述する方法です。 XML 言語。 DTD は、適切な XML 言語の構文規則に照らして、XML ドキュメントの語彙と構造の有効性をチェックします。

XML DTD はドキュメント内で指定することも、別のドキュメントに保存して個別にリンクすることもできます。

構文

DTD の基本構文は次のとおりです:

<!DOCTYPE element DTD identifier   
[   
    declaration1   
    declaration2   
    ........   
]>
ログイン後にコピー

上記の構文では:

DTD は 要素は、指定されたルート要素からドキュメントの解析を開始するようにパーサーに指示するために使用されます。

DTD 識別子は、ドキュメント タイプの定義に使用される識別子です。システム内のファイルへのパス、またはインターネット上のファイルに接続されている URL を指定できます。 DTD が外部パスを指している場合、それは外部サブセットと呼ばれます。 _[] の内側には、内部サブセットと呼ばれるエンティティ宣言のオプションのリストがあります。 <br/><br/>内部 DTD<br/>要素が XML ドキュメント内で宣言されている場合、その DTD は内部 DTD と呼ばれます。これを内部 DTD として使用するには、XML 宣言のスタンドアロン属性を yes に設定する必要があります。これは、宣言された作品が外部ソースから独立していることを意味します。 <br/>

構文

内部 DTD 構文は次のとおりです:

<!DOCTYPE root-element [element-declarations]>
ログイン後にコピー

ここで、root-element はルート要素の名前であり、element-declarations は宣言する要素を表します。

ここに内部 DTD の簡単な例を示します:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>  
<!DOCTYPE address [   
<!ELEMENT address (name,company,phone)>  
    <!ELEMENT name (#PCDATA)>  
    <!ELEMENT company (#PCDATA)>  
    <!ELEMENT phone (#PCDATA)>  
]>  
<address>  
    <name>Tanmay Patil</name>  
    <company>TutorialsPoint</company>  
    <phone>(011) 123-4567</phone>  
</address>
ログイン後にコピー

上記のコードを見てみましょう:

宣言の開始 - 次のステートメントで XML 宣言を開始します:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
ログイン後にコピー

DTD - XML ヘッダーの後ろにある _Document Type Declaration_ は次のようになり、DOCTYPE と呼ばれることがよくあります:

DOCTYPE 宣言には要素名の先頭に感嘆符 (!) が含まれます。 DOCTYPE は、このドキュメントに関連付けられた DTD があることをパーサーに伝えます。

<br/>DTD 本文 - DOCTYPE 宣言の後には、要素、属性、エンティティ、シンボルを宣言する DTD 本文が続きます。

<!ELEMENT address (name,company,phone)>  
<!ELEMENT name (#PCDATA)>  
<!ELEMENT company (#PCDATA)>  
<!ELEMENT phone_no (#PCDATA)>
ログイン後にコピー

ここでは、 ドキュメント ボキャブラリーを介して多くの要素が宣言されます。 element_name_ を「#PCDATA」タイプとして定義します。ここで #PCDATA は解析可能なテキスト データを意味します。

終了宣言 - 最後に、DTD の宣言部分は角括弧と山括弧 (]>) を使用して閉じられます。これは有効な終了定義であり、その直後に XML ドキュメントのコンテンツが続きます。

ルール

文書型宣言は文書の先頭 (XML ヘッダーのある最初のみ) に出現する必要があり、文書内の他の場所に出現することは許可されません。

DOCTYPE 宣言と同様に、要素宣言は感嘆符で始める必要があります。

ドキュメント型宣言の名前は、ルート要素の型と一致する必要があります。 <br/><br/>外部 DTD<br/> 外部 DTD では、要素は XML ドキュメントの外部で宣言されます。システム属性を指定してアクセスします。システム属性は、有効な .dtd ファイルまたは有効な URL です。外部 DTD であることを示すには、XML 宣言のスタンドアロン属性を no に設定する必要があります。これは、ステートメントに外部ソースからの情報が含まれていることを意味します。 <br/>

構文

以下は外部 DTD の構文です:

<!DOCTYPE root-element SYSTEM "file-name">
ログイン後にコピー

ここでの file-name は .dtd 拡張子を持つファイルです。

<br/>例

次の例は、外部 DTD の使用法を示しています。

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>  
<!DOCTYPE address SYSTEM "address.dtd">  
<address>  
    <name>Tanmay Patil</name>  
    <company>TutorialsPoint</company>  
    <phone>(011) 123-4567</phone>  
</address>  
DTD 文件 address.dtd 的内容如下所示:   
  
<!ELEMENT address (name,company,phone)>  
<!ELEMENT name (#PCDATA)>  
<!ELEMENT company (#PCDATA)>  
<!ELEMENT phone (#PCDATA)>
ログイン後にコピー

Type

システム識別子またはパブリック識別子を使用して外部 DTD を参照できます。

システム識別子

システム識別子を使用すると、DTD 宣言を含む外部ファイルの場所を指定できます。構文は次のとおりです。

<!DOCTYPE name SYSTEM "address.dtd" [...]>
ログイン後にコピー

見てわかるように、SYSTEM キーワードとドキュメントの場所を指す URI 参照が含まれています。

パブリック識別子

パブリック識別子は、DTD リソースを見つけるためのメカニズムを提供します。これは次のように記述されます:

<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Address Example//EN">
ログイン後にコピー

ご覧のとおり、PUBLIC キーワードで始まり、その後に特殊な識別子が続きます。パブリック識別子は、ディレクトリ内のエントリを識別するために使用されます。公開識別子は任意の形式に従うことができますが、一般的に使用される形式は正式公開識別子 (FPI) です。

要素を宣言する

要素を dtd で宣言します (要素を有効にしたい場合は、dtd で宣言する必要があります) <br/> 構文: および これら 2 つのメソッド<br/><br/>例:

<!ELEMENT br EMPTY>
ログイン後にコピー

XML は次のように記述できます:

<br/>
ログイン後にコピー

注意点
在dtd中
所有的 XML 文档(以及 HTML 文档)均由以下简单的构建模块构成:
元素
属性
实体
PCDATA
CDATA
下面是一些注意点:
(1)实体是用来定义普通文本的变量。实体引用是对实体的引用。
大多数同学都了解这个 HTML 实体引用:" "。这个“无折行空格”实体在 HTML 中被用于在某个文档中插入一个额外的空格。
当文档被 XML 解析器解析时,实体就会被展开。
XML での DTD ドキュメント タイプ定義の詳細な紹介

(2) PCDATA
PCDATA 的意思是被解析的字符数据(parsed character data)。
可把字符数据想象为 XML 元素的开始标签与结束标签之间的文本。
PCDATA 是会被解析器解析的文本。这些文本将被解析器解析成实体以及标记。
文本中的标签会被当作标记来处理,而实体会被展开。
不过,被解析的字符数据不应当包含任何 &、< 或者 > 字符;需要使用 &、< 以及 > 实体来分别替换它们。
(3)CDATA
CDATA 的意思是字符数据(character data)。
CDATA 是不会被解析器解析的文本。在这些文本中的标签不会被当作标记来对待,其中的实体也不会被展开。

以上がXML での DTD ドキュメント タイプ定義の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート