検索

DTDの詳しい説明

Feb 20, 2017 pm 03:06 PM

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ドキュメントの宣言と参照内部DTDDocumentspan style="font-family:Calibri">ルート要素[]定義内容

]>

外部DTD

Document

p>ルート要素SYSTEM "DTDファイルパス">内部および外部DTD

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

ルート要素 SYSTEM "DTDファイルパス" [定義内容

]>

注:

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

ATTLIST

2

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

span style="font-family:宋体">ドキュメントルートノードSYSTEM "DTDファイルのURL">

例: /span>Bookshelf システム」 book.dtd">

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

span style="font-family:宋体">Document Root Node PUBLIC "DTDName " "DTD ファイルのURL">

例: /span> "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

DTDElement

基本構文

: ELEMENT: キーワード(

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

)

)NAME: 要素名。

内容

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

1

EMPTY

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

ANY

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

#PCDATA

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

(

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

クラス

(

学生+,著者)>生徒(

名前) ,年齢,紹介)>作者(#PCDATA)>

名前 (#PCDATA)>

年齢(#PCDATA)>

紹介(#PCDATA)>

修飾子

シンボル

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

使用

例の説明

( )

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

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

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

|

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

(man|woman)

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

または複数回)

(メンバー

+
)

*

0

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

(趣味

*
)

?

(0

から

)

(rooki)え? )

,

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

リンゴ

バナナ)

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


DTD属性

基本構文


要素名

トリビュート名 タイプ属性の特徴

属性名 タイプ属性の特徴… ...

>

説明:

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

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

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

タイプ:


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

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


ケース: reee


Entity

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

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

基本構文

エンティティ名"エンティティの内容" > 参照エンティティ

エンティティ名" エンティティコンテンツ " > // パラメータ エンティティ説明:

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から読み取り可能なコンテンツまで:RSSフィードを分類しますXMLから読み取り可能なコンテンツまで:RSSフィードを分類しますApr 11, 2025 am 12:03 AM

rssfeedsarexmldocumentsusedforcontentaggregationanddistribution.totransformthemintoreadablecontent:1)parsethexmlusinglibrarieslibrarieslibrarieslibrarieslibrarieslibrarieslibrarieslibraries.2)heandlederentrssiversions andpotentialparsingerrors.3)変換された拡張型拡張型のfienderidederidrederidederidederidedionderiondiontiontiontiontiontiontiontiontional

JSONに基づいたRSSの代替品はありますか?JSONに基づいたRSSの代替品はありますか?Apr 10, 2025 am 09:31 AM

JSonFeedは、JSONベースのRSSの代替品であり、その利点のシンプルさと使いやすさがあります。 1)JSonFeedはJSON形式を使用しますが、これは簡単に生成して解析できます。 2)動的生成をサポートし、最新のWeb開発に適しています。 3)JSonFeedを使用すると、コンテンツ管理の効率とユーザーエクスペリエンスが向上する可能性があります。

RSSドキュメントツール:フィードの構築、検証、公開RSSドキュメントツール:フィードの構築、検証、公開Apr 09, 2025 am 12:10 AM

RSSFeedsを構築、検証、公開する方法は? 1。ビルド:Pythonスクリプトを使用して、タイトル、リンク、説明、リリース日など、RSSFeedを生成します。 2。検証:FeedValidator.orgまたはPythonスクリプトを使用して、RSSFeedがRSS2.0標準に準拠しているかどうかを確認します。 3.公開:RSSファイルをサーバーにアップロードするか、フラスコを使用してRSSFeedを動的に生成および公開します。これらの手順を通じて、コンテンツを効果的に管理および共有できます。

XML/RSSフィードのセキュリティ:包括的なセキュリティチェックリストXML/RSSフィードのセキュリティ:包括的なセキュリティチェックリストApr 08, 2025 am 12:06 AM

XML/RSSFeedsのセキュリティを確保する方法には、次のものが含まれます。1。データ検証、2。暗号化された伝送、3。アクセス制御、4。ログと監視。これらの測定値は、ネットワークセキュリティプロトコル、データ暗号化アルゴリズム、アクセス制御メカニズムを介して、データの整合性と機密性を保護します。

XML/RSSインタビューの質問と回答:専門知識をレベルアップしますXML/RSSインタビューの質問と回答:専門知識をレベルアップしますApr 07, 2025 am 12:19 AM

XMLはデータの保存と転送に使用されるマークアップ言語であり、RSSは頻繁に更新されるコンテンツを公開するために使用されるXMLベースの形式です。 1)XMLはタグと属性を介してデータ構造を記述します。2)RSSは特定のタグの公開と購読コンテンツを定義します。3)XMLは、PythonのXML.ETREE.ELEMENTTREEモジュールを使用して作成および解析できます。 XMLLINT、7)SAXパーサーで大規模なXMLファイルを処理することで検証できます。パフォーマンスを最適化できます。

高度なXML/RSSチュートリアル:次の技術インタビューを促進します高度なXML/RSSチュートリアル:次の技術インタビューを促進しますApr 06, 2025 am 12:12 AM

XMLはデータストレージと交換用のマークアップ言語であり、RSSは更新されたコンテンツを公開するためのXMLベースの形式です。 1。XMLは、データ交換とストレージに適したデータ構造を定義します。 2.RSSはコンテンツサブスクリプションに使用され、解析時に特別なライブラリを使用します。 3. XMLを解析するときは、DOMまたはSAXを使用できます。 XMLおよびRSSを生成する場合、要素と属性を正しく設定する必要があります。

XML/RSSからJSONまで:最新のデータ変換戦略XML/RSSからJSONまで:最新のデータ変換戦略Apr 05, 2025 am 12:08 AM

Pythonを使用して、XML/RSSからJSONに変換します。 1)解析データ、2)フィールドを抽出する、3)JSONに変換、4)出力JSON。 XML.Etree.ElementTreeおよびFeedParserライブラリを使用してXML/RSSを解析し、JSONライブラリを使用してJSONデータを生成します。

XML/RSSおよびREST API:現代のWeb開発のためのベストプラクティスXML/RSSおよびREST API:現代のWeb開発のためのベストプラクティスApr 04, 2025 am 12:08 AM

XML/RSSとRESTAPIは、最新のネットワーク開発で協力します。1)XML/RSSは、コンテンツの公開と購読に使用され、2)Restapiはネットワークサービスの設計と運用に使用されます。これら2つを使用すると、効率的なコンテンツ管理と動的な更新を実現できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。