タグの大文字小文字の区別、使える文字を教えて
タグを自分で定義するときには、大文字と小文字は区別されるのでしょうか。また、分かりやすいように漢字やひらがなのタグを作ってもいいのですか?

回答/富士ソフトABC株式会社 技術調査室
2001/2/6

 タグにおいて、英字の大文字と小文字は区別されます。また、漢字やひらがなを使ってもタグを定義できます。

 XML文書で使用できる文字については、W3C のXML 1.0 勧告 (Extensible Markup Language 1.0 Second Edition)の2.2項で定義されています。使用できる文字は、タブ、改行、復帰、UnicodeおよびISO/IEC 10646で規定する文字で、コードで表わすと0x09、0x0A、0x0D、0x20〜0xD7FF、0xE000〜0xFFFD、0x10000〜0x10FFFF となっています。

  タグの記述については、同じ勧告の3.1項で定義されています。開始タグの記述を例に取って、詳細を説明します。開始タグの記述については、下記のように定義されています。

STag ::= '<' Name (S Attribute)* S? '>'

 最初の「STag ::=」は、開始タグをこのように記述しますと言う意味です。そして、すべてのタグは‘<’と‘>’でくくられます。この中に記述された最初の文字列が、タグとして認識されます。

 Name はタグ名を表わす文字列です。タグ名として使用できる文字は、2.2項で定義されている文字から、タブ、改行、復帰、空白など0x20までの記号を除外した文字となります。Sは、タブ、改行、復帰、空白を表わしています。この部分で改行されていたり、空白が含まれたりしていても問題ないことを表わしています。

  Attribute は、このタグに与えられている属性についての記述で、属性が必要な場合に記述します。

 実際にInternet Explorer 5.5でタグを検証した結果、使用できない文字および組み合わせは以下の場合でした。

 エラーになる文字及び組み合わせ

  • 半角記号を含んだ場合 :<tag$>
  • 半角カナを含んだ場合 :<タグ>
  • 半角数字から始まる場合 :<1tag>
  • 全角の英字、数字、記号を含んだ場合 :<tagA>,<tag1>,<tag!>

(編集注:この記事は一部半角カナ文字を含んでいます)

■「タグに使用できる文字について」の補足

 回答の追加として、ISO/IEC 10646 についてと1文字目と2文字目以降に使用できる文字について、もう少し詳しく説明します。XMLが前提としているISO/IEC 10646 (Unicode)では、文字について以下のように分類されています。

Character Letter Base Character
(半角英字、全角ひらがな、全角カタカナ)
Ideographic Character (漢字など)
Digit (半角数字)
Combining Character (結合文字)
Extender (エクステンダ)

 Character(文字)には、Letter、Digit、Combining Character、Extenderの4種類があり、Letterはさらに、Base CharacterとIdeographic Characterに分かれています。

 要素名と属性名には、1文字目にはLetterクラスの文字(半角英字、全角ひらがな、全角カタカナ、漢字など)に加え、下線(‘_’)とコロン(‘:’)を使用できます。2文字目以降には、それに加えてさらにDigitクラス(半角数字)、Combining Characterクラス、Extenderクラスの文字とハイフン(‘-’)とピリオド(‘.’)が使用できます。2文字目以降で使用できる文字のことを名前文字(Name Character)と呼ぶこともあります。

 大文字、小文字、混在に関係なくXMLから始まる名前は使用できません。現在のXML 1.0仕様では、コロン(‘:’)は名前空間の区切り文字として実験的に使用されているので、名前としての使用を避けるように記述されています。

 Letterクラスには半角英字、全角ひらがな、全角カタカナ、漢字などを含みますが、半角カタカナや全角数字、全角英字、記号などは含まないので、要素名と属性名には使用できないことに注意する必要があります。

変更履歴
■2001/4/25 「『タグに使用できる文字について』の補足」を追加しました。


「Ask XML Expert」

 



XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間