[17] [[XML]] の[[生成規則]] [DFN[[CODE(ABNF)@en[[[Char]]]]]] は、[[XML]] で用いられる[[文字]]を表しています。
本項では [CODE(ABNF)@en[[[Char]]]] やより一般に [[XML]] における[[文字]]の扱いについて扱います。

* 仕様書

[REFS[
- [18] [CITE@EN[Extensible Markup Language (XML) 1.0 (Fifth Edition)]] ([TIME[2013-05-28 20:49:56 +09:00]] 版) <http://www.w3.org/TR/xml/#charsets>
]REFS]

* 定義

[23] [DFN[[RUBYB[[[文字]]]@en[character]]]]は、[[テキスト]]の[RUBY[[[原子]]的][アトミック]]な単位であり、
[[ISO/IEC 10646]] によって規定されるものです。 [SRC[>>18]]

;; [24] [[XML]] は [[ISO/IEC 10646]] を[[文字]]の定義としていますが、 [[Unicode]] にも言及していて、
両者を同じものとみなしているようです。

;; [25] [[非文字]]も[[文字]]に含まれるのか定かではありませんが、後述の通り [[XML]]
で使えるものもあれば、使えないものもあります。[[サロゲート]]は使えません。

* 適合性

- ○: 適合
- ×: 不適合

, ,[[XML 1.0]] (文字),[[XML 1.0]] (文字参照),[[XML 1.1]] (文字),[[XML 1.1]] (文字参照),[[HTML]] (文字),[[HTML]] (文字参照)
,[CODE(char)[[[U+0000]]]] ([CODE(charname)@en[[[NULL]]]])              ,×         ,==,==,==  ,× (置換),==
,[CODE(char)[[[U+0001]]]]-[CODE(char)[[[U+0008]]]]                     ,×         ,==,==,○ (非推奨),×,==
,[CODE(char)[[[U+0009]]]] (タブ)                                       ,○         ,==,==,==         ,==,==
,[CODE(char)[[[U+000A]]]] ([CODE(charname)@en[[[LF]]]])                ,○         ,==,==,==         ,==,==
,[CODE(char)[[[U+000B]]]]                                              ,×         ,==,==,○ (非推奨),×,==
,[CODE(char)[[[U+000C]]]] ([CODE(charname)@en[[[FF]]]])                ,×         ,==,==,○ (非推奨),○,==
,[CODE(char)[[[U+000D]]]] ([CODE(charname)@en[[[CR]]]])       ,○ (正規化),○,○ (正規化),○,○ (正規化),×
,[CODE(char)[[[U+000E]]]]-[CODE(char)[[[U+001F]]]]                     ,×         ,==,==,○ (非推奨),×,==
,[CODE(char)[[[U+007F]]]] ([CODE(charname)@en[[[DEL]]]])               ,○ (非推奨),==,×,○ (非推奨),×,==
,[CODE(char)[[[U+0080]]]]-[CODE(char)[[[U+0084]]]]                     ,○ (非推奨),==,×,○ (非推奨),×,× (置換)
,[CODE(char)[[[U+0085]]]] ([CODE(charname)@en[[[NEL]]]])               ,○         ,==,○ (正規化),○,×,× (置換)
,[CODE(char)[[[U+0086]]]]-[CODE(char)[[[U+009F]]]]                     ,○ (非推奨),==,×,○ (非推奨),×,× (置換)
,[CODE(char)[[[U+2028]]]] ([CODE(charname)@en[[[LS]]]])                ,○      ,==,○ (正規化),○   ,==,==
,[CODE(char)[[[U+D800]]]]-[CODE(char)[[[U+DFFF]]]] ([[surrogate]])     ,×         ,==,==,==         ,○,× (置換)
,[CODE(char)[[[U+FDD0]]]]-[CODE(char)[[[U+FDEF]]]] ([[非文字]])        ,○ (非推奨),==,==,==         ,×,==
,[CODE(char)[[[U+FFFE]]]]-[CODE(char)[[[U+FFFF]]]] ([[非文字]])        ,×,==,==,==                  ,==,==
,[CODE(char)[U+[VAR[???]]FE]]-[CODE(char)[U+[VAR[???]]FF]] ([[非文字]]),○ (非推奨),==,==,==         ,×,==
,[CODE(char)[[[U+10FFFE]]]]-[CODE(char)[[[U+10FFFF]]]] ([[非文字]])    ,○ (非推奨),==,==,==         ,×,==
,[CODE[[[U-00110000]]]]-                                               ,×         ,==,==,==         ,==,× (置換)

