前回のnoteでは、文書の種類を分類する際に、その文書がDTDとスキーマのどちらを使用し準拠しているかに基づいて、整形式XMLと有効なXMLに区別していました。では、DTDとスキーマとは何でしょうか。 DTD とスキーマはどちらも XML ドキュメントを標準化し、XML ドキュメントにセマンティック制約を課すために使用されます。一方、DTD はシンプルで使いやすく、スキーマは強力です。このnoteでは、まずDTD(Document Type Definition、文書型定義)について学びます。
1. XMLドキュメントでDTDを使用する方法
インポート方法 | 構文形式 | 手順 |
内部DTD |
| DTD 定義を XML ドキュメント内の Behind の直後に配置します。 XML 宣言と処理命令 例: スト [
]>
|
<!DOCTYPE 根元素名[ 元素描述]>
| DTD をファイル内で個別に定義し、キーワード SYSTEM を使用して DTD をインポートします 例: スト SYSTEM "モデル リスト DTD ファイルの相対パスまたは絶対パス">
| |
<!DOCTYPE 根元素名 SYSTEM "外部DTD的URI">
| パブリック DTD、この DTD は通常、特定の業界または公共の使用のために権威ある組織によって指定され、キーワード PUBLIC を通してインポートされます 例: プリケーション 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
|
DTD document これは XML ドキュメントそのものではありませんが、XML の意味上の制約を定義するドキュメントです。 DTD ドキュメントの構文は非常に単純で、次の構造になっています:
(1) 最初の行は DTD ドキュメントの宣言です。構文は XML の宣言と同じです
( 2) 0 から複数のコメント部分、DTD コメントは XML コメントと同じ構文になります
(3) 0 から複数の 定義、それぞれ XML 要素を定義します
(4) 0 からその他の は XML 要素の属性を定義します
(5) 0 から複数の 定義、各
(6) 0 から複数の 定義、それぞれ シンボルを定義しますそのうち 4 つは 、、、 定義は互いに完全に独立しており、相互にネストする必要はありません。以下で 4 つの定義を 1 つずつ説明します。
3. 要素の定義
(1) ETD と呼ばれる要素タイプの定義
(2) 要素タイプ
要素タイプ
説明 | 任意のタイプ | |
要素は文字列、空の要素、またはサブ要素を含むことができます | 文字列値 | |
要素値 It文字列であり、空の要素ではなく、サブエレメントを含むこともできません。サブ要素間の順序やサブ要素の出現数などを詳細に定義する必要がある | 混合型 | |
指定できる値はいくつかの特定の型のみであり、どの型よりも強い制約がありますが、関数は可能な限り混合型を使用する必要があります | 。 | 混合型の定義に関するいくつかのポイント: |
B: #PCDATA と各サブ要素を区切るには縦棒 (|) のみを使用できます。カンマは使用しないでください | C を区切る: サブ要素の後に ?、*、+ などの周波数修飾を使用しないでください。 シンボル | (3) サブ要素を定義します |
サブ要素の構文を定義します | 説明 | サブ要素の周波数修飾子 |
(サブ要素 1、サブ要素 2、...)
順序付けされたサブ要素を定義するには英語のカンマを使用します
デフォルト (修飾子なし)
表示一度だけ
(サブ要素 1|サブ要素 2|...) | 垂直線を使用して相互に排他的な子要素を定義します | ? | は 0 回または 1 回発生します | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
((child要素 1、子要素 2) | (子要素 3、子要素 4)) | 子要素をグループ化するには括弧を使用します | + | が 1 回以上出現します | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(子要素 1|子要素 2|。 ..)+ | 縦棒の相互排他を使用し、頻度変更を使用して順序のない子要素を定義します | * | が 0 回以上出現します | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
类型 | 说明 |
CDATA | 该属性值只能是字符串数据 |
(en1|en2|en3) | 该属性值必须是一系列枚举值之一 |
ID | 该属性值必须是有些的标识符,且该属性值可用于标识该元素,因此必须在此XML文档中唯一 |
IDREF | 该属性值必须是引用另一个已有的ID类型的属性值 |
IDREFS | 该属性值必须是引用已有的一个或多个ID类型的属性值,多个ID类型的属性值之间使用空格分隔 |
NMTOKEN | 该属性值必须是合法的XML名称,必须是字符串数据,比CDATA约束更强,只能由字母、数字、下划线、中划线,点号和冒号组成 |
NMTOKENS | 该属性值必须是一个或多个NMTOKEN类型的属性值,多个使用空格分隔 |
ENTITY | 该属性值是一个外部实体,比如图片 |
ENTITIES | 该属性值是一个或多个ENTITY类型的属性值,多个使用空格分隔 |
NOTATION | 该属性值是在DTD中声明过的符号(NOTATION),这是个将要过期的规范,尽量避免使用 |
xml: | 该属性值是一个预定义的XML值 |
(2)元素对属性的约束与默认值的关系
元素对属性的约束 | 说明 | 默认值 |
未指定 | 必须指定默认值 | |
#REQUIRED | 必须的属性,必须为相应元素提供该属性 | 不能指定默认值 |
#IMPLIED | 该属性可有可无 | 不能指定默认值 |
#FIXED | 该属性值是固定的,定义时必须指定固定值 | 必须指定默认值 |
5、定义实体
实体引用就是用一个字符串代替另一个字符串,类似于C语言中的宏,上一篇笔记中已经提到过XML中内置的5个实体引用,在这里接着看看怎么自定义实体引用。
实体类型 | 使用场所 | 定义语法 | 使用语法 | 说明 |
普通实体 | XML | &实体名; | ||
参数实体 | DTD | %实体名; | 必须在使用前先定义 | |
外部实体 | XML | &实体名; | 这里外部文件必须是满足XML文档结构的文本文档 | |
公用外部实体 | XML | &实体名; | ||
外部参数实体 | DTD | %实体名; | ||
公用外部参数实体 | DTD | %实体名; | ||
未解析实体 | XML | 需要通过ENTITY等类型的属性调用 | 未解析实体不能由XML文档解析,而需要根据相应的符号名去解析 | |
公用未解析实体 | XML |
6、定义符号
定义符号也有两种语法格式,分别定义普通符号和公用符号:
符号类型 | 定义语法 |
普通符号 | |
公用符号 |
符号值通常有两种形式:
(1)MIME:通用MIME类型的文件总是由相应的程序负责处理
(2)外部程序所在路径:直接指定某个外部程序负责处理XML文档中的外部数据
符号通常有两种用途:
(1)如上,符号可以用来定义未解析实体
(2)符号可以作为ENTITY或ENTITIES类型的属性值
(3)符号还可以作为NOTATION类型的属性的值,定义NOTATION类型的属性时,语法如下:
<!ATTLIST 属性所属的元素 属性名 NOTATION (值1|值2|...) 约束 默认值>
比一般的属性定义多一个值的列表。

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

メニューで点線のラインセグメンテーション効果を設計する方法は?メニューを設計するときは、通常、皿の名前と価格の間に左右に合わせることは難しくありませんが、真ん中の点線またはポイントはどうですか...


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン
