* code 要素型 (HTML, XHTML 1) [1] [DFN[[CODE(HTMLe)[code]] [[要素型]]]]は、計算機[RUBY[符号] [コード]]の[[素片]]を示します。 仕様書: - [[HTML 2]] -- [[HTML 2.0]] [[RFC 1866]] - [[HTML 4]] -- - [[XHTML 1.0]] -- DTD - [[XHTML m12n]] -- 抽象モジュール -- DTD 実装 [2] :[[開始タグ]]:必須 :[[終了タグ]]:必須 :[[内容模型]] (HTML 2):[CODE(SGML)[(%[[text]];)*]] :内容模型 (HTML 4):[CODE(SGML)[(%[[inline]];)*]] :内容模型 (XHTML 1.0):[CODE(SGML)[%[[Inline]];]] :[[最小内容模型]] (XHTML m12n):[CODE[([CODE(XML)[[[PCDATA]]]] | [VAR[[[Inline]]]])*]] :出現できる文脈 (HTML 2):[CODE(SGML)[%[[phrase]]]] ⊂ [CODE(SGML)[%text]] が出現できる文脈 :出現できる文脈 (HTML 4):[CODE(SGML)[%phrase]] ⊂ [CODE(SGML)[%inline]] が出現できる文脈 :出現できる文脈 (ISO-HTML):[CODE(SGML)[%[[logical.styles]]]] ⊂ [CODE(SGML)[%text]] (ISO-HTML) が出現できる文脈 :所属内容集合:([CODE(XML)[[[InlPhras.class]]]]) ⊂ ([CODE(XML)[[[Inline.class]]]]) ⊂ Inline ([CODE(XML)[[[Inline.mix]]]]) :モジュール (XHTML m12n):[[Inline Phrasal]] ⊂ [[Text]] :[[属性]]: ,[CODE(HTMLa)[[[class]]]] , , ,[[級]] ,"[HTML3.0] %[[attrs]], [HTML4] %[[coreattr]], [ISO-HTML] %[[core]]" ,[CODE(HTMLa)[[[dir]]]] , , ,[[書字方向]] ,"[HTML4] %[[i18n]], [ISO-HTML] %i18n" ,[CODE(HTMLa)[[[id]]]] , , ,一意識別子 ,"[HTML3.0] %attrs, [HTML4] %coreattr, [ISO-HTML] %core" ,[CODE(HTMLa)[[[lang]]]] , , ,[[自然言語]] ,"[HTML3.0] %attrs, [HTML4] %i18n, [ISO-HTML] %i18n" ,[CODE(HTMLa)[[[xml]]:lang]] , , ,自然言語 ,[XHTML1] ,[CODE(HTMLa)[[[onclick]]]] , , , ,[HTML4] %[[events]] ,[CODE(HTMLa)[[[ondblclick]]]] , , , ,[HTML4] %events ,[CODE(HTMLa)[[[onkeydown]]]] , , , ,[HTML4] %events ,[CODE(HTMLa)[[[onkeypress]]]] , , , ,[HTML4] %events ,[CODE(HTMLa)[[[onkeyup]]]] , , , ,[HTML4] %events ,[CODE(HTMLa)[[[onmousedown]]]] , , , ,[HTML4] %events ,[CODE(HTMLa)[[[onmousemove]]]] , , , ,[HTML4] %events ,[CODE(HTMLa)[[[onmouseout]]]] , , , ,[HTML4] %events ,[CODE(HTMLa)[[[onmouseover]]]] , , , ,[HTML4] %events ,[CODE(HTMLa)[[[onmouseup]]]] , , , ,[HTML4] %events ,[CODE(SGMLa)[[[SDAFORM]]]] ,[CODE[Lit]] (固定) ,== , ,[HTML2] ,[CODE(HTMLa)[[[style]]]] , , ,スタイル情報 ,[HTML4] %coreattr ,[CODE(HTMLa)[[[title]]]] , , ,注釈的題 ,"[HTML4] %coreattr, [ISO-HTML] %core" [[#comment]] ** 応用 [13] RFC 1866 (HTML 2.0) は、典型的に固定幅のフォントでレンダリングされると述べています。 >>11 [3] HTML 4 仕様書は特に典型的[[レンダリング]]例を挙げていません。 [[#comment]] ** 仕様書から [16] [[HTML 1.0]]: > :CODE:Example of code. typically monospaced font. (Do not confuse with PRE ) > :[CODE(HTMLe)[code]]:符号の例。典型的に単一幅フォント。 ([CODE(HTMLe)[[[pre]]]] と混同しないように。) [11] [[RFC 1866]] ([[HTML 2.0]]): > 5.7.1.2. Code: CODE > The element indicates an example of code, typically rendered in a mono-spaced font. The element is intended for short words or phrases of code; the
 block structuring
element (5.5.2, "Preformatted Text: PRE") is more appropriate
for multiple-line listings. For example:

> [CODE(HTMLe)[code]] 要素は符号の例を示し、
典型的に単一幅のフォントでレンダリングします。
[CODE(HTMLe)[code]] 要素は符号の短い語や語句を想定しています。
複数行の並びには [CODE(HTMLe)[pre]]
ブロック構造化要素がより適切です。例:

> The expression x += 1
is short for x = x + 1.

> 式 x += 1x = x + 1 の略です。

[14] HTML 2 ([[RFC 1866]], [[RFC 2070]]) DTD 注釈:

>      Source code phrase

> [CODE(HTMLe)[code]] 原始符号語句

[19] [[HTML+]] 議論文書
:

>
:code:code example - usually shown in fixed pitch font

>
:[CODE(HTMLe)[code]]:符号例 ― 通常固定幅フォントで

[18] [[HTML 3.0]] I-D :

> The  element indicates an example of code; typically rendered in a mono-spaced font. Do not confuse with PRE.

> [CODE(HTMLe)[code]] 要素は符号の例を示します。
典型的に単一幅フォントでレンダリングされます。
[CODE(HTMLe)[pre]] と混同しないように。

[8] HTML 4 仕様書  いわく:

> Phrase elements add structural information to text fragments. The usual meanings of phrase elements are following:
> [INS[(略)]]
>
:CODE:Designates a fragment of computer code.

> 語句要素は文素片に構造的情報を追加します。
語句要素の通常の意味は次の通りです。 [INS[(略)]]
:[CODE(HTMLe)[code]]:計算機符号の素片を示す。

[15] [[ISO-HTML利用者の指針]]
:

>   [W3C 9.2.1]―Program code

> [CODE(HTMLe)[code]] プログラム符号

[9] [[XHTML 1.0]] [[DTD]] 注釈
:

> program code

> プログラム符号


** 歴史

[20] [CODE(HTMLe)[code]] 要素型は、
[CODE(HTMLe)[[[em]]]] など他の語句要素型と共に、
1993年1月6日版の HTML 仕様書で初めて正式に導入されました。


しかし、それ以前の 1992年12月8日に [[Dan Conolly]] は
[Q[As I was adding phrase-level elements]] 云々と言っています。


彼の [DEL[DTD や]] [[libHTML]] で実装していたのかもしれませんが、
当時のものが残っていないので詳しくは分かりません。
(Dan の [CODE(file)[html.dtd]] は1993年1月7日版で [CODE(HTMLe)[code]] などが追加されています。)

[21] 当時の HTML には、 [CODE(HTMLe)[[[hp[VAR[n]]]]]]
要素型群が用意されてはいましたが、誰も実装していないし使ってもいない状況でした。
代わりに他の要素型群を用意しようという話になり、
語彙の案として [[Texinfo]], [[DocBook]],
[[MIME]] ([CODE(MIME)[[[text/richtext]]]])
などが挙げられましたが、余り深くない議論の末に Texinfo
のものが採用されたようです。 
(DocBook は要素型名が長いし分類が細かい、
MIME は物理的というのが良く思われなかった。)

[23]
>>20 Dan の最初の DTD は1月7日と書いていますが、時差の関係で6日でもあります。 (Dan が当時どこにいたのか、何日だったのかわかりませんが。) 

[24]
この時に texinfo から Dan の html.dtd に輸入されたのは 
[CODE(HTMLe)[code]], [CODE(HTMLe)[[[samp]]]],
[CODE(HTMLe)[[[kbd]]]], [CODE(HTMLe)[[[key]]]], [CODE(HTMLe)[[[var]]]], [CODE(HTMLe)[[[dfn]]]], 
[CODE(HTMLe)[[[cite]]]] です。
そのうちの [CODE(HTMLe)[dfn]] と [CODE(HTMLe)[key]] は数奇な運命をたどっております。 
(それぞれの説明を参照されたし。)

[[#comment]]


** 例

[17] [SAMP(HTML)[It was made using the EM element.]]
(HTML 1.0 I-D, HTML 3.0 I-D より)

[12] >>11 の RFC 1866 (HTML 2.0) の例を参照。

[10]
[PRE(HTML example)[
<[CODE(HTMLe)[p]]>
  This is text that uses our 
  <[CODE(HTMLe)[code]]>internal stylesheet.

]PRE]

出典: 

この例で [CODE(HTMLe)[code]] にはどういう意味があるのでしょう。
よくわかりません。

[30] 
> [SAMP(HTML)[<[CODE(HTMLe)[p]]>Examples in this document that use the namespace prefix "<[CODE(HTMLe)[code]]>ev" all assume an <[CODE(HTMLe)[code]]>xmlns declaration <[CODE(HTMLe)[code]]>xmlns:ev="http://www.w3.org/2001/xml-events" somewhere suitable in the document involved. All examples are informative.]]

出典: [CITE[XML Events]] 


[[#comment]]


** メモ

[22] 最近の W3C の Note を見ていると、マーク付け文書の素片が
[CODE(HTMLe)[code]] でマークされていたりします。
Texinfo は [CODE[@code]] をプログラムに限定していますし、
HTML の仕様書でも半分くらいはプログラムと限定していますけど、
マークにも応用するくらいは許されてもよさそうなものです。

同様にプロトコル要素の素片 (たとえば HTTP のメッセージの一部、
[[言語札]]、[[媒体型]]、更に言えば [[URI参照]]や[[ファイル名]])
にも適用するのも良いかもしれませんが、
これは議論の余地があるかもしれません。

[[#comment]]


* @code 命令 (GNU Texinfo)

[5] GNU Texinfo の [DFN[[CODE[@code]]]] 命令は、
[[プログラム]]片 (構文的字句全体) を示します。


[CODE[@code]] が相応しい例:
- プログラムの[[式]]
- プログラムの[[変数名]]
- プログラムの[[関数名]]
- [[プログラム言語]]の[[鍵語]]
- プログラム言語風の言語 (例: Texinfo) の[[命令]]

[CODE[@code]] が相応しくない例:
- [[シェル]]の命令名 → [CODE[@[[command]]]]
- シェルのオプション (単独) → [CODE[@[[option]]]]
- シェル命令全体は [CODE[@code]] より [CODE[@[[samp]]]]
の方が良いこともある。
- [[環境変数]] → [CODE[@[[env]]]]
- 構文的字句より小さな単位の文字列片・文字 → [CODE[@[[samp]]]]
- 打鍵文字列 → [CODE[@[[kbd]]]]

使用例:
- [SAMP[@code{@@code}]]
- [SAMP[The function returns @code{nil}.]]

[6] 印刷版では[[タイプライター]]風に出力します。
Info では[[単引用符]]で括って出力します。

[7] [CODE[@[[command]]]], [CODE[@[[option]]]],
[CODE[@[[env]]]] は新しい命令で、以前は
[CODE[@code]] や [CODE[@samp]] が使われていました。

[[#comment]]

* applet 要素 code 属性 (HTML, XHTML 1)

[25] [[HTML]] の [CODE(HTMLe)[[[applet]]]] 要素の
[DFN[[CODE(HTMLa)[code]] 属性]]は、 applet
が従う applet [RUBYB[部分級][subclass]]の級ファイルの名前またはその級を得るための経路
(級ファイル自体を含みます。) を指定します。

[26] 仕様書:
- [[HTML 4]]
-- [CODE(HTMLe)[applet]] 要素 [CODE(HTMLa)[code]] 属性 


[[#comment]]

** 代替

[27] HTML 4 では、この属性は要素型ごと'''非推奨'''です。
代わりに、 [CODE(HTMLe)[[[object]]]] 要素と
[CODE(HTMLa)[[[classid]]]] 属性を使えます。
(ただし、 [CODE(HTMLa)[classid]] 属性の値は [CODE(SGML)[%[[URI]]]]
なので注意が必要です。もっとも、多くの場合は [CODE(HTMLa)[code]]
値をそのまま使えます。)

[[#comment]]

** 属性値

[28] この属性の値は [CODE(SGML)[[[CDATA]]]] で、
ファイル名 (または[RUBYB[経路][path]] + ファイル名)
を指定します。大文字・小文字を区別します。

相対値は [CODE(HTMLa)[[[codebase]]]] によって解釈されます。

[29] この属性は省略できますが、その場合は [CODE(HTMLa)[[[object]]]]
属性が必須となります。

[[#comment]]

** メモ

[[#comment]]

* メモ