** [CODE(ABNF)@en[RestrictedChar]]

[19] [[XML 1.1]] では [CODE(ABNF)@en[[[Char]]]] の一部は [DFN[[CODE(ABNF)@en[[[RestrictedChar]]]]]]
とされ、[[文字参照]]として [[XML]] で利用することはできるものの、直接含めることはできないとしていました。

[REFS[
- [20] [CITE@en[Extensible Markup Language (XML) 1.1 (Second Edition)]] ([TIME[2006-09-29 19:02:09 +09:00]] 版) <http://www.w3.org/TR/xml11/#charsets>
]REFS]

[21] この [CODE(ABNF)@en[[[RestrictedChar]]]] には、 [[XML 1.0]] で利用できる文字も利用できない文字も含まれています。
[[XML 1.1]] の実質的な後継である [[XML 1.0 5e]] にこの扱いは受け継がれていません。

** 互換性文字

[30] [[XML]] の [[Note]] は、[[著者]]に対し、
[[Unicode]] 2.3節に従い「[[compatibility characters]]」を避けることを[RUBYB[勧めて]@en[encourage]]います。
[SRC[>>18]]

;; [31] [[RFC 2119]] [[助動詞]]は用いていないのですが、
「[[Note]]」が[[規定]]の一部かどうかは明記されておらず、
本項がどのような意義を持つのかはよくわかりません。

[35] 
[[制御文字]]の多くや[[非文字]]も同じような扱いを受けています。
この部分は
[[XML 1.0]]
と
[[XML 1.1]]
でやや異なります。

[HISTORY[
[33] この条項は、[[日本]]の専門家と名乗る人々からの[[半角カナ]]排除の陳情 [SRC[>>32]] 
により追加されたようです。

[REFS[
- [32] [CITE@en[Re: Comments on XML Part 1 from Japanese experts]] ([[Tim Bray]]著, [TIME[1997-05-29 00:46:19 +09:00]]) <https://lists.w3.org/Archives/Public/w3c-sgml-wg/1997May/0621.html>
]REFS]
]HISTORY]

* XML における文字の好ましい扱い

