[20] 記法は、 SGML において SGML 以外の“データ形式”を識別するために使われる概念です。
[22] 特に引数実体を宣言する際に記法を指定することでその実体はDTDデータ実体となります。 すなわち、 SGML DTD 以外でそれと同様の宣言を行う他のデータ形式のものを参照できるようです。
[23] 要素の内容を表すものの例として、初期の HTML の案においては style
要素の内容を「CSS」や「DSSSL」などの記法を指定する記法属性によって指定することが検討されていました。
[35] データの形式を表すものとして拡張子や MIME型のようなものがありますが、 記法は SGML でそれに相当する概念といえます。
[6] データ内容記法とは JIS X 4151‐1992 定義 (178):
[7] >>6 にある JIS の備考はいささか意味不明ですが、要は、要素の内容の記法を指定したいときは NOTATION
型の属性を、データ実体の記法を指定したいときは NDATA
引数を使いなさいと、遠まわしに謎の倒置法で説明していると思われます。
[8] 単に記法とだけ言えばそれで意味が通じることも少なくないので、普段はそう呼ばれます。
[34] データ実体に使う記法をデータ内容記法と言うのは用語としておかしくも感じられますが、 SGML として特にデータ内容の記法とデータ実体の記法を区別していないので、 どちらもデータ内容記法というのでしょう。しかし修飾語があまり意味をなしていないことから、 単に記法ともいうのでしょう。
[19] データ実体に対してはデータ属性を指定することができます。要素に対する属性が要素型に関する属性定義並び宣言で宣言されるように、 記法に関する属性定義並び宣言によってデータ属性は宣言されます。
出典: ISO/IEC 10744:1997 3 Definitions http://www.y12.doe.gov/sgml/wg8/docs/n1920/html/clause-3.html#def-3.81
[26] 記法は、 その名前により、 非解析対象実体の書式や記法属性が付された要素の書式、 処理指令の対象となる応用を識別するものです >>5。
[9] 記法宣言
(<!NOTATION>
) は、
記法の名前と外部識別子を示すものです >>5。
[28] 名前が同じ記法宣言を複数含めてはなりません >>5。
[10] XML処理器は、応用に対して、記法宣言によって宣言され属性値や属性定義、実体宣言で参照された記法の名前や外部識別子を提供しなければなりません >>5。
[1] XML処理器や応用は、外部識別子を使って当該記法によるデータを処理できるヘルパーアプリケーション (のファイル名その他必要な情報) を決めることができます >>5。
[30] (SGML でなく) XML で記法がどれだけ使われているかは大変怪しいところです。
[31] 要素の内容や要素から参照・埋め込みされているものの種別を表すためには、 MIME型がよく使われています。
[32] 処理指令の対象名は、通常宣言無しで使われ、 衝突の可能性は考慮されません (し、実際衝突が問題となる場面はほとんどないでしょう)。
[2] XML では、非解析実体の実体宣言についての XML//妥当性制約「記法が宣言されていること (Notation Declared)」http://www.w3.org/TR/REC-xml#not-declared があります。
The Name must match the declared name of a notation. (
Name
は宣言された記法の名前に一致しなければならない。)
[3] この妥当性制約、その実体が参照されなかった場合や〃名前の実体の宣言が複数あって、 その宣言が無視される時にも適用されるのでしょうか?
特に明記はされていませんが、
妥当性制約の文章がそのような可能性を無視して生成規則
Name
の部分が一致しなければならないとだけ述べていますから、
そのような場合でも適用されると考えられます。
(See also 実体宣言 (>>6))
[4] で、 >>2 で宣言されていることって書いてありますけど、 その記法宣言は実体宣言の後ろでもいいんでしょうか? 前じゃないといけないんでしょうか? 「the declared name」とありますけど、 これは過去形ではなく過去分詞 (受身的意味) ですね。
というわけで JISX4151‐1992 9.5.5 を参照してみると、 「記法名は、この実体宣言と同一の文書型定義の中で宣言していなければならない。 その宣言は、この実体宣言に先立っていなくても差し支えないが、 その実体への参照よりも前になければならない。」
なるほど、宣言時に宣言の構文的妥当性を、 参照時に宣言の内容的妥当性を検査するという SGML 全体の設計によく整合しています。
XML では (見落としてなければ) 特に記述はありませんが、 同じと考えていいですかね?
NOTATION
[14] ISO/IEC 10744:1997 で字句模型に NOTATION
が現れた場合、その NOTATION
の適用先は、クライアント文書を最初に探し、
なければ体系的文書をクライアント文書に近い側から当該字句模型が使われている体系まで順に探して最初に見つかったものとなります
ISO/IEC 10744:1997 5.2。
[16] W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes ( ( 版)) http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/#NOTATION
[17] W3C XML Schema Definition Language (XSD) 1.1 Part 1: Structures ( ( 版)) http://www.w3.org/TR/2012/REC-xmlschema11-1-20120405/#cNotation_Declarations
[24] XQuery and XPath Data Model 3.0 ( ( 版)) http://www.w3.org/TR/xpath-datamodel-3/#qnames-and-notations
[25] XPath and XQuery Functions and Operators 3.0 ( ( 版)) http://www.w3.org/TR/xpath-functions-3/#NOTATION-functions
[33] RFC 3017 - XML DTD for Roaming Access Phone Book ( 版) https://tools.ietf.org/html/rfc3017#section-4