処理命令

処理命令

[1] 処理指令 (processing instruction) (PI) は、 タグで明示される要素文書の構造を表現する (一般化マーク付け) のに対し、 特定の処理系に対して、その部分の処理をどうするのかを指令する (固有マーク付け)。

[2] >>1 文書がどう表現されるかを、文書の構造によって間接的に記述する SGML の思想では、処理指令は使わないに越したことはありません。特定処理系に依存しちゃいますから。でも、表現と構造の分離は完全には困難であるので、しばしば、特定の処理系に依存してしまうことは承知の上で、実際的な処理の内容を文書の一部に指定したいこともあります。そういうときに使います。

[25]

文書処理制御するシステム依存データからなるマークProcessing instruction。 JIS X 4151‐1992 3. (127)

SGML と XML

[3] おそらく現在最もよく使われている処理指令が、 XML宣言でしょう。 (XML 的には XML 宣言は処理指令ではありませんが、 SGML 的には処理指令です。) これも、 XML処理系という特定の処理系に対して処理を指令 (encoding とか、 XML の版とかを指定) するのですから、「特定の処理系に依存している」といえます。

[4] SGML では、処理指令の内容は自由に記述できました。 SGML 以前の従来の処理指令記述法をそのまま使えたのです。

一方で、 XML では、 処理指令対象 S 処理指令内容 という構成に限定されています。処理指令内容は相変わらず自由文ですが、処理指令対象は Name (実質 NCName) でないといけません。

[6] >>4 この「処理指令対象」の名前は、記法宣言を使って宣言することできます。

認知様相 PI (SGML)

[17] この認知様相である区切子は、 処理指令の中で認知します。

仕様書: JIS X 4151‐1992 8.6.1

[18] 認知される区切子機能:

区切子機能名規格参照区切子意味
pic>処理指令閉じ

[19] 認知様相 PI で認知されるのは、 pic だけです。つまり、処理指令では、 その処理指令自身を終える pic はなんでも書くことができて、 すべてシステムデータとして扱われます。 (pic と同じ文字列をシステムデータに含めるための代替表現のようなものすら、 SGML 的にはありません。)

ProcessingInstruction 節点・ProcessingInstruction 界面 (DOM)

[20] DOM1 では、処理指令節 (ProcessingInstruction node) はどんな種類の子も持つことは出来ません。

[21] 処理指令節は XML処理指令に対応しています。

[22] Node 界面を継承して:

読取専用属性target処理指令対象[DOM1]
属性data処理指令内容[DOM1]

[23] 仕様書:

[24] ProcessingInstruction (処理指令) 節点に対応するもの:

SGML 実体
処理指令
XML 実体
処理指令
XML情報集合
処理指令 (Processing Instruction) 情報項目
XPath 1.0 データ・モデル
処理指令節点
XML DTD における宣言
記法宣言

歴史

[29] SCRIPT

メモ

[10] TAG処理指令を使うのは好ましくないと考えているそうです (未確認)。 (名無しさん 2006-05-21 04:28:45 +00:00)

[11] Bug 319654 - Processing instructions in XUL are not added to the content model https://bugzilla.mozilla.org/show_bug.cgi?id=319654 (名無しさん)

[12] Associating Style Sheets with XML documents (2000-05-03 23:40:39 +09:00 版) http://www.w3.org/1999/06/REC-xml-stylesheet-19990629/

The use of XML processing instructions in this specification should not be taken as a precedent. The W3C does not anticipate recommending the use of processing instructions in any future specification.

(名無しさん)

[13] XLIFF 1.1 Specification ( 版) http://www.oasis-open.org/committees/xliff/documents/cs-xliff-core-1.1-20031031.htm#AppNaming_PI

この仕様では一部の機能の動作を処理指令により制御することを認めています (が、具体的にどう実現するべきなのかには言及がありません)。 xliff- で始まる対象名を予約していますが、 この仕様自体は何も定義していません。 (名無しさん)

[14] XQuery and XPath Data Model 3.0 ( ( 版)) http://www.w3.org/TR/xpath-datamodel-3/#ProcessingInstructionNode

[15] WebDAV 文書では、処理指令は無視するべきです >>5WebDAV を拡張する仕様は処理指令規定として動作を定義するべきではありません >>5

[16] RFC 7749 - The "xml2rfc" Version 2 Vocabulary ( 版) https://tools.ietf.org/html/rfc7749#section-1

Processing Instructions (Section 2.6 of [XML]) generally are specific

to a given processor and thus are not considered to be part of the

vocabulary. See Section 4.1 of [TCLReadme] for a list of the

Processing Instructions supported by the first implementation of an

xml2rfc processor.

[26] JIS X 4153:1998 文書スタイル意味指定言語(DSSSL) 解説 , http://www.y-adagio.com/public/standards/jis_dsssl/tutr.txt

訳語選定に際しては,SGMLを規定しているJIS X 4151,SGMLの拡張規格であるJIS X 4155, 及びSGML関連規格であるJIS X 4171との整合を第一に配慮した。しかし次の用語などについては,その後関連分野で普及した訳語表記に従っている。

原語 訳語

------------------------------------------------

processing instruction 処理命令

[27] The XML Object Model in Internet Explorer 4.0, Microsoft Corporation, , https://web.archive.org/web/20001018151202/http://msdn.microsoft.com/xml/articles/xmlmodel.asp

[28] >>27 ? + 対象名処理指令タグ名扱い。