SGML実体

SGMLにおける実体



SGML(Standard Generalized Markup Language)は、文書の構造を定義するためのマークアップ言語です。その中で、一つの重要な概念が「実体(entity)」です。実体は、特定の文字列データ型を関連付ける役割を持ち、SGML文書の基盤を形成しています。実体の概念は、後のXMLやHTMLにおいても引き続き使用されています。

実体の種類


実体は大きく分けて、包括実体とパラメータ実体の2つに分類されます。包括実体(general entity)は、文書の中でのみ参照可能ですが、パラメータ実体(parameter entity)は、主にドキュメント型定義(DTD)の中のみで使用されます。また、実体には解析対象と非解析対象があり、解析対象実体(parsed entity)は文書に組み込まれたテキストを含み、構文解析が行われます。一方、非解析対象実体(unparsed entity)は、アプリケーションがその存在を認識するだけで、内容が解析されることはありません。

内部実体と外部実体


実体には内部実体(internal entity)と外部実体(external entity)という分類もあります。内部実体は同一文書内で定義され、その値はリテラル文字列やその文書内のマークアップからなります。外部実体は別文書を呼び出すため、実体管理系とのやりとりが必要です。

システム実体


システム実体(system entity)は、特定のパラメータがオプションで付与されるため、それによりSGMLのパーサーは実体の内容をリソース識別子として解釈します。これにより、外部資源との関連が可能となります。

SGML文書実体


外部実体が完全なSGML文書を指す場合、その文書をSGML文書実体(SGML document entity)と呼びます。完全なSGML文書は、文書インスタンスのみならず、プロローグやオプションのSGML宣言を含む必要があります。

実体の定義


SGML文書における実体は、「実体宣言(entity declaration)」として定義されます。次のような宣言が可能です:

```sgml




```

この例では、特定の名前に対して文字列や外部リソースを関連付けています。実体名はSGMLの命名規則に従う必要があり、適切に参照するためには文脈を考慮する必要があります。

実体の参照


実体を文書内で参照する際は、以下のように記述します:

```sgml

'&greeting1;' is a common test string.
The content of hello.txt is: &greeting2;
In Spanish, &greeting4;

```

これを解析すると、指定されたファイルの内容が組み込まれ、実体に関連する情報が出力します。例えば、greeting2が「Salutations」であった場合、結果は次のようになります。

```sgml

'Hello world' is a common test string.
The content of hello.txt is: Salutations
In Spanish, ¡Hola! means Hello!

```

このように、実体により文書構造や内容の効率的な管理が実現されます。ただし、定義されていない実体を参照しようとすると、エラーが発生することがあります。

文字実体


さらに、SGMLには文字実体があり、特定の文字を簡単に参照できる便利な機能を持っています。これにより、タイピングが難しい文字や特別な文字コードを用いる必要がなくなります。例えば、HTML 4には252の文字実体があらかじめ用意されています。

このように、SGMLにおける実体は、文書の内容や構造を定義するために欠かせない要素であり、正しい理解と利用が求められます。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。