TOP XML XML Schema Schema


Tutorials

書式

<!DOCTYPE ルート要素名[ 定義内容]><!DOCTYPE Products[<!ELEMNET Products(name, prise)><!ELEMNET name(#PCDATA)><!ELEMNET prise(#PCDATA)>]>ドキュメント内で定義
<!DOCTYPE ルート要素名 SYSTEM "システム識別子"><!DOCTYPE Products SYSTEM "product.dtd">外部ファイル参照
<!DOCTYPE ルート要素名 PUBLIC "公開識別子" "システム識別子"><!DOCTYPE html PUBLIC "-//W3C//DTD HTML4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">一般公開されている DTD を参照
<!DOCTYPE ルート要素名 外部DTDサブセット呼出 [ 内部DTDサブセット ] >内部サブセットと外部サブセットとのマージが行われる
要素宣言の重複は許されない
属性リスト宣言・実体参照宣言の重複は許される
重複があった場合は内部サブセットの内容が優先される

公開識別子の書式

標準化承認の有無//組織名//データ種類//言語コード
(注意)標準化承認の有無・・・標準化団体で承認されている場合は"+"、されていない場合は"-"

宣言

種類書式内容
要素型宣言<!ELEMENT ・・・>要素名や、出現パターン
属性リスト宣言<!ATTLIST ・・・>要素に含まれる属性名、属性の型、デフォルト値
実体宣言<!ENTITY ・・・>置換文字列や外部ファイルをXML文書から参照する場合に記述
記法宣言<!NOTATION ・・・>実体宣言で宣言している外部ファイルのうちXML 構文解析の対象としない外部ファイル(画像データファイルなど)を参照する場合、そのファイル形式について宣言

要素型宣言

<!ELEMENT 要素名 構成要素>

要素名

対象の要素の名前

構成要素

種類内容XML 例
(#PCDATA)文字データ<要素>文字データ</要素>
(子要素)子要素の順番および出現回数を指定<要素><子要素></子要素><子要素></子要素></要素>
(混合)子要素と文字データの子要素の順番および出現回数を指定<要素>文字データ<子要素></子要素><子要素></子要素></要素>
EMPTY空要素(子要素がない)<要素/>
ANY子要素と文字データ-
子要素の順番および出現回数の指定
タイプ内容モデル意味
接尾演算子A要素Aが1回だけ現れる
A+要素Aが1回以上出現する
A?要素Aが現れないか、1回出現
A*要素Aが現れないか、任意回数出現
接続演算子A | B要素Aもしくは要素Bのいずれか一方
A, B要素A及びBがこの順序で出現
A & B要素A及びBが任意の順序で出現
例外+(E)要素群(E)はその子孫にわたって出現して良い
-(E)要素群(E)はその子孫にわたって出現してはいけない
その他( ... )...で示す要素をグループ化する
EMPTY内容を持ってはならない
#PCDATA文字列

属性リスト宣言

<!ATTLIST 要素名 属性名 属性型 デフォルト値>
<!ATTLIST 要素名 属性名 属性型 デフォルト値
属性名 属性型 デフォルト値 ... 属性名 属性型 デフォルト値>

where
属性型型の種類
デフォルト値属性指定を省略時デフォルト値

DTD 内で重複して同じ属性リスト宣言を行った場合は先に宣言されているものが使用される。

属性型

分類種類内容
文字列型CDATA文字データ
トークン型ENTITY実体参照
ENTITIES空白区切りの実体参照
IDXML文書中で一意の値 デフォルト値は #REQUIRED か #IMPLIED を指定
IDREFID型の属性値を参照
IDREFS空白区切りのID型の属性値を参照
NMTOKEN一文字目が数字・ハイフン・ピリオドの文字列
NMTOKENS空白区切りのNMTOKEN 型文字列
列挙型属性の型にとりうる候補値(文字列)を区切りで列挙し、丸括弧()で括る(文字列は""等不要)

デフォルト値

種類内容
"文字列"文字列で指定
#IMPLIED属性が省略可能
#REQUIRED属性が必須
#FIXED "文字列"文字列指定

実体宣言

(書式)

<!ENTITY 実体名 "置換文字列">
<!ENTITY 実体名 SYSTEM "ファイルのURI">
<!ENTITY 実体名 PUBLIC "公開識別子名" "ファイルのURI">

ファイルのエンコーディング

外部ファイルには文字コードをテキスト宣言で指定
書式
<?xml version="バージョン" encoding="エンコード方式"?>
version 属性は省略可能
encoding 属性は必須
UTF-8,UTF-16 の場合は宣言は不要となる。

実体参照

&実体名;

パラメータ実体

DTDの内部で参照される実体

書式

<!ENTITY % 実体名 "置換文字列">
<!ENTITY % 実体名 SYSTEM "外部実体ファイルのURI">
<!ENTITY % 実体名 PUBLIC "公開識別子名" "外部実体ファイルのURI">

参照

%country;

解析対象外実体

管理人/副管理人のみ編集できます