公式公開識別子(FPI)は、特定の構造を持つ短いテキストで、製品、仕様、または文書を一意に識別するために使用できます。FPIは、Standard Generalized Markup Language(SGML)の一部として導入され、歴史的にはSGMLから派生した形式(HTMLおよびXML)において特定の目的を果たします。最も一般的な用途としては、 SGML、XML、そして歴史的にはHTMLにおける文書型宣言(DOCTYPE)および文書型定義(DTD)の一部として使用されますが、vCardおよびiCalendarファイル形式では、ファイルを生成したソフトウェア製品を識別するためにも使用されます。
最近では、オブジェクトを一意に識別するために、 Uniform Resource Identifiers(URI)とUniversally Unique Identifiers(UUID)が一般的に使用されています。FPIはレガシーシステムとなっています。
構文
FPIは、所有者識別子、それに続く二重スラッシュ(//)、そしてテキスト識別子で構成されます。[ 1 ]:381–382 たとえば、識別子「 」は、FPIの発行者を示す所有者識別子と、 FPIが識別する特定の文書またはオブジェクトを示すテキスト識別子-//W3C//DTD HTML 4.01//ENの2つの部分に分けることができます。 [ 2 ]例では、所有者識別子は「 」で、テキスト識別子は「」です。 -//W3CDTD HTML 4.01//EN
テキスト識別子自体は複数の構成要素から構成されます。[ 1 ] :385 空白の連続は1つのスペースと同等に扱われます。[ 1 ] :381–382
所有者識別子
所有者識別子には3種類あり、最初の3文字で区別され、ISO所有者識別子ISO、未登録所有者識別子、登録所有者識別子である。[ 1 ]:383–384 -//+//
ISO所有者識別子
ISO所有者識別子は、のようなISOISO 8879:1986発行番号、またはISO-IR-111のようなISO-IR登録番号のいずれかです。後者はFPI(後述)にのみ許可されます。いずれの場合も、 、 の文字で始まることで区別され、それらの文字の前にプレフィックスを付ける必要はありません。[ 1 ] : 383–384 ISO Registration Number 111CHARSETISO
以前は年と標準番号をハイフンで区切っていましたが(-例ISO 8879-1986:)、[ 3 ]この使用は現在では推奨されていません。[ 4 ]代わりに、現在は部品番号と標準番号を区切るためにハイフンが使用されています[ 2 ](以前は/この目的で単一のスラッシュ( )を使用していました)[ 5 ]年は部品番号がある場合はその後ろに続き、コロン( )で区切られます:。[ 2 ]
未登録の所有者識別子
未登録の所有者識別子は で始まります-//。[ 1 ] : 384–385 未登録の識別子を使用する所有者としては、W3C ( -//W3C)、[ 6 ] : 8–9 インターネット技術タスクフォース( -//IETF)、[ 7 ]米国国防総省( -//USA-DOD)、[ 8 ]欧州議会( -//EP) [ 9 ]などがあります。未登録であるため、一意であることが保証されません (別の所有者が同じ所有者識別子を選択する可能性があります)。そのため、FPI 全体の一意性の保証は弱まりますが、同じ所有者を持つ他のすべての FPI および登録済みの所有者を持つすべての FPI と区別できることは保証されます。[ 1 ] : 186
登録所有者識別子
登録所有者識別子はという文字で始まります。これはISO 9070+//で規定されている登録識別子を指します。[ 1 ] : 384 実際に登録されている部分は という登録所有者プレフィックスで、に続きます。また、オプションで、例えば組織内の部門を識別する、所有者が割り当てた1つ以上の部分が続く場合があります。[ 1 ] : 184 登録プレフィックスに加えて所有者名コンポーネントを使用する場合は、プレフィックスとペアで区切られます。[ 2 ] [ 10 ] : 63 +//::
ISO 9070に準拠した登録所有者接頭辞は次のいずれかになります。[ 2 ]
- ISO規格の権威接頭辞。ISOまたはISO/IEC規格の識別子。[ 2 ]
+//これらのFPIは前述のように先頭に'\'を付ける必要はないが、 [ 1 ]:184、383-384、 特にIEC規格でもあるISO規格をFPIで参照する際に、このような接頭辞が使用されることが時々見られる。[ 10 ]:318-319 - ISO登録機関のプレフィックス。次のようなものがあります。
- 完全な登録機関のプレフィックス(ISO規格の識別子から年を除いたもので、
/RA大文字と小文字は区別されません)[ 2 ] - ISO 2375のプレフィックス(文字列
ISO Registration Numberとスペースの後にISO-IR番号が続く[ 2 ]が、前述のように、+//この場合は省略できます)。[ 1 ]:383–384 - ISBNプレフィックス(文字列
ISBN、スペース、ISBN)[ 2 ] [ 10 ] : 321–325 は、ISO 9070 [ 1 ] : 184, 384 の後の改正で受け入れられるようになった。 - 最近では、登録ドメイン名(
IDNとスペース)も許可されています。[ 11 ] [ 12 ]たとえば、の所有者は、example.net所有者識別子「+//IDN example.net」を使用してFPIを発行できます。
- 完全な登録機関のプレフィックス(ISO規格の識別子から年を除いたもので、
- ISO会員団体の接頭辞。つまり、ISOの会員である標準化団体の識別子。[ 2 ] [ 1 ] : 184, 384
- ISOで識別される組織権限の接頭辞
ICD:スペースを入れずにISO 6523組織コードが続く文字列。[ 2 ] [ 1 ]:184
テキスト識別子
テキスト識別子は、クラス、説明、言語に分解できます。例では-//W3C//DTD HTML 4.01//EN、クラスは「DTD」で、FPIが文書型定義を表すことを示しています。説明は「HTML 4.01」、言語は「EN」で、文書型定義が英語で書かれていることを示しています(ただし、DTDに準拠する文書は英語である必要はありません)。[ 6 ] : 7 クラスと説明はスペース文字で区切られ、説明と言語は二重スラッシュで区切られています。テキスト識別子には、オプションで、言語の後にバージョンインジケータを含めることができ、これも二重スラッシュで区切られます。
クラス
テキスト識別子は//所有者識別子の直後に続き、次のブロック大文字の単語のいずれかで始まり、スペースが続くことでパブリックテキストクラスを指定します:[ 1 ] : 385–387
CAPACITYCHARSETDOCUMENTDTDELEMENTSENTITIESLPDNONSGMLNOTATIONSD[ 13 ]SHORTREFSUBDOCSYNTAXTEXT
DOCUMENT、SGML文書またはSGML文書のフラグメントを参照します。SUBDOC[ 1 ] : 386 クラスのものは、テキストエンティティを使用して参照されることを意図しています(エンティティタイプのキーワードなし、つまり文書に直接挿入されます)。一方、クラスのものは、サブドキュメントエンティティを使用して参照されることを意図しています(エンティティ宣言でキーワードを使用、つまり独自の個別のスキーマ、名前空間などで解釈されます)。[ 1 ] : 294–296、400–401 クラスのものは、囲んでいる文書からエンティティとして参照されることを意図していません。 TEXTTEXTSUBDOCSUBDOCDOCUMENT
CAPACITYおよび は、SYNTAXSGML宣言の一部を参照します。SD(SGML宣言全体)は、後に標準に付属書として追加された拡張機能によってこのリストに追加されました。この付属書では、XMLに必要な特定の拡張機能も指定されています。[ 13 ]LPDは、SGMLリンクプロセス定義(あるSGML形式から別のSGML形式への変換を定義)を参照します。ELEMENTS、ENTITIESおよび は、特定の種類のマークアップ宣言で構成される文書型定義(DTD)SHORTREFの一部を参照します。は、DTD全体を参照します。 DTD
残りの3つはSGMLの外部の概念を参照します。コード化文字セットCHARSET、ファイル形式などの形式(外部ファイルからのエンティティへの参照用、または要素内に含まれるテキスト形式の解釈用)、[ 1 ] : 336–337 、およびSGML以外の形式の資産を参照します。 NOTATIONNONSGML
在庫状況マーカーと説明
テキストクラス名の後のスペースの後に、-//FPI が利用できない公開テキスト[ 1 ] : 385 (つまり、一般の人がアクセスまたは購入できない文書、ファイル、または仕様) を参照している場合は、シーケンスが続きます。[ 1 ] : 182 公開テキストの説明はこのマーカーの後に続きます。利用可能な公開テキストの場合、説明はテキストクラス名の後のスペースの直後に続きます。[ 1 ] : 385 ISO 出版物の場合、説明は出版物のタイトルの最後の要素から取得され、部品番号はカウントされません。それ以外の場合は、許可された文字の適切に一意の文字列にすることができます。[ 1 ] : 387 説明は別の//ペアで終了します。[ 1 ] : 385
ISO 2022 指定順序
FPIの記述に続く部分はテキストクラスに依存する。FPIの場合CHARSET、それは公開テキスト指定シーケンスであり、[ 1 ] : 385 は ISO/IEC 2022指定エスケープシーケンスを列/行表記法でテキスト表現したもの(例ESC 2/8 4/0)である。登録指定エスケープは指定されたISO所有者識別子と一致することが期待されるが、私的使用指定エスケープはFPI所有者識別子によって名前空間化される。[ 1 ] : 389–390 このタイプのFPIの例として、FPIはHTML 4のSGML宣言ISO Registration Number 177//CHARSET ISO/IEC 10646-1:1993 UCS-4 with implementation level 3//ESC 2/5 2/15 4/6でUnicodeを識別するために使用される。[ 14 ]
言語
その他すべての FPI(つまり、クラスが ではないものCHARSET)の場合、説明に続く部分は、大文字のシーケンスであるパブリックテキスト言語であり、 ISO 639-1コードであることが強く推奨されます(ただし、必須ではありません)。[ 1 ] : 387–388 ISO 639-1 コードの使用を義務付けないことで、検証ソフトウェアに言語が ISO 639-1 コードであるかどうかを確認する必要性を回避し、拡張性も可能にします。[ 1 ] : 387 たとえば、実際に使用される少数の FPI は、ISO 639-1 コードがリソースを他の言語または言語の変種のバージョンと区別するのに不十分な場合に、ISO 639-3コード(低地ドイツ語NDSなど)[ 15 ]またはハイフンを削除したIETF 言語タグ(ガジカで書かれたセルビア語など)[ 16 ]を使用します。ISO 9070の推奨に従い、Steven DeRoseとDavid G. Durandは、ISO 639コードが適用できない場合に使用することを提案している。[ 10 ]:62 SRLATNXX
仕様では、リソースの言語が定義されるデータや名前、ソースコードコメントの言語に影響を与える可能性があるが、一部のテキストクラスのユーザビリティには他のテキストクラスよりも大きな影響を与えるとされている。[ 1 ] : 387 ENたとえば、 HTML 4 または XHTML 1 DOCTYPE 宣言の FPI で指定された言語は、Web ページ自体の言語に関係なく変更してはならない。 [ 6 ] : 7 対照的に、DocBookのDSSSLスタイルシートは、特定のローカリゼーションの文字列テーブルエンティティセットを識別するために、異なる言語の FPI を内部的に使用している。[ 17 ]
エンティティ表示バージョン
さらにCHARSET、、、FPI(指定シーケンスまたは言語が最後の部分でなければならない)を除き、CAPACITY[ 1 ] : 390言語 コードの後に別のペア、[ 1 ] : 385 パブリックテキスト表示バージョンが続く場合があり、これはSGML エンティティの実装が対象とする特定のプラットフォームを指定します。[ 1 ] : 389–390 たとえば、基本エンティティセットは、同義エンティティを使用してLatin-1名前付きエンティティを定義します[ 1 ] : 506–507 [ 18 ]一方、はXMLで使用するためにUnicodeコードポイント参照を使用してそれらを実装します。[ 19 ]同様に、 HTML 5とMathMLの共通エンティティセットはFPI を使用します。[ 20 ]NOTATIONSYNTAX//ISO 8879:1986//ENTITIES Added Latin 1//ENSDATAISO 8879:1986//ENTITIES Added Latin 1//EN//XML-//W3C//ENTITIES HTML MathML Set//EN//XML
FPIの例
| FPI | 意味 |
|---|---|
+//ISBN 0-7923-9432-1::Graphic Notation//NOTATION CompuServe Graphic Interchange Format//EN[ 10 ] : 322 | GIF ( ) 画像形式 ( MIME タイプに相当) - ISBN FPI 所有者の例、およびファイル形式識別子として使用される FPI の例。.gifimage/gifNOTATION |
+//ISO/IEC 10744//NOTATION Systeme International kilogram//EN[ 10 ] : 319 | システムインターナショナルのキログラム基本単位 |
ISO Registration Number 177//CHARSET ISO/IEC 10646-1:1993 UCS-4 with implementation level 3//ESC 2/5 2/15 4/6[ 14 ] | HTML の数値文字参照で参照されるUnicode (またはUCS ) コード化文字セット ( FPI の例)CHARSET |
-//W3C//DTD HTML 4.01 Transitional//EN[ 6 ] : 8 | HTML 4.01 Transitionalの文書型定義; システム識別子URL http://www.w3.org/TR/html4/loose.dtd[ 6 ] : 8 に対応 |
-//Facebook//NONSGML Facebook Events V1.0//EN[ 21 ] [ 22 ] | Facebook イベントをiCalendarファイル ジェネレーターとして使用する-NONSGMLソフトウェア パッケージを識別するために使用される FPI の例 |
-//EP//NONSGML PV 20151125 RES-RCV DOC PDF V0//EN[ 9 ] | 2014~2020年の労働安全衛生に関するEU戦略枠組みへの支持に関する欧州議会の点呼投票結果(A8-0312/2015)—非SGML形式(この場合はPDF) の文書を識別するために使用されるFPIの例NONSGML |
-//W3C//ENTITIES HTML MathML Set//EN//XML[ 20 ] | HTML 5とMathMLの文字実体集合。システム識別子URL http://www.w3.org/2003/entities/2007/htmlmathml-f.ent[ 20 ]ENTITIESに対応する。FPI の例 |
+//IDN nwalsh.com//DTD DocBook DSSSL Architecture V1.0//EN[ 12 ] | DocBook 3.1の変種の文書型定義であり、同時にDSSSLスタイルシートを構成できる[ 12 ] —FPI所有者として使用されるドメイン名の例 |
+//ISBN 3-893-196463::Goosens//NOTATION Der LaTeX Begleiter//DE[ 23 ] | 学術論文の数式に使用されるLaTeX形式[ 23 ]EN —英語以外の参考資料を参照する 以外の言語コードを使用するFPIの例 |
DocBookのDSSSLスタイルシートで使用される、それぞれ英語、フランス語、ギリシャ語の文字列テーブル(たとえば、エンティティはフランス語では[ 27 ]、英語では[ 28 ]と定義されています)—異なるローカリゼーションを区別するためにFPI言語コードを使用する例&Chapter;"Chapitre""Chapter" |
XML、SGML、HTMLでの使用
FPIは、HTML、XML、 SGML( Standard Generalized Markup Language)文書の有効な構成要素である文書型宣言(DOCTYPE)の中で、最も理解されていない部分であることは間違いありません。 [ 29 ]正式公開識別子(FPI)がホスト文書に与える影響は、FPI自身の構文の正確さやそれを解析するプログラムの動作だけでなく、 FPIが参照するスキーマを担当する組織のISO登録状況にも依存するという点で異例です。 [ 30 ]
SGMLにおける公開識別子とシステム識別子
SGMLでは、リソースの識別子として2つの形式が用いられます。システム識別子は特定のシステム内でのみ一意かつ意味を持ち、公開識別子はより広い範囲で一意かつ意味を持ちます。[ 1 ] : 186 ここでの「公開」という用語は、必ずしもリソースが一般公開されていることを意味するわけではありません。例えば、単一の組織内でのみ利用可能な場合もあります(その場合、それは利用できない公開テキストです)。リソースが参照されている特定のシステム環境または文書のコンテキストの外側に存在することを意味します。[ 1 ] : 182 FPIは、SGML標準(ISO 8879)で定められた正式な構造に従っているという意味で「正式な」公開識別子です。[ 1 ] : 183 正式な構造に従わず、したがってFPIではない公開識別子は、「非公式な」公開識別子と呼ばれることもあります。[ 1 ] : 186
正式な(非公式な)公開識別子の制約はオプション機能であるが、FPI の仕様は ISO 8879 の開発の最終段階で導入されたため、公開識別子には FPI を使用することが強く推奨される。これは、FPI 構造により、ある所有者が割り当てた FPI が他の所有者が割り当てた FPI と衝突しないことが保証される(名前が衝突する未登録の所有者の場合を除く)のに対し、非公式な公開識別子には一意性の保証がなく、ある所有者が割り当てた FPI が、別の所有者が割り当てた正式な、または非公式な公開識別子と衝突する可能性があるためである。[ 1 ] :186 正式な構造を使用して公開識別子を解釈できるようにし、公開識別子が FPI であることを要求する機能は、FORMAL機能名を使用して SGML 宣言内で有効にすることができる。[ 1 ] :64、88、378
対照的に、システム識別子はSGML自体によって定義された構造を持っておらず、ファイル名、データベースキー、あるいはインデックス可能なストレージのアドレスである可能性もあるが、SGMLシステムのエンティティマネージャコンポーネントによって解釈され、エンティティの場所を識別する。[ 1 ]:378 そのため、ISO / IEC 8879自体は、正式システム識別子(FSI)という用語は使用しておらず、代わりにISO / IEC 10744( HyTime )の修正で定義されている。[ 31 ]
SGML外部識別子は、キーワードのPUBLIC後に公開識別子のリテラルとシステム識別子のオプションのリテラルが続くか、キーワードのSYSTEM後にシステム識別子のオプションのリテラルが続くかのいずれかで構成されます。[ 1 ] : 379 リテラルの先頭と末尾には、リテラル区切り文字または代替リテラル区切り文字, [ 1 ] : 380–381 が 付けられます。これらは通常、SGML 宣言によって ASCII の二重引用符と一重引用符に設定され、SGML の参照具象構文[ 1 ] : 372 や XML でも使用されています。 [ 32 ] SGML エンティティSYSTEM定義では、エンティティ マネージャがエンティティをその名前だけで解決できる場合は、システム識別子が続かずにキーワードを使用できます。[ 1 ] : 378 外部識別子は、文書型定義(DTD )を参照する文書型宣言(DOCTYPE)、[ 1 ] : 403 、 DTD内の外部エンティティ仕様[ 1 ] : 400 および記法宣言[ 1 ] : 427 、およびリンクプロセス定義(LPD)を参照するリンク型宣言で使用される。[ 1 ] : 433–434
XMLの発展
URIの導入とFPIの排除
XMLの外部識別子は、一般的なSGMLよりも制約が厳しく、変更によって焦点はFPIなどの公開識別子からシステム識別子の形式の標準化へと移っています。システム識別子は(絶対または相対)URI として扱われますが、[ 33 ] [ 34 ] URIフラグメント識別子( で始まる部分)を含んではなりません#。[ 34 ]システム識別子も一般的には必須です。[ 35 ]キーワードSYSTEMの後にはシステム識別子リテラルが続かなければならず、PUBLIC一般的な外部識別子の構文では、キーワードの後には公開識別子とシステム識別子の両方のリテラルが続かなければなりません。[ 34 ]ただし、例外として、表記法宣言ではシステム識別子なしで公開識別子を使用できます。[ 36 ]
システム識別子はURI(HyTimeの目的では、形式システム識別子またはFSIの一種として分類され、 [ 31 ] [ 37 ] : 19 、より狭義にはストレージオブジェクト識別子として分類される)である必要があるという要件とは対照的に、[ 31 ] SGMLFORMAL機能はXMLでは無効になっています。[ 33 ] [ 38 ]これは、公開識別子の形式がXMLで規定されていないためです(つまり、公開識別子はFPIである必要はなく、FPIである場合もあります)。XML仕様が公開識別子について規定している唯一の詳細は、システム識別子と一緒に指定できること、およびXMLプロセッサが他の情報と一緒に代替URIを決定するために使用できることです(代替URIが使用できない場合は、システム識別子で指定されたURIを使用する必要があります)。[ 34 ]
XML名前空間の識別文字列は、空でないURI(絶対URLなど。相対URLの使用は推奨されません)である必要がありますが、[ 39 ]解決可能なURLである必要はなく、たとえばURNを使用することもできます。[ 35 ]
DTDの置き換え
さらに、XMLスキーマ(XSD)などの代替スキーマ形式は、XMLコンテキストにおいてDTDの競合相手として機能し、DTDのいくつかの制限を克服します。XSDは(DTDとは異なり)他のXML文書と同じツールを使用して検証でき、[ 40 ] XML名前空間(DTDはXML名前空間を要素名と属性名の固定部分としてのみ解釈できます)をサポートし、 [ 41 ]電話番号などのテキストデータの形式に正規表現の制約を適用でき、複雑なコンテンツモデル構造をより適切に表現できます。[ 40 ]
そのため、XML形式ではDTD(表記法や外部エンティティにFPIを使用するものなど)はあまり一般的ではなく、DTDを参照するDOCTYPE(FPIまたはURIのみによる—ただし、DOCTYPEはXMLファイル自体に埋め込まれたエンティティ定義にはまだ使用されることがあります)が含まれることもあまり一般的ではありません。[ 42 ]たとえば、RSSのほとんどのバージョン(RSS 0.91を除く)には公式のDTDがありません。[ 43 ]同様に、当初FPIでDTDを識別する文書型宣言を使用していたDocBook形式は、バージョン5.0で主要なスキーマ定義をDTDからRELAX NGに切り替え、その時点で文書型宣言を使用しなくなりました。[ 44 ]また、Scalable Vector Graphics(SVG)もバージョン1.2で同じことを行いました。[ 42 ]
FPIの検索と解決
FPIなどの公開識別子で識別されるリソースにシステム識別子(パスやURLなど)が指定されていない場合、SGMLシステムのエンティティマネージャは公開識別子を参照してシステム識別子を生成します。SGML仕様書自体はエンティティマネージャがどのようにこれを行うべきかを指定していませんが、[ 7 ] : 65–66 、 公開識別子とシステム識別子をマッピングするテーブルを使用することが意図されていました。[ 1 ] : 180 そのため、公開識別子からシステム識別子へのマッピングを含むSGMLカタログ形式が作成されました。カタログファイルは、指定されたシステム識別子を上書きするための規則を指定することもできます。[ 7 ] : 65–66 [ 45 ] [ 46 ] [ 47 ]
XMLではSGML自体よりも多くの場所でシステム識別子の使用が義務付けられていますが、特定のシステム識別子の再マッピングや上書きにはカタログが必要になる場合があります。たとえば、ローカルパスのシステム識別子は他のマシンでは役に立たない可能性があり、ネットワークURLのシステム識別子はネットワーク接続が利用できないときには役に立たないでしょう。[ 35 ]そのため、XMLソフトウェアで使用するための代替XMLベースのカタログ形式が存在し、URIの置き換えや書き換え、FPIからURIへのマッピングのルールをサポートしています。[ 35 ]
例えば、SGMLカタログのエントリは、Scalable Vector Graphics 1.1 DTDのコピーへのローカルパス(カタログファイルからの相対パス)を与え、SGMLプロセッサが使用すべきSGML宣言(この場合はXML構文の宣言)を指定することができる。[ 48 ]
PUBLIC "-//W3C//DTD SVG 1.1//EN" svg11.dtd DTDDECL "-//W3C//DTD SVG 1.1//EN" /usr/share/xml/declaration/xml.dcl代替XMLカタログ形式のスキーマ自体はDTDで定義されており、DTD自体はFPI(-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN)で識別されます。[ 49 ]同様に、FPIとパスのマッピングを表現することができますが、XMLでのみ使用することを意図しているため、代替SGML宣言の指定はサポートされていません。 [ 35 ]ただし、SGMLカタログで表現可能な残りの情報を表現するための拡張機能は存在します。[ 50 ]上記のDTD FPIマッピングは次のように表されます。[ 49 ]
<public publicId= "-//W3C//DTD SVG 1.1//EN" uri= "svg11.dtd" />HTMLでの使用
HTML 2から4
HTMLバージョン2から4(XMLベースのXHTML 1.xを含む)は、SGMLのプロファイルとして定義され、SGML宣言と文書型定義(DTD)で指定されていました。使用されている特定のDTDバージョンは、文書型宣言でFPIを使用して指定され、場合によっては(特に後のバージョンでは、および前述のようにXMLで必須)、システム識別子としてDTDファイルのURLと組み合わせて使用されていました。[ 6 ]:8–9 XMLのSGML宣言とは対照的に、[ 33 ] HTMLのSGML宣言ではこのFORMAL機能が有効になっており、[ 14 ] HTML DTDで使用される公開識別子とHTML DTD内で使用される公開識別子はFPIである必要がありました。
FPIを含む 文書型宣言(HTML 4.01 Strict用)[ 51 ] :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">上記の文書型宣言におけるFPIは[ 30 ]-//W3C//DTD HTML 4.01//ENと記述されているが、URLはシステム識別子として与えられている。FPIは厳密に言えばオプションである。カスタムHTML DTDを定義してFPIを省略することも可能であった(ただし一般的ではない)。この場合、 FPIのないシステム識別子が含まれていることはキーワードによって示される。[ 6 ]:6–7 このような、関連付けられたFPIのないカスタムシステム識別子の例は以下の通りである。[ 52 ]SYSTEM
<!DOCTYPE html SYSTEM "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd">DOCTYPEスニッフィング
文書型宣言は主にSGMLバリデータによる使用を意図していたため、当初ブラウザでは無視されていました。しかし、古いウェブページは作成当時のブラウザで正しく表示されるように設計されており、例えばCSSなどの仕様に準拠してウェブページをレンダリングしていたわけではありませんでした。そのため、ブラウザの標準準拠を向上させると既存のウェブページが正しく表示されない可能性があるため、ブラウザは文書型宣言を用いてページをレンダリングする「モード」を切り替えていました。[ 37 ] : 17–18
「Quirksモード」は、既存のページの表示を損なわないように、以前のブラウザバージョンから引き継がれた動作を維持していました。例えば、Internet Explorerバージョン6および7は、Internet Explorer 5.5のボックスモデルを使用してページをレンダリングします。一方、「標準モード」は、関連仕様により厳密に準拠します。当時「ほぼ標準モード」と呼ばれ、FirefoxとSafariで最初に実装されたこのモードは、画像を含む表セルの高さを決定する際に従来の動作を使用しますが、それ以外は標準モードと同様に動作します。これは、Internet Explorerの「標準モード」が導入された当時の動作に対応していました。[ 6 ]:9–11 [ 37 ]:18–19
例えば、HTML 4.01 Strict FPI ( -//W3C//DTD HTML 4.01//EN) を使用した DOCTYPE は、Internet Explorer 6 では標準モードがトリガーされ、コンテンツボックスボックスモデルが使用されます。一方、HTML 4.01 Transitional FPI ( -//W3C//DTD HTML 4.01 Transitional//EN) を使用した DOCTYPE は、Internet Explorer 5.5 (ボーダーボックス) ボックスモデルの使用を含む互換モードがトリガーされます。[ 6 ] : 9–11 ブラウザは、FPI に加えて、互換モードと標準モードを決定する際にシステム識別子の有無を考慮します。DOCTYPE 宣言がまったくない場合 (または Internet Explorer 6 の場合、DOCTYPE 宣言がファイルの最初の行にない場合)、互換モードがトリガーされます。[ 37 ] : 19–20
HTML5
HTML 5は、XHTML表現を除き、SGMLのプロファイルとして定義されていません。そのため、DTDを用いて定義されていません。
HTML 5の初期草案では、DTDのFPIではなく、DOCTYPEのNONSGML-type FPIが使用されていました。これは、Internet Explorer 6のQuirksモードが動作しなかったためです。 [ 53 ]これは最終的に完全に廃止され、最終的なHTML 5 DOCTYPEではFPIは使用されていません。推奨される形式は、(公開識別子もシステム識別子も使用しない)単純な ですが、( about: URIスキームを使用)のシステム識別子も許容されています。[ 54 ]-//WHATWG//NONSGML HTML5//EN<!DOCTYPE html>about:legacy-compat
対照的に、XML表現(XHTML)はDOCTYPEを持つことが許可されていますが必須ではありません。また、HTML 5スキーマには検証DTDは提供されていません。[ 55 ]ただし、XHTML 1.0、XHTML 1.1、MathML DTDのさまざまなFPIは、文字エンティティの定義を含むdata: URI(ネットワークアクセスを回避するため)を指すように定義されています。[ 56 ]
HTML 5のHTML(XHTMLとは対照的に)表現におけるFPIの唯一の機能は、レガシーモードを起動することです。WHATWG HTML標準では、どのFPIがQuirksモードを起動するかのリストが規定されています。これには、ベンダーがカスタマイズした様々なHTML DTDのFPIが含まれます。また、HTML 2.0の様々な「レベル」のDTDのFPI、HTML 3.0、3.2、そしてHTML 4.0と4.01のTransitional版とFrameset版のFPIも含まれます。ただし、HTML 4.01(HTML 4.0は除く)のTransitional版とFrameset版のFPIにシステム識別子が付与されている場合は、代わりにほぼ標準モード(「限定Quirksモード」に名称変更)を起動します。XHTML 1.0のTransitional版とFrameset版のFPIは、無条件に限定Quirksモードを起動します。ほとんどの場合、これらは所有者、クラス、説明を含む接頭辞として指定されます(ただし、任意の言語部分に一致します)。[ 52 ]
URIとの関係
仕様では、一意の識別を行うために、FPIではなくURIを使用するケースが増えています。例えば、XML名前空間名はURIです。
ユニフォームリソース名(URN)名前空間は、任意のFPIをURIとして書き換えることができるように定義されており、[ 11 ]二重スラッシュをコロンに置き換えます。前述の例は、次のURIのように記述できます。
urn:publicid:-:W3C:DTD+HTML+4.01:EN
参考文献
- ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai aj ak al am an ao ap aq ar as at au av Goldfarb, Charles F. (1990). The SGML Handbook . Oxford : Clarendon Press . ISBN 0-19-853737-9。
- ^ a b c d e f g h i j k Tauber, James K. (1996-04-10). 「公式公開識別子(FPI)」 . CoverPages.org.
- ^ 「ISO所有者識別子におけるハイフンまたはコロンの使用」。エンティティ管理。構造化情報標準推進機構(OASIS)。1997年9月10日。OASIS技術決議9401:1997。
- ^ "sgml-iso-entities-8879.1986/catalog" .ベースラインSGMLデータ用のDebianパッケージ. Debian . 2013年5月19日.
- ^ 「DocBook表記モジュールV4.5」。構造化情報標準推進機構(OASIS)。2006年10月3日。「
<!NOTATION CGM-BINARY PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">」 - ^ a b c d e f g h iロイド、イアン (2008). 『究極のHTMLリファレンス』ビクトリア州コリングウッド: SitePoint . ISBN 978-0-9802858-8-8。
- ^ a b cバーナーズ=リー、ティム、コノリー、ダニエル・W. (1995年11月).ハイパーテキスト・マークアップ言語 - 2.0 . ネットワークワーキンググループ. doi : 10.17487/RFC1866 . RFC 1866 .歴史的。RFC 2854 により廃止されました。
- ^ 「付録A:文書型定義の例」(PDF)。国防総省によるSGML(Standard Generalized Markup Language)を用いたMIL-PRF-28001の適用。米国国防総省。1995年6月30日。138ページ。MIL-HDBK-28001。
- ^ a b「権威主義的権利:調査方法と投票データ」 Corporate Europe Observatory. 2019年5月15日。
- ^ a b c d e f DeRose, Steven J. ; Durand, David G. (1994). Making Hypermedia Work: A User's Guide to HyTime . Norwell, Massachusetts / Dordrecht, Netherlands : Kluwer Academic Publishers. ISBN 0-7923-9432-1。
- ^ a b Walsh, Norman; Cowan, John; Grosso, Paul (2001年8月).パブリック識別子のためのURN名前空間. ネットワークワーキンググループ. doi : 10.17487/RFC3151 . RFC 3151 .情報提供。
- ^ a b c Walsh, Norman (1998). 「DocBookによるDSSSLプログラミングのためのDTD」 . DocBook用DSSSLスタイルシート. DocBookプロジェクト.
- ^ a b「SGMLへのWebSGML適応に関するTC提案」 1997年6月1日。ISO /IEC JTC 1 /SC18/WG8 N1929。
- ^ a b c「20: HTML 4のSGML宣言」 . HTML 4.01仕様. W3C .
- ^ "dbl1nds.dsl" . DocBook用のDSSSLスタイルシート. DocBookプロジェクト。
- ^ "dbl1srLatn.dsl" . DocBook用DSSSLスタイルシート. DocBookプロジェクト。
- ^ "common/catalog" . DocBook用DSSSLスタイルシート、バージョン1.79 . DocBookプロジェクト。
- ^ 「ISOlat1エンティティセット」国際標準化機構. 1986年.
- ^ 「ISO Added Latin 1 Entities V0.3」。構造化情報標準推進機構(OASIS)。2002年。
- ^ a b c「htmlmathml-fエンティティセット」 . W3C . 2011年。
- ^ Udell, Jon (2011年9月30日). 「iCalendarエコシステムのロングテール」 .
- ^ 「問題 #26558: Facebook から誕生日カレンダーを購読できない」。ownCloud Web サーバー コア。
- ^ a b Beck, Jeff; Lapeyre, Deborah; Rosenblum, Bruce (2007). 「Archiving and Interchange DTD Suite Notation Declarations」 . NCBI Book DTDおよびNCBI Collection DTD Tag Library version 2.3 .国立生物工学情報センター/国立医学図書館.
- ^ "dbl1en.dsl" . DocBook用DSSSLスタイルシート. DocBookプロジェクト。
- ^ "dbl1fr.dsl" . DocBook用DSSSLスタイルシート. DocBookプロジェクト。
- ^ "dbl1el.dsl" . DocBook用DSSSLスタイルシート. DocBookプロジェクト。
- ^ "dbl1fr.ent" . DocBook用DSSSLスタイルシート、バージョン1.79 . DocBookプロジェクト。
- ^ "dbl1en.ent" . DocBook用DSSSLスタイルシート、バージョン1.79 . DocBookプロジェクト。
- ^定義: FPI (公式公開識別子) [Web および XML 用語集]
- ^ a b "!DOCTYPE" . 2016年9月10日閲覧。
- ^ a b c「問題A:シンプルなエンティティカタログ形式」 .エンティティ管理. 構造化情報標準推進機構(OASIS). 1997年9月10日. OASIS技術決議9401:1997.
- ^ 「2.3 共通構文構造(§ リテラル)」 .拡張マークアップ言語(XML)1.0(第5版). W3C . 2008年11月26日.
- ^ a b c Clark, James (1997-12-15). 「SGMLとXMLの比較」 . W3C . NOTE-sgml-xml-971215.
- ^ a b c d「4.2.2 外部エンティティ」 .拡張マークアップ言語 (XML) 1.0 (第5版). W3C . 2008年11月26日.
- ^ a b c d e Walsh, Norman (2001-08-06). 「XMLカタログ」構造化情報標準推進機構 (OASIS).
- ^ 「4.7 表記法宣言」 .拡張マークアップ言語 (XML) 1.0 (第5版). W3C . 2008年11月26日.
- ^ a b c dオルソン, トミー; オブライエン, ポール (2008). 『究極のCSSリファレンス』ビクトリア州コリングウッド: SitePoint . ISBN 978-0-9802858-5-7。
- ^ "xml/declaration/xml.dcl: XML 1.0 のSGML宣言" . sgml-data . Debian . 2013年5月19日.
- ^ Bray, Tim; Hollander, Dave; Layman, Andrew; Tobin, Richard; Thompson, Henry S. (2009-12-08). 「XML 1.0 の名前空間」(第3版). W3C .
- ^ a bペイン、ジェームズ (2010). 『Beginning Python: Using Python 2.6 and Python 3.1』Wrox / Wiley . pp. 268– 271. ISBN 978-0-470-41463-7。
- ^ Sall, Kenneth B. (2002). 「XMLと名前空間(§ DTDまたはXMLスキーマにおける名前空間の扱い)」 . XML仕様ファミリー:実践ガイド. InformIT / Addison-Wesley . ISBN 0-201-70359-9。
{{citation}}: CS1 maint: ISBNによる作業パラメータ(リンク) - ^ a b "1.3 SVG Tiny 1.2 ドキュメントの定義" . Scalable Vector Graphics (SVG) Tiny 1.2 仕様. W3C . 2008-12-22.
SVG Tiny 1.1 との主な違いは以下のとおりです。[…] SVG 1.2 には DTD がないため、SVG 1.2 ドキュメントの DOCTYPE を指定する必要はありません(ただし、エンティティ定義などの目的で内部 DTD サブセット([XML10]、セクション 2.8 および [XML11]、セクション 2.8)を使用する場合を除きます)。
- ^ Hammersley, Ben (2003). 「第4章 RSS 0.91および0.92(Really Simple Syndication)」 . RSSによるコンテンツシンジケーション. O'Reilly Media . ISBN 9780596003838。
{{citation}}: CS1 maint: ISBNによる作業パラメータ(リンク) - ^ Kosek, Jirka; Walsh, Norman; Hamilton, Dick; Smith, Michael (2009-06-16). 「DocBookでリラックス」 . DocBook V5.0: 移行ガイド. DocBookプロジェクト.
- ^クラーク、ジェームズ. 「SP - カタログ」 . SP: 国際標準 ISO 8879 に準拠した SGML システム.
- ^ Grosso, Paul (1996). 「MIMEメディアタイプApplication/SGML-Open-Catalogの登録」IANA .
- ^ 「エンティティ管理」 . 構造化情報標準推進機構(OASIS). 1997年9月10日. OASIS技術決議9401:1997.
- ^ "xml/svg/catalog: SVG DTDs" . sgml-data . Debian . 2013年5月19日.
- ^ a b "xml/svg/catalog.xml" . sgml-data . Debian . 2013年5月19日.
- ^ GlobalTransCorp (2004-02-28). 「tr9401.dtd: XMLカタログV1.0ベースの拡張機能V1.0」Debian .
- ^ 「HTML 4.01仕様」 。 2016年9月10日閲覧。
- ^ a b「13.2.6.4.1 「初期」挿入モード」 . HTML標準. WHATWG .
- ^ Sivonen, Henri (2005-04-08). 「[whatwg] [html5] タグ、要素、生成されたDOM」 WHATWGメーリングリストアーカイブ.
- ^ 「13.1.1 DOCTYPE」 . HTML標準. WHATWG .
- ^ 「14.1 XML構文による文書の記述」 . HTML標準. WHATWG .
- ^ 「14.2 XML文書の解析」 . HTML標準. WHATWG .