[1] 
[CITE[[[Unicode in XML and other Markup Languages]]]]
という [[W3C WG Note]] 
<http://www.w3.org/TR/unicode-xml/>
/ [[UTR #20]]
<http://www.unicode.org/reports/tr20/>
は、[[マーク付け言語]]で使うべきではない[[文字]]などを解説しています。

[37] 
[[平成時代]]中頃に作られ、 
「[[マーク付け言語]]」と言っていますが具体的には主に
[[XML 1.0]]、
ある程度は [[HTML4]] 
が想定されていました。

[39] 
[[Unicode]] や [[W3C]] の[[国際化]]の専門家を称する人々によって開発されました。

[38] 
その後メンテナンスされずに放置され、
[[平成時代]]の末に正式に廃棄されました。
この[[仕様書]]について、開発の過程については [[unicode-xml]] 参照。

[40] 
[[仕様書]]としての位置付け、対象読者はいまいちよくわからず、
標準技術の開発者にも[[著者]]にもあまり参照されることなく、
標準仕様や実装の状況ともあまり関係していません。

;; [41] 
[[W3C]] で[[国際化]]の専門家を称する人々の[[文書]]にはよくあることですが、
専門家の間でだけ盛り上がって外部からはスルーされるパターンのやつです。

;; [42] 
従って役に立つか立たないかでいうと微妙なラインですが、一応は参考くらいになると思って、
軽く眺めておくといいこともあるかもしれませんしないかもしれません。


** マーク付け言語で不適切な文字

[2] 次の文字はマーク付け言語と一緒に使用するのは不適当です。
行分離子 [CODE(char)[[[LS]]]], 段落分離子 [CODE(char)[[[PS]]]], バイト順印 [CODE(char)[[[BOM]]]]
を除いては、 [[UA]] は無視するのもよし。
適当なマークに変換するのは[[著述工具]]の責任だそうです。

,[[符号位置]]	,[[名前]]	,HTML での代替	,メモ
,[CODE(char)[[[U+2028]]]]	,[CODE(char)[[[LINE SEPARATOR]]]]	,[CODE(HTMLe)[[[br]]]]	,>>4
,[CODE(char)[[[U+2029]]]]	,[CODE(char)[[[PARAGRAPH SEPARATOR]]]]	,[CODE(HTMLe)[[[p]]]]	,>.4
,[CODE(char)[[[U+202A]]]]	,[CODE(char)[[[LEFT-TO-RIGHT EMBEDDING]]]]	,[CODE(HTML)[[CODE(HTMLa)[[[dir]]]]=[[ltr]]]]	,>>3
,[CODE(char)[[[U+202B]]]]	,[CODE(char)[[[RIGHT-TO-LEFT EMBEDDING]]]]	,[CODE(HTML)[[CODE(HTMLa)[dir]]=[[rtl]]]]	,>>3
,[CODE(char)[[[U+202C]]]]	,[CODE(char)[[[POP DIRECTIONAL FORMATTING]]]]	,[CODE(HTML)[</[CODE(HTMLe)[[[bdo]]]]>]]	,>>3
,[CODE(char)[[[U+202D]]]]	,[CODE(char)[[[LEFT-TO-RIGHT OVERRIDE]]]]	,[CODE(HTML)[<[CODE(HTMLe)[bdo]] [CODE(HTMLa)[dir]]=ltr>]]	,>>3
,[CODE(char)[[[U+202E]]]]	,[CODE(char)[[[RIGHT-TO-LEFT-OVERRIDE]]]]	,[CODE(HTML)[<[CODE(HTMLe)[[[bdo]]]] [CODE(HTMLa)[dir]]=rtl>]]	,>>3
,[CODE(char)[[[U+206A]]]]	,[CODE(char)[[[INHIBIT SYMMETRIC SWAPPING]]]]	,	,Unicode で非推奨 >>5
,[CODE(char)[[[U+206B]]]]	,[CODE(char)[[[ACTIVATE SYMMETRIC SWAPPING]]]]	,	,Unicode で非推奨 >>5
,[CODE(char)[[[U+206C]]]]	,[CODE(char)[[[INHIBIT ARABIC FORM SHAPING]]]]	,	,Unicode で非推奨 >>5
,[CODE(char)[[[U+206D]]]]	,[CODE(char)[[[ACTIVATE ARABIC FORM SHAPING]]]]	,	,Unicode で非推奨 >>5
,[CODE(char)[[[U+206E]]]]	,[CODE(char)[[[NATIONAL DIGIT SHAPES]]]]	,[CODE(char)[[[U+0660]]]]〜[CODE(char)[[[U+0669]]]]	,Unicode で非推奨 >>5
,[CODE(char)[[[U+206F]]]]	,[CODE(char)[[[NOMINAL DIGIT SHAPES]]]]	,[CODE(char)[[[U+0030]]]]〜[CODE(char)[[[U+0039]]]]	,Unicode で非推奨 >>5
,[CODE(char)[[[U+FEFF]]]]	,[CODE(char)[[[ZERO WIDTH NO-BREAK SPACE]]]]	,[CODE(char)[[[U+2060]]]]	,Unicode で非推奨 >>6
,[CODE(char)[[[U+FFF9]]]]	,[CODE(char)[[[INTERLINEAR ANNOTATION ANCHOR]]]]	,[CODE(HTML)[<[CODE(HTMLe)[[[ruby]]]]><[CODE(HTMLe)[[[rb]]]]>]]	,>>7
,[CODE(char)[[[U+FFFA]]]]	,[CODE(char)[[[INTERLINEAR ANNOTATION SEPARATOR]]]]	,[CODE(HTML)[</[CODE(HTMLe)[rb]]><[CODE(HTMLe)[[[rt]]]]>]]	,>>7
,[CODE(char)[[[U+FFFB]]]]	,[CODE(char)[[[INTERLINEAR ANNOTATION TERMINATOR]]]]	,[CODE(HTML)[</[CODE(HTMLe)[rt]]></[CODE(HTMLe)[ruby]]>]]	,>7
,[CODE(char)[[[U+FFFC]]]]	,[CODE(char)[[[OBJECT REPLACEMENT CHARACTER]]]]	,[CODE(HTMLe)[[[object]]]] など	,>>8
,[CODE(char)[[[U+1D173]]]]〜[CODE(char)[[[U+1D17A]]]]	,"[[タイ]], [[スラー]]など"	,	,>>9
,[CODE(char)[[[U+E0000]]]]〜[CODE(char)[[[U+E007F]]]]	,[CODE(char)[Tags]]	,"[CODE(XML)[[[xml]]:[[lang]]]], [CODE(HTMLa)[lang]]"	,>>9

参考: <http://www.w3.org/TR/unicode-xml/#Suitable>

[4] [CODE(char)[[[LS]]]] と [CODE(char)[[[PS]]]] は、
ブラウザは[[空白]]とし、編集時は適当なマークに置き換えるのが適切です。

[3] [[BIDI]] 系は [Q[Strongly discouraged in [HTML 4.0] ]]
などと書かれていますが、 HTML 4 が激しく非推奨しているように読めて紛らわしい。
(<IW:HTML4:"struct/dirlang.html#h-8.2.4"> にはそんなことは書かれていません。)

<http://www.w3.org/TR/unicode-xml/#Bidi> で、
HTML 4 は文字コードによる[[書字方向]]指定と
HTML のマークによる指定のいずれかだけを使うように求めているが、
文字コードによる指定は処理が複雑になってよくないのでマークを使えと言っています。

ブラウザは無視し、編集時はマークに変換するのがいいそうです。

[5] [[DIS10646]] の遺産。ブラウザは無視したらよく、
編集時は警告でもして削除するのがよいですが、
適当に変換してもいいでしょう。ということです。

[6] [CODE(char)[U+FEFF]] は、 [CODE(char)[ZERO WIDTH NO-BREAK SPACE]] と [CODE(char)[[[BYTE ORDER MARK]]]]
の二つの機能を一つの符号位置に押し込んで、
あとから都合が悪くなったので [CODE(char)[[[ZWNBSP]]]]
の機能を [CODE(char)[U+2026]] [CODE(char)[WORD JOINER]]
として分離したという恥ずかしい前歴があります。

従って今では [CODE(char)[U+FEFF]] を
[CODE(char)[ZWNBSP]] として使用することは Unicode
が非推奨としています。

ブラウザは文中の [CODE(char)[U+FEFF]] は
[CODE(char)[ZWNBSP]] として扱い、編集時は
[CODE(char)[[[ZWJ]]]] に置き換えてしまう[[及び/又は]]警告を発してよいとされています。

[7] Unicode に通称 ruby tag が入った経緯は
<http://www.kobysh.com/tlk/digitalculture/1998-ruby.html>
でも見てください。阿呆らしい。

ブラウザは無視してかまいません。
編集時は次のひとつ以上の動作を取ってかまいません。
- [CODE(char)[U+FFF9]] および [CODE(char)[U+FFFA]]〜[CODE(char)[U+FFFB]] の部分を削除
- [CODE(char)[U+FFF9]] を削除、
[CODE(char)[U+FFFA]] と [CODE(char)[U+FFFB]] をそれぞれ
[CODE(char)[ [ ]] と [CODE(char)[ ] ]] に置換
- 適当なマークに置換

(ブラウザも完全に無視したら駄目だと思うのだけどなあ。
[CODE(HTMLe)[rt]] 部分を削除しないと。)

[8] ブラウザは無視してかまいません。
編集時は適当なマークに置換可能ならそうしてもいいし、
警告を出せるなら出して、削除してしまってかまいません。

[9] ブラウザは無視してかまいません。
編集時には削除しても適当なマークに置換してもかまいません。

** マーク付け言語で適当な書式文字

[10] <http://www.w3.org/TR/unicode-xml/#Format>
がマーク付け言語で使うのは適切だと言っている文字と、
その説明をどうぞ:

,符号位置	,名前	,メモ
,[CODE(char)[[[U+00A0]]]]	,[CODE(char)[[[NO-BREAK SPACE]]]]
,[CODE(char)[[[U+00AD]]]]	,[CODE(char)[[[SOFT HYPHEN]]]]
,[CODE(char)[[[U+034F]]]]	,[CODE(char)[[[COMBINING GRAPHEME JOINER]]]]	,>>11
,[CODE(char)[[[U+0600]]]]	,[CODE(char)[[[ARABIC NUMBER SIGN]]]]
,[CODE(char)[[[U+0601]]]]	,[CODE(char)[[[ARABIC SIGN SANAH]]]]
,[CODE(char)[[[U+0602]]]]	,[CODE(char)[[[ARABIC FOOTNOTE MARKER]]]]
,[CODE(char)[[[U+0603]]]]	,[CODE(char)[[[ARABIC SIGN SAFHA]]]]
,[CODE(char)[[[U+06DD]]]]	,[CODE(char)[[[ARABIC END OF AYAH]]]]
,[CODE(char)[[[U+070C]]]]	,[CODE(char)[[[SYRIAC HARKLEAN METOBELUS]]]]
,[CODE(char)[[[U+0F0C]]]]	,[CODE(char)[[[TIBETAN MARK DELIMITER TSHEG BSTAR]]]]
,[CODE(char)[[[U+180B]]]]	,[CODE(char)[[[MONGOLIAN FREE VARIATION SELECTOR ONE]]]]
,[CODE(char)[[[U+180C]]]]	,[CODE(char)[[[MONGOLIAN FREE VARIATION SELECTOR TWO]]]]
,[CODE(char)[[[U+180D]]]]	,[CODE(char)[[[MONGOLIAN FREE VARIATION SELECTOR THREE]]]]
,[CODE(char)[[[U+180E]]]]	,[CODE(char)[[[MONGOLIAN VOWEL SEPARATOR]]]]
,[CODE(char)[[[U+200C]]]]	,[CODE(char)[[[ZERO WIDTH NON-JOINER]]]]
,[CODE(char)[[[U+200D]]]]	,[CODE(char)[[[ZERO WIDTH JOINER]]]]
,[CODE(char)[[[U+200E]]]]	,[CODE(char)[[[LEFT-TO-RIGHT MARK]]]]
,[CODE(char)[[[U+200F]]]]	,[CODE(char)[[[RIGHT-TO-LEFT MARK]]]]
,[CODE(char)[[[U+2011]]]]	,[CODE(char)[[[NON-BREAKING HYPHEN]]]]
,[CODE(char)[[[U+202F]]]]	,[CODE(char)[[[NARROW NO-BREAK SPACE]]]]
,[CODE(char)[[[U+2044]]]]	,[CODE(char)[[[FRACTION SLASH]]]]
,[CODE(char)[[[U+2060]]]]	,[CODE(char)[[[WORD JOINER]]]]
,[CODE(char)[[[U+2061]]]]	,[CODE(char)[[[FUNCTION APPLICATION]]]]
,[CODE(char)[[[U+2062]]]]	,[CODE(char)[[[INVISIBLE TIMES]]]]
,[CODE(char)[[[U+2063]]]]	,[CODE(char)[[[INVISIBLE SEPARATOR]]]]
,[CODE(char)[[[U+2FF0]]]]〜[CODE(char)[[[U+2FFB]]]]	,Ideographic Description Characters
,[CODE(char)[[[U+303E]]]]	,[CODE(char)[[[IDEOGRAPHIC VARIATION INDICATOR]]]]
,"[CODE(char)[[[U+FE00]]]]〜[CODE(char)[[[U+FE0F]]]], [CODE(char)[[[U+E0100]]]]〜[CODE(char)[[[U+E01DF]]]]"	,Variation Selectors

[11] <http://www.w3.org/TR/2003/NOTE-unicode-xml-20030613/#Format>
では [Q[Combining Grapheme Joiner]]
が [CODE(char)[[[U+0363]]]] になっていますが、
[CODE(char)[U+0363]] は [CODE(char)[[[COMBINING LATIN SMALL LETTER A]]]] だったりします。

[12] ここに挙がっている文字は、大体は、純粋(謎)な文字としての表現と書式 (極端に言えば飾り) との区別が難しい表現を実現するためのものです。
[[ハイフン付け]]関係などは本来マーク + スタイル言語で実現するべきだとは思いますが、
スタイル言語の規格および実装が完成していない現状ではマーク付け言語で使っても仕方がないでしょう。
(といっても文字としても実装されている例はさほどないのだけど。)

ただし、 [CODE(char)[FRACTION SLASH]] などは、
[[MathML]] で実現できると書いているくらいですから、
不適当に分類するべきではないですか。

** 互換写像を持つ文字

[13] [[互換写像]]を持つ文字を含む文章をマークするときの処遇が
<http://www.w3.org/TR/unicode-xml/#Compatibility>
に書かれています。

互換写像を持つ文字には、丸付き文字、片仮名の組み文字、
全角文字、半角文字などが含まれます。
いずれも、本来は組版の機能により実現されるべきものですが、
文字コードの闇歴史で次々と実用化(wされてきました
(そして Unicode はそれを貪欲に取込んでいます)。

互換写像を持つ文字は、一般には機械的にマークに置き換えることはできません。
([[不思議マーク付け]]を機械的に [[Strict]] 化できないのと同じ理由。)
<http://www.w3.org/TR/unicode-xml/#Compatibility>
はどれは機械的に変換できて、どれはとりあえず残すべきかをまとめています。

互換写像を持つ文字は、マーク付けとスタイル指定で置き換えることができます。
ただし、 [[CSS]] ですべてを表現できるわけではありません。
たとえば丸付きは CSS では実現できません。
組み文字のように CSS 3 で実現しそうなものもあります。

[36] [[XML 1.0]] / [[XML 1.1]] の附属書には、[[互換写像]]があっても常用される[[文字]]がいくつかあると書いてあります。
一律で制限するのは危険です。

*** 表現情報付きの文字

[14] <http://www.w3.org/TR/unicode-xml/#Generating>
によれば、「斜体の [Q[hello]]」はマークで実現するべきだが、
プランク定数 (斜体の [Q[h]]) は [CODE(char)[[[U+210E]]]]
を使うべきだと言っています。

[15] しかし >>14 のようなやり方には批判的な意見もあります。
文字コードが深い意味まで介入した結果が
[CODE(char)[U+1D400]]〜[CODE(char)[U+1D7FF]]
([Q[Mathematical Alphanumeric Symbols]]) です。
(数式では普通の [Q[a]] と太字の [Q[a]] と 斜体の
[Q[a]] と・・・は意味が違うかもしれないから云々の結果、
数学用と称して太字だの斜体だの sans serif だの、
沢山の [Q[a]] が符号化されています。)

** 非文字

[16] [[非文字]]符号位置は、応用が内部で使ってもかまいませんが、情報交換に用いるべきではありません。
<http://www.w3.org/TR/unicode-xml/#Noncharacters>

[DEL[
[[XML1.1]] では非文字は除外されていますが、
[[XML1.0]] は制定時期の関係から多くの非文字は除外されていません。
]DEL]

[34] 
これに関する
[[XML]]
本体規格の記述には問題がありました。
[SEE[ [[非文字]] ]]

* 応用

[FIG(quote)[
[3] 
> The use of the word "character" in this document is in the sense of production [2] of [Extensible Markup Language (XML) 1.0 Recommendation (Third Edition)].

[FIGCAPTION[
[15] [CITE@EN[XQuery 1.0 and XPath 2.0 Functions and Operators (Second Edition)]]
<http://www.w3.org/TR/2010/REC-xpath-functions-20101214/#string-types>
]FIGCAPTION]
]FIG]

* 歴史

[26] 適合するものの[RUBYB[非推奨]@en[discouraged]]である[[符号位置]]のリストは、
[[XML 1.0 2e]] に対する[[正誤表]]で2003年3月に追加されました [SRC[>>27]]。

[REFS[
- [27] [CITE@en[Errata in REC-xml-20001006]] ([TIME[2004-11-25 20:26:49 +09:00]] 版) <http://www.w3.org/XML/xml-V10-2e-errata#E46>
]REFS]

;; [28] この時既に [CODE(char)[[[U+0085]]]] が除外されています。

* 関連

[22] [[XMLにおける文字コード]]、[[XMLにおける名前]]の項も参照してください。

* メモ

[FIG(quote)[
[FIGCAPTION[
[29] [CITE@en[RFC 6241 - Network Configuration Protocol (NETCONF)]]
([TIME[2017-05-07 18:00:15 +09:00]])
<https://tools.ietf.org/html/rfc6241#section-2.2>
]FIGCAPTION]

> The
>    authenticated identity of a client is commonly referred to as the
>    NETCONF username.  The username is a string of characters that match
>    the "Char" production from Section 2.2 of '''['''W3C.REC-xml-20001006''']'''.

]FIG]
