正式公開識別子(FPI)とは、製品、仕様、または文書を一意に識別するために使用できる、特定の構造を持つ短いテキストです。FPIは、標準汎用マークアップ言語(SGML)の一部として導入され、歴史的にSGMLから派生したフォーマット(HTMLおよびXML)において特定の目的を果たします。最も一般的な用途としては、 SGML、XML、そして歴史的にはHTMLにおける文書型宣言(DOCTYPE)および文書型定義(DTD)の一部として使用されることが挙げられますが、 vCardおよびiCalendarファイルフォーマットにおいても、ファイルを生成したソフトウェア製品を識別するために使用されています。
近年では、オブジェクトを一意に識別するために、URI( Uniform Resource Identifier)やUUID( Uniformly Unique Identifier )が一般的に使用されています。FPI(First Point Interface)は旧式のシステムとなっています。
FPI は、所有者識別子、二重スラッシュ( //)、テキスト識別子で構成されます。[ 1 ] : 381–382例えば、識別子 " "は、FPI の発行者を示す所有者識別子と、 FPI が識別する特定の文書またはオブジェクトを示すテキスト識別子-//W3C//DTD HTML 4.01//ENの 2 つの部分に分解できます。 [ 2 ]この例では、所有者識別子は " " で、テキスト識別子は " " です。-//W3CDTD HTML 4.01//EN
テキスト識別子自体は複数の構成要素から成り立っています。[ 1 ]: 385空白文字の連続は、単一の空白文字と同等として扱われます。[ 1 ]: 381–382
所有者識別子には、最初の3文字で区別される3種類があり、ISO所有者識別子ISO、未登録所有者識別子、登録済み所有者識別子のいずれかである。[ 1 ]: 383-384-//+//
ISO所有者識別子は、 ISO発行番号(例:)ISO 8879:1986またはISO-IR登録番号(例:ISO-IR-111)ISO Registration Number 111のいずれかです。後者のタイプはFPI(下記参照)にのみ許可されています。いずれの場合も、文字で始まることで区別され、これらの文字の前に接頭辞は必要ありません。[ 1 ]: 383-384CHARSETISO
年は以前は標準番号からハイフン(-、例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 組で区切られます。[ 2 ] [ 10 ] : 63+//::
ISO 9070 に準拠した登録所有者の接頭辞は、次のいずれかになります。[ 2 ]
+//上記のように、これらのFPIには先頭に接頭辞は必要ありませんが、[ 1 ] : 184、383–384このような接頭辞は、特にIEC規格でもあるFPI内のISO規格への参照で時折使用されています。[ 10 ] : 318–319/RA大文字小文字を区別しない)[ 2 ]ISO Registration Numberとスペースの後にISO-IR番号[ 2 ]が続くが、前述のように、+//この場合は省略可能)[ 1 ] : 383–384ISBN、スペース、ISBN)、[ 2 ] [ 10 ] : 321–325の受け入れは、ISO 9070 [ 1 ] : 184,384の後の改訂で追加されました。IDNとスペースの後)も許可されています。[ 11 ] [ 12 ]例えば、の所有者は、example.net所有者識別子「+//IDN example.net」を使用してFPIを発行できます。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 ]SHORTREFSUBDOCSYNTAXTEXTDOCUMENT、SGML 文書または SGML 文書の断片を参照します。SUBDOC[ 1 ] : 386クラスのものは、テキスト エンティティ (エンティティ タイプのキーワードなし、つまり文書に直接挿入) を使用して参照することを意図していますが、クラスのものは、サブ ドキュメント エンティティ (エンティティ宣言にキーワードあり、つまり独自のスキーマ、名前空間などで解釈) を使用して参照することを意図しています。[ 1 ] : 294–296、400–401クラスのものは、囲んでいる文書からエンティティとして参照することを意図していません。TEXTTEXTSUBDOCSUBDOCDOCUMENT
CAPACITYSYNTAXSGML宣言の一部を参照します。(SDSGML宣言全体を参照)は、XMLで必要とされる特定の拡張機能も指定する、標準に付属書として追加された後の拡張機能によってこのリストに追加されました。[ 13 ]LPDは、SGMLリンクプロセス定義(あるSGML形式から別のSGML形式への変換を定義する)を参照します。ELEMENTS、およびENTITIESは、特定のタイプのマークアップ宣言で構成される文書型定義SHORTREF(DTD)の一部を参照します。 は、DTD全体を参照します。DTD
残りの3つはSGML外の概念を参照しています。コード化された文字セットCHARSET、ファイル形式などの形式(外部ファイルからのエンティティへの参照、または要素内に含まれるテキスト形式の解釈のいずれか)、[ 1 ]: 336-337、およびSGML以外の形式のアセットを指します。NOTATIONNONSGML
テキスト クラス名の後のスペースは、-//FPI が利用できない公開テキスト[ 1 ] : 385を参照する場合、シーケンスが続きます。つまり、一般にアクセスまたは購入できない文書、ファイル、または仕様です。[ 1 ] : 182公開テキストの説明はこのマーカーの後に続きます。利用可能な公開テキストの場合は、説明はテキスト クラス名の後のスペースの直後に続きます。[ 1 ] : 385 ISO 出版物の場合、説明は出版物のタイトルの最後の要素から取得されますが、部品番号は含めません。それ以外の場合は、許可された文字の適切な一意の文字列になります。[ 1 ] : 387説明は別の//ペアで終了します。[ 1 ] : 385
説明に続く 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 ]: 62SRLATNXX
仕様書では、リソースの言語が定義されるデータや名前、ソースコードコメントの言語に影響を与える可能性がある一方で、言語はテキストクラスの使いやすさに他のテキストクラスよりも大きな影響を与えることが指摘されています。[ 1 ] : 387例えば、ENHTML 4 または XHTML 1 の DOCTYPE 宣言の FPI で指定された言語は、ウェブページ自体の言語に関係なく変更すべきではありません。[ 6 ] : 7対照的に、DocBookのDSSSLスタイルシートは、内部的に異なる言語の FPI を使用して、特定のローカライズ用の文字列テーブルエンティティセットを識別します。[ 17 ]
さらに、指定シーケンスまたは言語が最終部分でなければならない 、、CHARSETおよびFPIを除き、 [ 1 ] : 390言語コードの後に別のペア[ 1 ] : 385が続き、その後にSGML エンティティの実装が対象とする特定のプラットフォームを指定する公開テキスト表示バージョンが続きます。[ 1 ] : 389–390例えば、基本エンティティセットは、トートロジーエンティティを使用してLatin-1 の固有表現を定義し、[ 1 ] : 506–507 [ 18 ]はXMLで使用するためにUnicodeコードポイント参照を使用して実装します。[ 19 ]同様に、 HTML 5およびMathMLの共通エンティティセットはFPI を使用します。[ 20 ]CAPACITYNOTATIONSYNTAX//ISO 8879:1986//ENTITIES Added Latin 1//ENSDATAISO 8879:1986//ENTITIES Added Latin 1//EN//XML-//W3C//ENTITIES HTML MathML Set//EN//XML
FPI は、有効なHTML、XML、および標準汎用マークアップ言語(SGML) 文書の不可欠な構成要素である文書型宣言(DOCTYPE) の中で、間違いなく最も理解されていない部分です。 [ 29 ]形式公開識別子がホスト文書に与える影響は、構文の正しさやそれを解析するプログラムの動作だけでなく、 FPI が参照するスキーマを担当する組織の ISO 登録状況にも依存する可能性があるという点で独特です。 [ 30 ]
SGMLでは、リソースの識別子として2つの形式を使用します。システム識別子は特定のシステム内でのみ一意かつ意味を持ち、パブリック識別子はより広い範囲で一意かつ意味を持ちます。[ 1 ] : 186ここでいう「パブリック」という用語は、必ずしもリソースが一般に公開されていることを意味するものではありません。たとえば、単一の組織内でのみ利用可能な場合もあります(その場合、それは利用できないパブリックテキストです)。これは、リソースが参照されている特定のシステム環境またはドキュメントのコンテキスト外に存在することを意味するだけです。[ 1 ] : 182 FPIは、SGML標準(ISO 8879)で定められた形式構造に従うという意味で、「形式的」なパブリック識別子です。 [ 1 ] : 183形式構造に従わない、つまりFPIではないパブリック識別子は、「非形式的」なパブリック識別子と呼ばれることがあります。[ 1 ] : 186
形式的(非形式的とは対照的に)な公開識別子の制約はオプション機能ですが、FPIの仕様がISO 8879の開発の後半に導入されたため、公開識別子にはFPIを使用することが強く推奨されます。FPI構造は、ある所有者によって割り当てられたFPIが他の所有者によって割り当てられたFPIと衝突しないことを保証します(名前が衝突する未登録の所有者の場合を除く)。一方、非形式的な公開識別子には一意性の保証がないため、ある所有者によって割り当てられたものが、別の所有者によって割り当てられた形式的または非形式的な公開識別子と衝突する可能性があります。[ 1 ]: 186形式構造を使用して公開識別子を解釈できるようにする機能(したがって、公開識別子がFPIであることを要求)は、機能名を使用してSGML宣言内で有効にできますFORMAL。[ 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 宣言によって、SGML の参照具体構文[ 1 ] : 372および XML [ 32 ]と同様に、二重および単一の ASCII 引用符に設定されます。エンティティマネージャがエンティティをその名前だけで解決できる場合、 SGML エンティティSYSTEM定義でキーワードを後続のシステム識別子なしで使用することは許可されます。[ 1 ] : 378外部識別子は、文書型定義(DTD)を参照する文書型宣言(DOCTYPE)、[ 1 ] : 403外部エンティティ仕様[ 1 ] : 400および DTD 内の表記宣言[ 1 ] : 427、ならびにリンクプロセス定義(LPD)を参照するリンク型宣言で使用されます。[ 1 ] : 433–434
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を使用する必要がある)。[ 34 ]
XML名前空間を識別する文字列は、空でないURI(絶対URLなど。相対URLの使用は非推奨)である必要がありますが[ 39 ] 、解決可能なURLである必要はなく、たとえばURNでも構いません[ 35 ]。
さらに、XML Schema (XSD)などの代替スキーマ形式は、XML コンテキストで DTD の競合として機能し、DTD のいくつかの制限を克服します。XSD は (DTD とは異なり) 他の XML ドキュメントと同じツールを使用して検証でき、[ 40 ] XML 名前空間のサポートを含み(DTD では、対象となる要素名と属性名の固定部分としてのみ解釈できます)、[ 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 などの公開識別子で識別されるリソースに対してシステム識別子 (パスや 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 で定義され、それ自体が 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 バージョン 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 内で使用される公開識別子は 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 は-//W3C//DTD HTML 4.01//EN、[ 30 ]と読み、URL はシステム識別子として指定されています。厳密に言えば、FPI はオプションでした。カスタム HTML DTD を定義して FPI を省略することも可能でしたが、これは一般的ではありませんでした。この場合、 FPIなしでシステム識別子を含めることは、キーワードによって示されますSYSTEM。[ 6 ] : 6–7関連付けられた FPI のないカスタムシステム識別子の例は次のとおりです。[ 52 ]
<!DOCTYPE html SYSTEM "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd">文書型宣言は主にSGMLバリデーターでの使用を想定していたため、当初はブラウザによって無視されていました。しかし、古いウェブページは作成当時のブラウザで正しく表示されるように設計されており、例えばCSSの仕様に準拠してウェブページをレンダリングするとは限りませんでした。そのため、標準規格への準拠を改善すると既存のウェブページが正しく表示されなくなるため、ブラウザは文書型宣言を使用して、ページがレンダリングされる「モード」を切り替えるようになりました。[ 37 ]: 17-18
「Quirksモード」は、既存のページが壊れないように、以前のブラウザバージョンの従来の動作を維持していました。たとえば、Internet Explorerバージョン6と7では、Internet Explorer 5.5のボックスモデルを使用してページがレンダリングされました。「Standardsモード」は、関連する仕様により厳密に準拠していました。当時「ほぼStandardsモード」と呼ばれ、当初FirefoxとSafariで実装されたものは、画像を含むテーブルセルの高さを決定する際に従来の動作を使用しましたが、それ以外はStandardsモードのように動作しました。これは、Internet Explorerの「Standardsモード」が導入された当時の動作に対応していました。[ 6 ] : 9–11 [ 37 ] : 18–19
例えば、HTML 4.01 Strict FPI ( -//W3C//DTD HTML 4.01//EN) を使用する DOCTYPE は Internet Explorer 6 で標準モードをトリガーし、content-box ボックス モデルを使用します。一方、HTML 4.01 Transitional FPI ( -//W3C//DTD HTML 4.01 Transitional//EN) を使用する DOCTYPE は、Internet Explorer 5.5 (border-box) ボックス モデルの使用を含む、互換モードをトリガーします。[ 6 ] : 9-11 FPI に加えて、ブラウザは互換モードと標準モードのどちらを使用するかを決定する際に、システム識別子の有無も考慮します。DOCTYPE 宣言がまったくない場合 (または、Internet Explorer 6 の場合、DOCTYPE 宣言がファイルの最初の行でない場合) は、互換モードをトリガーします。[ 37 ] : 19-20
HTML 5は、XHTML 表現を除き、SGML のプロファイルとして定義されていません。そのため、DTD を使用して定義されていません。
HTML 5 の初期ドラフトでは、Internet Explorer 6 の quirks モードが有効にならないため、DTD FPI の代わりに DOCTYPE でNONSGML-type FPIが使用されていました。 [ 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 ]
仕様書では、一意の識別を行う際に、FPIではなくURIを使用するケースが増えている。例えば、XMLの名前空間名はURIである。
ユニフォームリソースネーム(URN)名前空間が定義されており、任意のFPIをURIに書き換えることができ、二重スラッシュをコロンに置き換えます[ 11 ]。前述の例は、次のURIとして記述できます。
urn:publicid:-:W3C:DTD+HTML+4.01:EN
<!NOTATION CGM-BINARY PUBLIC "ISO 8632/3//NOTATION Binary encoding//EN">」SVG Tiny 1.1 との重要な違いをいくつか指摘しておく必要があります。 […] SVG 1.2 には DTD がないため、SVG 1.2 ドキュメントの DOCTYPE を指定する必要はありません (エンティティ定義などの目的で、内部 DTD サブセット ([XML10]、セクション 2.8、および [XML11]、セクション 2.8) を使用したい場合は別です)。