(57)【特許請求の範囲】
【請求項１】
コンテンツデータを処理するデータ処理装置であって、
前記コンテンツデータは想定される使用地域を識別するロケール識別情報を含み、
前記データ処理装置は、
前記コンテンツデータを入力する手段と、
前記コンテンツデータを処理する処理手段と、
使用言語の異なる１つ以上の地域それぞれ毎に、当該地域の使用言語で表されたメッセージを記憶するメッセージ記憶手段と、
前記ロケール識別情報により識別される前記使用地域に基づき前記メッセージ記憶手段から当該地域の使用言語で表された前記メッセージを取り出し、取り出したメッセージを出力するメッセージ出力手段とを備える、データ処理装置。
【請求項２】
コンテンツデータを処理するデータ処理装置であって、
前記コンテンツデータは想定される使用地域を識別するロケール識別情報と、複数の文字コードセットのうちの前記コンテンツデータを記述するための１つ以上の文字コードセットを識別するための文字セット識別情報とを含み、
前記データ処理装置は、
前記コンテンツデータを入力する手段と、
前記データ処理装置で処理可能な１つ以上の文字コードセットを識別する情報を記憶する文字セット情報記憶手段と、
使用言語の異なる１つ以上の地域それぞれ毎に、当該地域の使用言語で表されたメッセージを記憶するメッセージ記憶手段と、
入力された前記コンテンツデータの前記文字セット識別情報と、前記文字セット情報記憶手段の情報とを比較し、比較結果に基づき、当該コンテンツデータを記述するための前記文字コードセットが、処理可能な文字コードセットであるか否かを判定する判定手段と、
前記判定手段により前記コンテンツデータを記述するための前記文字コードセットが、処理可能な文字コードセットではないと判定されたとき、前記ロケール識別情報により識別される前記使用地域に基づき前記メッセージ記憶手段から当該地域の使用言語で表されたメッセージを取り出し、取り出したメッセージを出力するメッセージ出力手段と、を備える、データ処理装置。
【請求項３】
プロセッサと、
コンテンツデータを入力する手段と、
使用言語の異なる１つ以上の地域それぞれ毎に、当該地域の使用言語で表されたメッセージを記憶するメッセージ記憶手段と、を備えるコンピュータにおけるデータ処理方法であって、
前記コンテンツデータは想定される使用地域を識別するロケール識別情報を含み、
前記データ処理方法は、
入力された前記コンテンツデータを前記プロセッサによって処理するステップと、
前記プロセッサによって、前記ロケール識別情報により識別される前記使用地域に基づき前記メッセージ記憶手段から当該地域の使用言語で表された前記メッセージを取り出すステップと、
前記取り出されたメッセージを、前記プロセッサによって外部に出力するステップと、を備える、データ処理方法。
【請求項４】
プロセッサと、
コンテンツデータを入力する手段と、
使用言語の異なる１つ以上の地域それぞれ毎に、当該地域の使用言語で表されたメッセージを記憶するメッセージ記憶手段と、
前記プロセッサで処理可能な１つ以上の文字コードセットを識別する情報を記憶する文字セット情報記憶手段と、を備えるコンピュータにおけるデータ処理方法であって、
前記コンテンツデータは想定される使用地域を識別するロケール識別情報と、複数の文字コードセットのうちの前記コンテンツデータを記述するための１つ以上の文字コードセットを識別するための文字セット識別情報とを含み、
前記データ処理方法は、
入力された前記コンテンツデータの前記文字セット識別情報と、前記文字セット情報記憶手段の情報とを比較し、比較結果に基づき、当該コンテンツデータを記述するための前記文字コードセットが、処理可能な文字コードセットであるか否かを判定するステップと、
前記判定するステップにおいて前記コンテンツデータを記述するための前記文字コードセットが、処理可能な文字コードセットではないと判定されたとき、前記プロセッサが前記ロケール識別情報により識別される前記使用地域に基づき前記メッセージ記憶手段から当該地域の使用言語で表された前記メッセージを取り出すステップと、
前記取り出されたメッセージを、前記プロセッサが外部に出力するステップと、を備える、データ処理方法。
【請求項５】
請求項３に記載のデータ処理方法をコンピュータに実行させるためのプログラムを記録した機械読取可能な記録媒体。
【請求項６】
請求項４に記載のデータ処理方法をコンピュータに実行させるためのプログラムを記録した機械読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置に関して、特に、メッセージを所望される態様で出力可能とするためのデータ処理装置に関する
【背景技術】
【０００２】
近年、ネットワーク化の進展、電子機器の技術向上に伴って、ＷＷＷ（ＷｏｒｌｄＷｉｄｅ  Ｗｅｂ）電子書籍に代表される、電子データからなるコンテンツは急速な発達を遂げている。
【０００３】
このためには、文字のコード化は不可欠であり、様々なエンコーディング方法が提案され、実用化されている。たとえば、わが国で広く使われているシフトＪＩＳはその一例である。
【０００４】
一方、文字の字形（グリフ）の集まり（文字セット）については、各国であるいは国際間で規格化が行なわれている。たとえば、わが国ではＪＩＳ  Ｘ  ０２０１、ＪＩＳ  Ｘ  ０２０８：１９９７が代表的な規格として知られている。
【０００５】
文字セット自体は、構成する文字の字体（グリフ）の集合として定義できるが、通常は文字セットを構成する各文字に文字コードが割り振られている。つまり、エンコーディング（文字を符号化する方法）も同時に定めていることになる。
しかし、エンコーディングと文字セットは本来独立のものであり、例えば上記ＪＩＳ Ｘ ０２０８を表現するエンコーディングとしては、いわゆるＪＩＳコード以外に例えばシフトＪＩＳエンコーディングが挙げられるし、ユニコードでも、対応のゆれの問題はあるものの、基本的には表現可能である。
【０００６】
各国・地域ごとにこのような異なる文字セットは定義されており、それらを全て表現しうるマルチリンガルな（多国語の文字を含む）文字コード空間を定義することを目指した代表的な試みとしてユニコードが提唱され、実用化されつつある。また、このような文字セットの範囲外の文字の表現形態の同一性を保証するための技術も提案されている（たとえば、特許文献１参照）。
【特許文献１】特開２０００−２５０８９７公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
従来の情報機器では一般に、システムが表示するメッセージの言語はそのとき取り扱っているデータではなく、システムに依存している。例えば、スペイン語のコンテンツを表示したいニーズを持つユーザは、通常スペイン語をよく解すると考えられるが、日本語や英語を解するかどうかは分からない。
【００１９】
しかし、従来はどの言語でメッセージを表示するかは、システムによって決められてきたため、例えば英語をベースとしたシステムである限りは英語でメッセージが出力されてきた。もちろん各国語のリソースを持ち、手動で切り替えることができるシステムは多く存在したが、扱うデータに合わせて自動的に適切な言語に切換えてメッセージを表示するようなシステムは提案されていなかった。
【００２０】
それゆえにこの発明の目的は、データが処理されるとき該データ処理が想定される地域で認識可能に、該データ処理に関するメッセージを出力するデータ処理装置を提供することである。
【課題を解決するための手段】
【００２１】
この発明のある局面に従うデータ処理装置は、コンテンツデータを処理するデータ処理装置であって、コンテンツデータは想定される使用地域を識別するロケール識別情報を含み、データ処理装置は、コンテンツデータを入力する手段と、コンテンツデータを処理する処理手段と、使用言語の異なる１つ以上の地域それぞれ毎に、メッセージを記憶するメッセージ記憶手段と、処理手段の処理結果に従って、ロケール識別情報により識別される使用地域に基づきメッセージ記憶手段からメッセージを取り出し、取り出したメッセージを出力するメッセージ出力手段とを備え、メッセージ出力手段は、出力されるメッセージの言語を、ロケール識別情報に応じて変化させる。
【００２２】
この発明の他の局面に従うデータ処理装置は、コンテンツデータを処理するデータ処理装置であって、コンテンツデータは想定される使用地域を識別するロケール識別情報と、複数の文字コードセットのうちのコンテンツデータを記述するための１つ以上の文字コードセットを識別するための文字セット識別情報とを含み、データ処理装置は、コンテンツデータを入力する手段と、データ処理装置で処理可能な１つ以上の文字コードセットを識別する情報を記憶する文字セット情報記憶手段と、使用言語の異なる１つ以上の地域それぞれ毎に、メッセージを記憶するメッセージ記憶手段と、入力されたコンテンツデータの文字セット識別情報と、文字セット情報記憶手段の情報とを比較し、比較結果に基づき、当該コンテンツデータを記述するための前記文字コードセットが、処理可能な文字コードセットであるか否かを判定する判定手段と、判定手段によりコンテンツデータを記述するための文字コードセットが、処理可能な文字コードセットではないと判定されたとき、メッセージ記憶手段からメッセージを取り出し、取り出したメッセージを出力するメッセージ出力手段と、を備え、メッセージ出力手段は、出力されるメッセージの言語を、ロケール識別情報に応じて変化させる。
【発明の効果】
【００２３】
発明によれば、データ処理時には地域が異なっても、データ処理に関連したメッセージを地域毎に認識可能な態様で出力できる。
【発明を実施するための最良の形態】
【００２４】
以下、この発明の各実施の形態について説明する。以下の記述では、特記しない限り、「文字」は記号や数字も含むものとする。また「文字コード空間」は複数種類の文字セットの全体集合であり、各文字セットは文字コード空間の部分集合である。
【００２５】
＜第１の実施の形態＞
図１は、本発明の第１の実施の形態であるコンテンツ表示システムの概略図である。複数のコンテンツ作成装置３０１〜３０２、複数のコンテンツ配布装置３０３〜３０４、複数のコンテンツ表示装置３０５〜３０９およびグリフデータ配布装置３０９からなる。これら装置は通信回線３１０を介して相互に通信する。説明を煩雑にするのを避けるため、グリフデータ配布装置は１台の場合を考えるが、複数台の場合の動作は以下から容易に理解しうる。このことも含め、図中の各装置の個数は本発明にとって本質的ではない。
【００２６】
コンテンツ作成装置３０１の構成例を図２に示す。コンテンツ作成装置３０２も同一の構成を持つものとする。コンテンツ作成装置３０１は、ＣＰＵ(Central processing Unit)４０１、表示部４０２、入力部４０３、補助入力部４０４、コンテンツ表示装置４０５、外部記憶装置４０６、通信部４０７、記述コンテンツデータメモリ４０８、文字セット内容メモリ４０９、文字セット情報メモリ４１０、変換部４１１、配布コンテンツデータメモリ４１２、グリフデータメモリ４１３、およびこれらを相互に通信接続するデータバス４１４を有する。通信装置４０６は通信回線３１０とも接続されている。
【００２７】
表示部４０２としてはディスプレイおよび表示回路を、入力部４０３としてはキーボードを、補助入力部４０４としてはマウスを想定している。コンテンツ表示装置４０５は、後述するコンテンツ表示装置３０５と同一の構成、機能を持つものである。したがってコンテンツ表示装置４０５の表示は表示部４０２とは独立して行なわれることに注意されたい。
【００２８】
すなわち、コンテンツ作成装置３０１はコンテンツ表示装置４０５を接続したパーソナルコンピュータおよびその上で動作するソフトウエアと極めて類似した構成を持っている。コンテンツ作成装置３０１で、表示部４０２に表示できる文字は、ＪＩＳ  Ｘ  ２１０１に含まれる文字、ＪＩＳ  Ｘ  ２１０８：１９９７に含まれる文字、および図３に示されるユニコード２４６０から２４７３、２１６０から２１６９で表される文字とする。コンテンツ作成装置３０１で、表示部４０２に表示できる文字からなる文字セットを、以下「コンテンツ作成装置３０１で表示可能な文字セット」と呼ぶ。また、以下では、コンテンツ表示装置で表示可能な文字セットに含まれる文字を、「コンテンツ表示装置で表示可能な文字」と呼ぶことがある。コンテンツ作成装置３０１で表示可能な文字セットは、コンテンツ表示装置３０５〜３０８、４０５で表示可能な文字とは必ずしも一致していない。これは特に、コンテンツ表示装置３０５〜３０８、４０５がコンテンツ作成装置３０１とは異なった種類のハードウェアで実現される場合には自然なことである。
【００２９】
以下、コンテンツ作成者がデータを作成する際の細かい操作については、多くの場合、本発明にとって本質的ではないし、通常のパーソナルコンピュータからの類推で容易に理解しうるので、特に必要がない限りは詳細に立ち入らない。
【００３０】
以下の例では、文字コード空間としては１６ビットのユニコードを想定し、他の文字セットはその部分集合と考えるが、これはあくまでも一つの例であり、本発明の内容を限定するものではない。
【００３１】
以下、特記しない限り、文字列は１６ビットユニコードで内部表現されているとする。また、特に必要がない限り、説明を煩雑にしないためにファイル名を明示しない。以下「セーブ」とはメモリから外部記憶装置にファイルとして書き出すこと、「ロード」とは外部記憶装置からメモリにファイルの内容を読み出すことを意味する。
【００３２】
図４は、コンテンツ作成装置３０１を用いて、コンテンツ作成者が配布コンテンツを作成する際のフローチャートである。以下これを用いて、コンテンツ作成装置３０１の動作を詳細に説明する。
【００３３】
コンテンツ作成者は、記述コンテンツデータメモリ４０８内にコンテンツの記述を示す記述コンテンツデータを作成して、外部記憶装置４０６にセーブする（ステップＳ５０１）。ここで、記述コンテンツデータの形式はあらかじめ定義されたＸＭＬの書式に従って図５のように記述されるとする。以下、この例を用いて作成したコンテンツデータを「サンプルコンテンツ」と呼び、これを用いて説明するが、本発明は、ＸＭＬで記述されたコンテンツデータに限定されるものではない。コンテンツ作成者は、表示部４０２に図５のように表示される記述コンテンツデータを入力部４０３、補助入力部４０４を用いて編集する。
【００３４】
以下図５の＜ｂｏｏｋ＞タグの子供要素（＜ｂｏｏｋ＞と＜／ｂｏｏｋ＞に挟まれた部分）を「コンテンツ本文データ」と呼ぶことがある。
【００３５】
図５の書式について、後に必要となる範囲で簡単に説明しておく。２行目のＤＯＣＴＹＰＥ宣言にあるように、このコンテンツ表示システムではＢＯＯＫ.ＤＴＤという文書型定義（ＤＴＤ）ファイルを用いる。この文書型定義ファイルは、このコンテンツ表示システムで扱われる全てのコンテンツで共通とする。
【００３６】
＜ａｕｔｈｏｒ＞タグは著者名を表すタグであり、子供要素の文字列が著者名となっている。特に、＜ａｕｔｈｏｒ＞タグの子供要素にある「＆＃ｘｆａ１１；」は、文字参照と呼ばれる形式であり、ｆａ１１というユニコードで表される文字を示している。これは、「崎」の異体字（ＪＩＳ  Ｘ  ２１０８：１９９７に収録されている「崎」とは異なるグリフを持つ）を示す。コンテンツ作成者は、ｆａ１１というユニコードで表される文字のように、コンテンツ作成装置３０１で表示可能な文字セットに含まれない文字はこのような形式で入力するものとする。なお、後述するように、コンテンツ作成装置３０１で表示可能な文字についても文字参照形式で書くことを許容するものとする。
【００３７】
＜ｔｅｘｔ＞タグは本文を表すタグであり、子供要素の文字列が本文テキストである。特に、矢印ＡとＢで示す○付きの文字（ＪＩＳ  Ｘ  ２１０１、ＪＩＳ  Ｘ  ２１０８：１９９７にいずれも収録されていない）に注意する。
【００３８】
＜ｉｍａｇｅ＞タグは本文とともに表示される画像を表すタグである。ｆｉｌｅｎａｍｅ属性は表示される画像のファイル名を表す。＜ｉｍａｇｅ＞タグの子供要素である＜ｃａｐｔｉｏｎ＞タグは、画像と同時に表示されるテキストを表すタグであり、その子供要素の文字列が表示されるテキストを表す。特に、＜ｃａｐｔｉｏｎ＞タグの子供要素にある「＆＃ｘ９ａｄ９；」は、文字参照形式でユニコードで９ａｄ９の文字を示している。これは、「高」の異体字（ＪＩＳ  Ｘ  ２１０８：１９９７に収録されている「高」とは異なるグリフを持つ）を示す。このような書き方をしているのは、９ａｄ９というユニコードを持った文字がコンテンツ作成装置３０１で表示可能な文字セットに含まれていないためである。記述例の中に含まれる画像のファイルもコンテンツ作成者が用意するものとする。
【００３９】
＜ｓｏｕｎｄ＞タグは本文とともに再生される音声を表すタグであり、ｆｉｌｅｎａｍｅ属性は再生される音声データのファイル名を表す。
【００４０】
なお、図５の例では、コンテンツ作成装置３０１で表示可能な文字セットに含まれていない文字のみを文字参照形式で記述しているが、コンテンツ作成装置３０１で表示可能な文字セットに含まれる文字でも、文字参照形式で書くことをコンテンツ作成装置３０１では許している。図６の例では、２４６０、２４６１というユニコードで表現される○付きの数字が、コンテンツ作成装置３０１で表示可能な文字であるが、文字参照形式で記述されている。
【００４１】
このような記述が可能なようにコンテンツ作成装置３０１を構成する利点は、ある文字がコンテンツ作成装置３０１で表示可能な文字であるか否かが不明な場合に、コンテンツ作成者が、その都度確認せずとも、文字参照形式で記述することで、記述が継続できることである。
【００４２】
なお、ここでは、コンテンツ作成装置３０１で表示可能な文字セットに含まれない文字を表示可能な文字セットで表現する方法として、ＸＭＬで一般に用いられている形式を用いているが、ＸＭＬ形式でコンテンツを記述するか否かに関わらず、このような形式はここで用いた文字参照形式に限られるものではない。コンテンツ作成装置３０１で表示可能な文字セットに含まれない文字を、表示可能な文字セットに含まれる文字の組み合わせで一意的に表現する規則を与え、コンテンツ表示装置４０５で元の文字コードを復元することが可能な形式であれば、有効に機能する。また、以下では、このような表現を行なわないで文字を記述することを「文字を直接記述する」と表現することがある。
【００４３】
この例では文字セットとして、「ＪＩＳ  Ｘ  ２１０１」、「ＪＩＳ  Ｘ  ２１０８」、「ＣＩＲＣＬＥＤ＿ＮＵＭ」および「ＭＩＳＣ＿ＫＡＮＪＩ」の４種類の文字セットを用いる。
【００４４】
「ＪＩＳ  Ｘ  ２１０１」は、名前の通り、ＪＩＳ  Ｘ  ２１０１で定められた文字セットであり、通常はパーソナルコンピュータの世界で１バイトで表される英数字、記号、半角カタカナを含むものである。
【００４５】
「ＪＩＳ  Ｘ  ２１０８」は、ＪＩＳ  Ｘ  ２１０８：１９９７で定められた文字セットであり、パーソナルコンピュータの世界ではＪＩＳ第１水準、第２水準に収録されている漢字、全角英数字、全角ひらがな、カタカナにほぼ該当する。
【００４６】
「ＣＩＲＣＬＥＤ＿ＮＵＭ」は、名称も含めて、コンテンツ作成者が定義した文字セットであり、その内容は、図５の矢印ＡとＢで示すような○付きの数字１、２、３、…、２０を集めたものとする。
【００４７】
「ＭＩＳＣ＿ＫＡＮＪＩ」も、名称も含めて、コンテンツ作成者が定義した文字セットでありその内容は、上述の「高」の異体字など該当コンテンツデータでは重要ではあるが、「ＪＩＳ  Ｘ  ２１０１」、「ＪＩＳ  Ｘ  ２１０８」のいずれの文字セットにも含まれていない漢字を集めたものとする。
【００４８】
以下の説明では特筆しない限り、「標準文字セット」で「ＪＩＳ  Ｘ  ２１０１」、「ＪＩＳ  Ｘ  ２１０８」を意味する。標準文字の概念は、特定地域で多用される文字セットを、当該地域にてより少ない労力、操作で利用するためのものであり、その他の地域で、コンテンツ表示装置、コンテンツ作成装置、コンテンツ配布装置の使用を制限するものではない。
【００４９】
また、以下の説明で、「ＪＩＳ  Ｘ  ２１０１」、「ＪＩＳ  Ｘ  ２１０８」が標準文字セットとされているのは、日本国内での使用を前提にしたためであり、日本国以外の国や地域でも、その国や地域で使用頻度が高い別の文字セットを適宜標準文字セットとして定めれば以下の説明は該当する。
【００５０】
次いで、コンテンツ作成者は、文字セット内容情報メモリ４０９上に文字セット内容情報を作成して、外部記憶装置４０６にセーブする（ステップＳ５０２）。
ここでは、文字セット内容情報は、文字セットに含まれる文字のユニコードを１６進数で１文字ごとに１行で書き込んだものとする。文字セット「ＣＩＲＣＬＥＤ＿ＮＵＭ」に対応する文字セット内容情報の例を図７に示す。文字セット内容情報７０１は、図５の矢印ＡとＢで示すような○付きの数字１〜２０に相当するユニコード２４６０から２４７３からなる。
【００５１】
文字セット「ＭＩＳＣ＿ＫＡＮＪＩ」に対応する文字セット内容情報の例を図８に示す。文字セット内容情報８０１は、「高」の異体字に相当するユニコード９ＡＤ９，「崎」の異体字に相当するユニコードＦＡ１１からなる。
【００５２】
一方、標準文字セットは、日本国内での使用を前提として作られるコンテンツでは使用頻度が高いと考えられるため、「ＪＩＳ  Ｘ  ２１０１」、「ＪＩＳ  Ｘ  ２１０８」に対応する文字セット内容情報がそれぞれ「ｊｉｓｘ２１０１．ｌｓｔ」、「ｊｉｓｘ２１０８．ｌｓｔ」という名称の読み取り専用ファイルで、外部記憶装置４０６に当初から保存されているものとする。これによって、文字セット内容情報を作成するコンテンツ作成者の労力が軽減される。
【００５３】
もちろん、標準文字セットについても、コンテンツ作成者が作成した文字セットと同様に、文字セット内容情報をコンテンツ作成者が作成して、外部記憶装置４０６に格納することを前提としてコンテンツ作成装置３０１を構成することも可能であり、本発明の範疇であることに変わりはない。
【００５４】
再び図５の例の説明に戻ると、＜ｃｈａｒ＿ｓｅｔ＞タグは、後述する、文字セット情報のうち、属性で、文字セット名を、属性でロケール識別情報を与えている。
【００５５】
ステップＳ５０２では、コンテンツ作成者は「ＣＩＲＣＬＥＤ＿ＮＵＭ」に対応する文字セット内容情報を「ｐｒｏｐｒｉｅ１．ｌｓｔ」というファイル名で、外部記憶装置４０６に保存するものとする。同様に「ＭＩＳＣ＿ＫＡＮＪＩ」に対応する文字セット内容情報を「ｐｒｏｐｒｉｅ２．ｌｓｔ」というファイル名で、外部記憶装置４０６に保存するものとする。次いでコンテンツ作成者は文字セット情報メモリ４１０上に文字セット情報を作成する（ステップＳ５０３）。
【００５６】
文字セット情報は、図９で示すような構造を持ったテキストデータとする。文字セット情報９０１の各行は、文字セットの名称を二重引用符で囲んだ文字列と、ステップＳ５０２で作成した文字セット内容情報のファイル名を二重引用符で囲んだ文字列、およびロケール識別情報を２重引用符で囲んだ文字列からなり、その間はカンマで区切られた、いわゆるＣＳＶ（Ｃｏｍｍａ―Ｓｅｐａｒａｔｅｄ  Ｖａｒｉａｂｌｅ）データとなっている。
【００５７】
ロケール識別情報は、前述の第２の課題で述べたような、同じ文字コードに、異なるグリフが対応する状況が該ロケール識別情報から判別しうるために設けられる。ここでは、ロケール識別情報として、ＩＳＯ３１６６で定められた２文字の国名表記を用いるとする。これによれば例えば日本は「ＪＰ」、米国は「ＵＳ」、スペインは「ＥＳ」と表される。この他の例として、ＩＳＯ６３９で定められた言語コードなども適切に機能すると考えられる。その他のコードでも後に述べるコンテンツ表示装置３０５〜３０８、４０５の動作を定めておけば使用可能である。
【００５８】
標準文字セットの情報については、コンテンツ作成者が文字セット情報に明示的に記述しなくても、記述されていると見なされるように、コンテンツ作成装置３０１を構成することも考えられる。図１０は、そのようなコンテンツ作成装置３０１に対応した文字セット情報の別の構成例である。図１０の文字セット情報１００１は、コンテンツ作成者が定義した文字セットに対応する情報のみを記載している。このような、標準文字セットについてはコンテンツ作成者が記載しなくても良いようにしておくことは、コンテンツ作成者の労力を軽減させ、コンテンツ作成時の誤りを防ぐ効果がある。
【００５９】
ここではロケール識別情報を文字セット情報に含めた例を考えたが、コンテンツ表示システムが使用される地域や言語が暗黙のうちに了解されているようなコンテンツ表示システムでは、これを文字セット情報に明示する必要は必ずしもない。
【００６０】
そのような構成に対応した文字セット情報の例を図１１に示す。ここでは文字セット情報１１０１の各行は、文字セットの名称を二重引用符で囲んだ文字列と、ステップＳ５０２で作成した文字セット内容情報のファイル名を二重引用符で囲んだ文字列からなり、ロケール識別情報は含まれていない。このような構成では、後に述べるコンテンツ表示装置３０５〜３０８は、暗黙に特定の地域または言語を指していると仮定して動作することになる。
【００６１】
次いで、記述コンテンツデータが外部記憶装置４０６から記述コンテンツデータメモリ４０８にロードされる（ステップＳ５０４）。このとき、文字セット内容情報メモリ４０９、文字セット情報メモリ４１０にも、その内容が外部記憶装置４０６からロードされる。当初から外部記憶装置４０６にファイルとして存在している「ｊｉｓｘ２１０１．ｌｓｔ」、「ｊｉｓｘ２１０８．ｌｓｔ」に格納されている文字セット内容情報についても、文字セット内容情報メモリ４０９にロードされるとする。
【００６２】
次いで、変換部４１１が記述コンテンツデータを配布するための配布コンテンツデータに変換して外部記憶装置４０６にセーブする（ステップＳ５０５）。
【００６３】
ステップＳ５０５で行なわれる変換処理としては、記述コンテンツデータと配布コンテンツデータの形態、記述フォーマットデータと配布コンテンツデータの関係によって種々のものが考えられるが、その詳細は後述する。
【００６４】
ＣＰＵ４０１は、ステップＳ５０５で変換に成功したかどうかを判断して（ステップＳ５０６）、成功していればステップＳ５０８に処理を進め、失敗した場合は、表示部４０２に表示されるメッセージに従いコンテンツ作成者が問題箇所を確認、修正して（ステップＳ５０７）、この後再びステップＳ５０５に戻る。
【００６５】
ステップＳ５０８に進んだ場合は、ＣＰＵ４０１は、コンテンツ表示装置４０５に、外部記憶装置４０６にある配布コンテンツデータを入力して表示する（ステップＳ５０８）。
【００６６】
図１２に、コンテンツ表示装置４０５の表示例を示す。なお、コンテンツ表示装置４０５の構成および動作は後述するコンテンツ表示装置３０５と同様である。コンテンツウインドウ１２０１に、配布コンテンツデータメモリ４１３の内容が表示されている。図５の記述コンテンツデータでは文字参照形式で書かれていた文字（「崎」の異体字と「高」の異体字）がそれぞれの字形に変換されて表示されているのに注意する。また図５の記述コンテンツデータでは＜image＞タグに対応していた部分が、画像として表示されている。スクロールバー１２０２はコンテンツ作成者が表示をスクロールしたい場合に用いるものである。ＥＸＩＴボタン１２０３が押されるとコンテンツ表示装置４０５は終了するが、ステップＳ５０８では用いられない。
【００６７】
コンテンツ表示装置４０５で正常に表示されていれば（ステップＳ５０９）、処理はステップＳ５１０に進み、そうでない場合は処理はＳ５０７に戻る。ステップＳ５０９における「正常に表示されている」とは、後述するコンテンツ表示装置３０５のステップＳ２０７を経由して処理が終了した場合とする。
【００６８】
補助入力部４０４から「ＯＫ」が入力されると（ステップＳ５１０）処理は終了し、それ以外の文字列が入力されると処理はＳ５０７に戻る。
【００６９】
ここで、変換部４１１の構成とステップＳ５０５における動作について説明する。図１３を参照して、変換部４１１はコンテンツデータ解析部１３０１、文字コード検査部１３０２、変換部１３０３、アーカイバ１３０４、データ符号化部１３０５、エラーメッセージ出力部１３０６およびこれら各部を相互に接続するデータバス１３０７を有する。
【００７０】
ステップＳ５０５における変換部４１１の動作を図１４のフローチャートに従い説明する。まず、コンテンツデータ解析部１３０１は、記述コンテンツデータメモリ４０８に格納されているコンテンツデータの本文データの開始タグと終了タグの対応が取れているかを検査する（ステップＳ１４０１）。対応が取れていれば処理はステップＳ１４０２に進む。充たしていなければ処理はステップＳ１４０８に進む。
【００７１】
次いで、コンテンツデータ解析部１３０１は、記述コンテンツデータメモリ４０８に格納されているコンテンツデータの開始タグと終了タグのタグの入れ子関係が正しいかどうかを検査する（ステップＳ１４０２）。正しければ処理はステップＳ１４０３に進む。正しくなければ処理はステップＳ１４０８に進む。
【００７２】
ステップＳ１４０１からステップＳ１４０２の処理は、入力されたＸＭＬファイルが、ウェルフォームド（ｗｅｌｌ−ｆｏｒｍｅｄ）であることを検証する、通常のＸＭＬプロセッサで行なわれている処理であり、また本発明にとって本質的なことではないので、詳細説明は略す。
【００７３】
次いで、コンテンツデータ解析部１３０１は、記述コンテンツデータメモリ４０８に格納されているコンテンツデータに含まれるタグ、属性、属性値が規定通りであるかを文書型定義ファイルＢＯＯＫ．ＤＴＤを用いて検査する（ステップＳ１４０３）。規定通りであれば、処理はステップＳ１４０４に進む。正しくなければ処理はステップＳ１４０８に進む。
【００７４】
これは、コンテンツデータが、検証済みＸＭＬ文書（ＶＡＬＩＤ  ＸＭＬ  ＤＯＣＵＭＥＮＴ）であるかどうかを検査することである。これについても通常のＸＭＬプロセッサで行なわれている処理であり、また本発明にとって本質的なことではないので、詳細には立ち入らない。
【００７５】
次いで、コンテンツデータ解析部１３０１は、記述コンテンツデータメモリ４０８に格納されているコンテンツデータの＜ｃｈａｒ＿ｓｅｔ＞タグのｎａｍｅ属性と、ｌｏｃａｌｅ属性が、文字セット情報メモリ４１０の内容と一致しているかどうかを調べる（ステップＳ１４０４）。一致していれば、処理はステップＳ１４０５に進む。正しくなければ処理はステップＳ１４０９に進む。
【００７６】
ここでは文字セット情報メモリ４１０の各行に含まれる文字セット名とロケール識別情報の組の集合が、コンテンツデータの＜ｃｈａｒ＿ｓｅｔ＞タグのｎａｍｅ属性と、ｌｏｃａｌｅ属性の組の集合と一致しているかどうかを検査する。
【００７７】
次いで、文字コード検査部１３０２は、記述コンテンツデータメモリ４０８に格納されているコンテンツ本文データで用いられている文字コードが、文字セット情報メモリ４１０から得られる、このコンテンツで使用される文字セットに含まれているかどうかを、各文字セットについて検査する（ステップＳ１４０５）。ステップＳ１４０５における、文字コード検査部１３０２の動作については後述する。文字コード検査部１３０２から０という終了コードが返れば処理はステップＳ１４０６に進み、１という終了コードが返れば処理はステップＳ１４０９に進む。
【００７８】
図１５に文字コード検査部１３０２のブロック図を示す。文字コード検査部１３０２は、コントローラ３４０１、第１文字コードレジスタ３４０２、文字セット番号レジスタ３４０３、文字番号レジスタ３４０４、第２文字コードレジスタ３４０５、使用禁止領域テーブル３４０６およびこれらを相互に接続するデータバス３４０７を有する。
【００７９】
使用禁止領域テーブル３４０６は、６５５３６個の整数値が格納されたテーブルであり、ｋという文字コードが用いられている文字コード体系（この場合はユニコード）で使用できない領域にあれば（０から数えて）ｋ番目の要素に−１を、そうでなければ０が格納されている。ここでは、使用禁止領域テーブル３４０６の１６進で０ｘＦＦＦＦ番目、０ｘＦＦＦＥ番目、０ｘＦＥＦＦ番目および０ｘＥ０００番目から０ｘＦ８ＦＦ番目の要素に−１が入っており、それ以外は０が入っているものとする。そのようなテーブルの構成例（部分）を図１６に示す。要素４００１は０ｘＤＦＦＥ番目の要素であり、上記の使用禁止領域に含まれないので０が格納されている。要素４００２は０ｘＤＦＦＦ番目の要素であり、同様に０が格納されている。要素４００３は０ｘＥ０００番目の要素であり、上記の使用禁止領域に含まれるので−１が格納されている。要素４００４は０ｘＥ００１番目の要素であり、同様に−１が格納されている。これは、非文字（ＮＯＮ―ＣＨＡＲＡＣＴＥＲ）、ＰＵＡ領域（Ｐｒｉｖａｔｅ  Ｕｓｅ  Ａｒｅａ）、ＢＯＭ（Ｂｙｔｅ  Ｏｒｄｅｒ  Ｍａｒｋ）と呼ばれる領域に含まれる文字コードを使用禁止にしていることを意味する。
【００８０】
もちろん文字コード領域のどの部分を使用禁止にするかによってこのようなテーブルの内容は変わりうるものである。テーブル方式による判定は必須ではないが、文字コードを用いてテーブルにアクセスするだけで判定結果が得られるので、処理効率の高い判定が行なえ、また条件の改変も容易という利点があるので、値の種類の数が、テーブル化することが可能な範囲にある場合は、より好ましい。
【００８１】
図１７のフローチャートに従い、ステップＳ１４０５における文字コード検査部１３０２の動作を説明する。まず、コントローラ３４０１は、コンテンツデータ解析部１３０１からコンテンツ本文データの文字コードを１文字分受け取って第１文字コードレジスタ３４０２に格納する（ステップＳ３５０１）。以下第１文字コードレジスタ３４０２の値をｋで表すことがある。なお、ステップ１６０１と同様に、ステップＳ３５０１においても、コンテンツデータ解析部１３０１は、文字参照形式については、一文字として扱うとする。
【００８２】
コントローラ３４０１は、使用禁止領域文字テーブル３４０６のｋ番目の値を取り出して、それが使用可能領域を示す値にあるかどうかを判定して（ステップＳ３５０２）、使用可能領域にあればステップＳ３４０３に進み、使用禁止領域を示す値であればステップＳ３５１１に進む。
【００８３】
コントローラ３４０１は、文字セット番号レジスタ３４０３を０に初期化する（ステップＳ３５０３）。以下文字セット番号レジスタ３４０３の値をｉで表す。
コントローラ３４０１は、文字番号レジスタ３４０４を０に初期化する（ステップＳ３５０４）。以下文字番号レジスタ３４０４の値をjで表す。
【００８４】
コントローラ３４０１は、文字セット情報メモリ４１０のｉ番目の文字セットの、ｊ番目の文字の文字コードを文字セット内容情報メモリ４０９から取り出して、第２文字コードレジスタ３４０５に格納する（ステップＳ３５０５）。
【００８５】
コントローラ３４０１は、第１文字コードレジスタ３４０３と第２文字コードレジスタ３４０５の値が一致するかどうかを判定して（ステップＳ３５０６）、一致すればステップＳ３５１２に進み、一致しなければコントローラ３４０１は文字番号レジスタ３４０４をインクリメントする（ステップＳ３５０７）。
【００８６】
コントローラ３４０１は、文字番号レジスタ３４０４の値が、文字セットに含まれる文字数と一致するかどうかを判定して（ステップＳ３５０８）、一致すれば文字セット番号レジスタ３４０３をインクリメントし（ステップＳ３５０９）、一致しなければステップＳ３５０５に戻る。
【００８７】
コントローラ３４０１は、文字番号レジスタ３４０４の値が、文字セット情報メモリ４１０で記述されている文字セットの数と一致するかどうかを判定して（ステップＳ３５１０）、一致すれば１という終了コードを返して終了する（ステップＳ３５１１）が、一致しなければステップＳ３５０４に戻る。
【００８８】
ステップＳ３５１１に進んだ場合は、本文データに含まれる文字に、文字セット情報メモリ４１０に示されている文字セットのいずれにも含まれていないか、使用可能な領域にない文字が存在したことを示す。
【００８９】
ステップＳ３５１２に進んだ場合はコンテンツ本文データの最後の文字であるかどうかをコントローラ３４０１がコンテンツデータ解析部１３０１に問い合わせて、最後の文字であればステップＳ３５１３に進み、最後の文字でなければステップＳ３５０１に戻る。
【００９０】
ステップＳ３５１３に進んだ場合は、終了コードとして０を返す。これは、本文データに含まれる文字が全て使用可能な領域にあり、しかも文字セット情報メモリ４１０に示されている文字セットのいずれかに含まれていたことを示す。
【００９１】
ここで示した構成では、各文字セットを独立してコンテンツ本文データと比較しているので、文字セットが互いに重複しても問題が起きないという利点がある。サンプルコンテンツでは、４つの文字セットは特に重複がないものとして考えてきたが、たとえば文字セット「ＭＩＳＣ＿ＫＡＮＪＩ」に対応する文字セット内容情報が図１８に示したようなものであった場合、「ＭＩＳＣ＿ＫＡＮＪＩ」と「ＪＩＳ  Ｘ  ０２０８」はユニコード０ｘ９ＡＤ８「高」について重複している。このような重複を許さないようにコンテンツ作成装置３０１を構成すると、コンテンツ作成者は、各文字セットに含まれる文字が何であるかを正確に知らなければコンテンツを作ることができないことになる。
【００９２】
また、既存の文字セットとは別の観点から文字の集合を定義したい場合、例えば、特定の部首を持った漢字だけを集めた文字セットを定義したい場合などは、既存の文字セットにそれぞれの文字が含まれているかどうかはコンテンツ作成者にとっては重要ではない。このようなことを考えると、文字セット間の重複が許されるようなコンテンツ作成装置３０１の構成は、実用的価値が高い。
【００９３】
なお、ここではステップＳ３５０４などにおいて文字セット情報メモリ４１０に記載された順番に各文字セットを取り出しているが、小さなｉの値に標準文字セットを対応させることによって、第１文字コードレジスタ３４０２と第２文字コードレジスタ３４０５の値が少ない実行回数で一致する確率が高くなり、より高速な処理が行なえる。これは標準文字セットに含まれる文字が、標準文字セットの設定が適切であれば、コンテンツ本文データ内で用いられる確率が高いと考えられるためである。
【００９４】
また、ここでは、コンテンツ本文データから取り出した文字について、使用可能な領域にあるかどうかをステップＳ３５０２で判定しているが、各文字セットの各文字が使用可能な領域に入っていることを確認してから、コンテンツ本文データの各文字が各文字セットのいずれかに含まれているかを判定しても全く結果は同じである。文字セットを構成する文字数がコンテンツ本文データに含まれる文字数より十分小さい場合にはより効率が高い。
【００９５】
なお、ステップＳ３５０４からＳ３５０８で行なっている、文字セットに文字が属するかどうかを判定する処理を、ステップＳ３５０２と同じようにして、文字コードでアクセスできるテーブルを用いて行なうことも可能である。この場合、使用禁止領域テーブル３４０６と別に、同じデータ構造を持ったテーブルを持つように構成することも可能であるが、以下のようにすれば同じテーブルをこの目的にも兼用することができ、格納するメモリの容量を削減できる。すなわち、各文字コードｋに対応する要素には、文字コードｋで表される文字の属する文字セット番号を格納するものとする。使用禁止文字に対応する要素には、−１を格納しているので文字セットの番号と区別がつく。また、コンテンツ中のどの文字セットにも属さない文字に対応する要素には文字セット番号および−１のいずれとも区別がつく値を格納すれば良い。なお、複数の文字セットに属する文字に対応する要素には、そのいずれかの文字セットの番号を格納しておけば、「いずれかに属する」という判定には支障がない。
【００９６】
このようなテーブルの使用禁止文字以外の部分の初期化については、文字セット内容情報メモリ４０９、文字セット情報メモリ４１０を参照して行なっても良いし、対象となる文字セットが定まっているのであれば、あらかじめ作成したものを格納しておいても良い。
【００９７】
次いでアーカイバ１３０４は、コンテンツデータに含まれるファイルを１つのファイルにアーカイブ（ａｒｃｈｉｖｅ）して外部記憶装置４０６にセーブする（ステップＳ１４０６）。具体的には、本文ＸＭＬファイル、＜ｉｍａｇｅ＞タグのｆｉｌｅｎａｍｅ属性で示されている画像ファイル、＜ｓｏｕｎｄ＞タグのｆｉｌｅｎａｍｅ属性で示されている音声ファイル、予め準備されたグリフデータファイルおよびＢＯＯＫ．ＤＴＤを１つのファイルにアーカイブする処理である。アーカイブ後の各ファイルは、１つのファイルとして扱うことができ、復元処理（アンアーカイブ）を行なえば再び元通り別々のファイルとしてアクセスすることができる。
【００９８】
ここでグリフデータとは、コンテンツデータで用いられている文字セットに対応するグリフを示すデータである。サンプルコンテンツでは、「ＭＩＳＣ＿ＫＡＮＪＩ」に対応するグリフデータを格納したファイルがアーカイブされるとする。
【００９９】
ステップＳ１４０６でアーカイブされるグリフデータのデータ構造の例を図１９に示す。グリフデータ３７０１は、文字セット名フィールド３７０２、ロケール識別情報フィールド３７０３、文字数フィールド３７０４、文字コードフィールド３７０５、グリフ３７０６、文字コードフィールド３７０７、およびグリフ３７０８を含む。文字セット名フィールド３７０２には文字セット名が文字列として格納されている。ロケール識別情報フィールド３７０３には、ロケール識別情報が文字列として格納されている。文字数フィールド３７０４には、グリフデータ３７０１に含まれるグリフの数が格納されている。文字コードフィールド３７０５および３７０７には文字セットの文字コードが格納されている。グリフ３７０６および３７０８は字形データそのものである。図１９はいわば模式的な図であって、実際のグリフデータの格納方法は、画像データ、ベクトルデータなど、適切な周知の技術を用いるものとする。
【０１００】
以下のグリフデータ配布装置３０９から送信されるグリフデータも図１９で示されるものと同じ形式とする。
【０１０１】
後にコンテンツ表示装置３０５の説明で明らかになるように、一般性の低い（汎用的でない）文字セットはステップＳ１４０６でコンテンツデータにアーカイブしておく、すなわちコンテンツデータ自身にグリフデータを内蔵しておく方が有利である。逆に一般性の高い文字セット、すなわちコンテンツ表示装置３０５〜３０８、４０５またはグリフデータ配布装置３０９に存在する可能性の高い文字セットについては、グリフデータをコンテンツに内蔵する必要性は小さい。このような処理は、コンテンツ表示装置３０５〜３０８で、利用可能な文字セットがコンテンツ作成者には一般的には知り得ないことが前提となっている。
【０１０２】
標準文字セットに対応するものも含めて、コンテンツデータで用いられているグリフデータを全てコンテンツに内蔵すれば、コンテンツ表示装置３０５〜３０８、４０５で利用可能なグリフデータに依存せずに常に表示可能なコンテンツデータが作成できる。しかし一方ではコンテンツデータのサイズはグリフデータを含むため大きくなる。
【０１０３】
グリフデータをコンテンツデータに全く内蔵しない場合は、コンテンツ表示装置３０５〜３０８で表示可能かどうかはそのとき利用可能なグリフデータに全面的に依存するが、コンテンツデータのサイズを小さく抑えることが可能となり、配信に際してコスト面で有利となる。
【０１０４】
また、ここでは、コンテンツデータに含まれるファイルをそのままアーカイブしているが、各ファイルを、後述するコンテンツ表示装置３０５での処理に都合が良いように別形式のデータに変換してからアーカイブしても差し支えない。もちろんこの場合は、コンテンツ表示装置３０５がそのような別形式のデータを解するように構成されている必要がある。例えば、記述コンテンツデータとは異なるエンコーディングを用いたデータに変換することが考えられる。図５のサンプルコンテンツでは、その第1行に指定されているようにＵＴＦ−８を用いているが、これをシフトＪＩＳにするなどである。このとき、エンコーディングの変換を行なう文字の範囲を、あらかじめ限定しておき、それに含まれない文字は、上述の文字参照形式で表現することも可能である。例えばシフトＪＩＳに変換する場合は、「ＪＩＳ  Ｘ  ２１０１」および「ＪＩＳ  Ｘ  ２１０８」に含まれない文字については、対応するユニコードを文字列で表した、文字参照形式で表現するのである。
【０１０５】
このように、エンコーディングの変換を行なう対象を、変換先のエンコーディング方法で記述可能な文字セット、またはそのサブセットに限り、それ以外の文字は文字参照形式またはそれに準じる形式で表現することで、変換先のエンコーディング方法では記述できない文字も表現可能となる。
【０１０６】
次いでデータ符号化部１３０５は、ステップＳ１４０６によって生成されたファイルを符号化して、外部記憶装置４０６に書き出して（ステップＳ１４０７）終了する。ここでは、データ符号化部１３０５では、ファイルをＬＺ７７方式で圧縮する。データ符号化部１３０５で行なう符号化については、これに限られるものではない。例えば、他の圧縮方式を用いることは当然考えられるし、コンテンツの流通段階で、正当なユーザ以外に内容を取り出されたり、改ざんされることを防ぐために暗号化を行なうようにしてもよい。重要なのは、後述するコンテンツ表示装置３０５〜３０８で復号できることである。また符号化の必要がなければ、全く何の符号化を行なわずにそのまま出力してもよい。
【０１０７】
ステップＳ１４０８に進んだ場合は、エラーメッセージ出力部１３０６が、コンテンツデータ解析部１３０１からの情報に基づいて、表示部４０２にエラーメッセージを出力して、終了する。ステップＳ１４０９に進んだ場合は、エラーメッセージ出力部１３０６が、文字コード検査部１３０２からの情報に基づいて、表示部４０２にエラーメッセージを出力して、終了する。
【０１０８】
図２０を参照してエラーメッセージ出力部１３０６は、エラーメッセージ生成部１５０１、文字列メモリ１５０２、文字参照形式生成部１５０３、エラーメッセージテーブル１５０４、エラーメッセージメモリ１５０５およびこれら各部を相互に通信可能に接続するデータバス１５０６を有する。
【０１０９】
図２１のフローチャートに従い、エラーメッセージ出力部１３０６のステップＳ１４０８における処理を説明する。まず、エラーメッセージ生成部１５０１は、問題が検出された箇所のコンテンツデータの部分文字列を、コンテンツデータ解析部１３０１から受け取って文字列メモリ１５０２に格納する（ステップＳ１６０１）。なお、コンテンツデータ解析部１３０１は、文字参照形式については一文字と扱うとする。たとえば、図５の例では、半角の「＆＃ｘｆａ１１；」は一文字と扱われる。
【０１１０】
図２２に示すのは、開始タグと終了タグの対応が取れていないという問題の発生した箇所と対応するコンテンツデータの部分文字列の例である。このような文字列が文字列メモリ１５０２に格納される。
【０１１１】
文字参照形式生成部１５０３は、文字列メモリ１５０２に格納されている文字列のうち、文字セット「ＪＩＳ  Ｘ  ２１０１」、「ＪＩＳ  Ｘ  ２１０８」に含まれない文字（以下「非標準文字」と呼ぶ）を、文字参照形式に置き換える（ステップＳ１６０２）。
【０１１２】
なお、コンテンツ作成装置３０１で表示可能な文字セットは「ＪＩＳ  Ｘ  ２１０１」、「ＪＩＳ  Ｘ  ２１０８」を含んでいるが、全く一致しているわけではないので、コンテンツ作成装置３０１で表示可能な文字セットに含まれる文字でも、ステップＳ１６０２で、文字参照形式に置き換えられるものがあり得ることに注意する。ステップＳ１６０２では図２２に示される文字列メモリ１５０２の内容は、図２３のように置き換えられる。
【０１１３】
エラーメッセージ生成部１５０１は、コンテンツデータ解析部１３０１から、問題の原因を識別するエラーコードを受け取り、エラーメッセージテーブル１５０４を参照して、エラーメッセージに変換してエラーメッセージメモリ１５０５に格納する（ステップＳ１６０３）。
【０１１４】
図２４を参照して、エラーメッセージテーブル１５０４は、メッセージ１９０１、１９０２・・・、１９０９がそれぞれ、エラーコード０、１、・・・、８に対応したエラーメッセージを示している。
【０１１５】
図２４で示したエラーメッセージテーブル１５０４の例にしたがえば、図２３で示した例はエラーコード０に対応する。従って、０番のエラーコードに対応するエラーメッセージがエラーメッセージテーブル１５０４から取り出され、エラーメッセージメモリ１５０５に格納される。
【０１１６】
なお、この例では、コンテンツデータ解析部１３０１から渡されるエラーコードは０から６の整数である。エラーメッセージテーブル１５０４のエラーコード７から８に対応するエラーメッセージは、後述するように文字コード検査部１３０２から出力されるエラーコードである。
【０１１７】
次いでエラーメッセージ生成部１５０１は、エラーメッセージメモリ１５０５に格納されている文字列と、文字列メモリ１５０２に格納されている文字列を連結して表示部４０２にエラーメッセージとして出力する（ステップＳ１６０４）。例えば、図２３で示した例は、図２５で示すエラーメッセージとなる。
【０１１８】
図２６はエラーメッセージ出力部１３０６のステップＳ１４０９における処理のフローチャートである。大部分の処理は、エラーメッセージ出力部１３０６のステップＳ１４０８における処理と共通なので、相違点に絞って説明する。
【０１１９】
エラーメッセージ生成部１５０１は、問題が検出された箇所のコンテンツデータの部分文字列を、文字コード検査部１３０２から受け取って文字列メモリ１５０２に格納する（ステップＳ２１０１）。次のステップＳ２１０２はステップＳ１６０２と同一の処理である。
【０１２０】
次いで、エラーメッセージ生成部１５０１は、文字コード検査部１３０２から、問題の原因を識別するエラーコードを受け取り、エラーメッセージテーブル１５０４を参照して、エラーメッセージに変換してエラーメッセージメモリ１５０５に格納する（ステップＳ２１０３）。文字コード検査部１３０２からは７から８のエラーコードが整数値で渡されるとする。次のステップＳ２１０４はステップＳ１６０４と同一の処理である。
【０１２１】
ここで、ステップＳ１６０２またはステップＳ２１０２で、エラーメッセージに含まれる非標準文字を文字参照形式に置き換えることの意義について述べる。
エラーメッセージに、コンテンツデータの一部分の内容を含めて表示することは、エラーの原因をよりコンテンツデータ作成者に分かりやすくするが、コンテンツデータに含まれる文字コードに制限がなければ、例えば、エラーメッセージをファイルにセーブして別のコンテンツ作成装置に移す場合に、一方のコンテンツ作成装置で表示可能な文字が他方のコンテンツ作成装置で表示可能とは限らないため、内容が正しく表示できないことが考えられる。このような状況を防ぐために、文字参照形式で書かれない文字は、標準文字に限るようにすることは有効である。
また、エラーメッセージを他のコンテンツ作成装置で表示するために、異なるエンコーディングの間での変換が必要な場合があるが、文字セットによっては、必ずしもそのような文字コード変換が行なえるとは限らない。たとえば、ユニコードでは定義されているが、対応するシフトＪＩＳコードが存在しないような文字は多数存在する。したがって、そのような文字を含むユニコードのエラーメッセージをシフトＪＩＳコードに変換して出力するためには、メッセージ内で直接記述する文字を限定する必要がある。
【０１２２】
また、この実施の形態では、コンテンツ記述時に、コンテンツ作成装置３０１で表示可能な文字セットに含まれない文字については、文字参照形式で記述することでこのような文字がコンテンツ本文データに含まれるのを防いでいるため、コンテンツ作成装置３０１ではこの問題は起きないが、コンテンツ作成装置３０１でこのような構成を取らない場合は、エラーメッセージに出現する文字を、表示可能な文字セットまたはその部分集合に制限することは、コンテンツ作成装置３０１自身で表示できない文字をエラーメッセージに含まないようにすることを意味するため、より重要性が高い。
【０１２３】
なお、ここではメッセージ内で直接記述する文字の範囲を標準文字としているが、コンテンツ作成装置３０１で表示可能な文字の範囲であれば、直接記述する文字の範囲を変えても機能する。
【０１２４】
コンテンツ配布装置３０３は、コンテンツ作成装置３０１、３０２で作成された配布コンテンツデータを表示用の表示コンテンツデータに変換するとともに、コンテンツ表示装置３０５〜３０８のユーザに配布するための装置である。
【０１２５】
図２７を参照してコンテンツ配布装置３０３は、ＣＰＵ２２０１、配布コンテンツデータメモリ２２０２、表示部２２０３、入力部２２０４、変換部２２０５、第２形式配布コンテンツデータメモリ２２０６、通信部２２０７およびこれら各部を通信可能に相互接続するデータバス２２０８を有する。通信部２２０７は通信回線３１０にも接続されている。配布コンテンツデータメモリ２２０２には、通信回線３１０を通じて送信された、コンテンツ作成装置３０１、３０２で作成された配布コンテンツデータが複数個格納されているものとする。
【０１２６】
図２８のフローチャートに従いコンテンツ配布装置３０３の動作を説明する。まず、ＣＰＵ２２０１は配布コンテンツデータメモリ２２０２に格納された配布コンテンツデータのリストを表示部２２０３に表示する（ステップＳ２３０１）。表示リストを参照してユーザによる購入コンテンツの選択が入力部２２０４によって入力される（ステップＳ２３０２）。
【０１２７】
次いで変換部２２０５は、選択された配布コンテンツデータを、配布コンテンツデータメモリ２２０２から取り出し、第２形式配布コンテンツデータに変換して、第２形式配布コンテンツデータメモリ２２０６に格納する（ステップＳ２３０３）。次いで、ＣＰＵ２２０１は、第２形式配布コンテンツデータメモリ２２０６に格納された第２形式配布コンテンツデータを出力する（ステップＳ２３０４）。
【０１２８】
ステップＳ２３０３で行なわれる変換処理については、コンテンツ表示システムにおいて、配布コンテンツデータと第２形式配布コンテンツデータとの関係をどのように定めるかに依存している。ここでは、第２形式配布コンテンツデータは、配布コンテンツデータに、コンテンツ配布装置３０３から出力される日時を示すデータを付加したものとする。
【０１２９】
配布コンテンツデータと第２形式配布コンテンツデータとの関係としては多様なものが考えられる。例えば、配布コンテンツデータと第２形式配布コンテンツデータの内容を全く同じ内容とすればステップＳ２３０３における変換部２２０５の動作は単なるコピー操作となる。コンテンツ配布装置３０３を操作したユーザまたはコンテンツ表示装置３０５〜３０８の所有者のみが復号できる機能を持つような暗号化を、配布コンテンツデータに施したものを第２形式配布コンテンツデータとすることも可能である。
【０１３０】
なお、コンテンツ配布装置３０３では課金処理を行なうことが商業目的での使用では実際的であるが、本発明にとって本質的な部分ではないので、説明は省略する。
【０１３１】
コンテンツ表示装置３０５は、コンテンツ作成装置３０１〜３０２から出力された配布コンテンツデータおよびコンテンツ配布装置３０３〜３０４から出力された第２形式配布コンテンツデータのいずれも表示することのできる装置である。以下、特筆しない限り、「配布コンテンツデータ」は、コンテンツ作成装置３０１〜３０２から出力される配布コンテンツデータと、コンテンツ配布装置３０３〜３０４から出力された第２形式配布コンテンツデータの双方を意味する。
【０１３２】
図２９は、コンテンツ表示装置３０５のブロック図である。コンテンツ表示装置３０６〜３０８も同じ構成を持つ。
【０１３３】
図２９を参照してコンテンツ表示装置３０５は、ＣＰＵ２４０１、外部記憶装置２４０２、配布コンテンツデータメモリ２４０３、変換部２４０４、表示コンテンツデータメモリ２４０５、コンテンツデータ解析部２４０６、通信部２４０７、文字セット処理部２４０８、表示部２４０９、アンアーカイバ２４１０およびこれら各部を相互に通信可能に接続するデータバス２４１１を有する。通信部２４０７は通信回線３１０も接続する。外部記憶装置２４０２には、配布コンテンツデータが格納されているとする。
【０１３４】
図３０のフローチャートに従い、コンテンツ表示装置３０５のコンテンツ再生時の動作を説明する。まず、ＣＰＵ２４０１は、外部記憶装置２４０２に格納されている配布コンテンツデータを配布コンテンツデータメモリ２４０３にロードする（ステップＳ２５０１）。ここでは説明を簡潔にするため、外部記憶装置２４０２に格納されている配布コンテンツデータは１つとするが、もちろん、配布コンテンツデータメモリ２４０３に、複数の配布コンテンツデータを格納しておき、ユーザに選択させるようにしてもよい。
【０１３５】
次いで、変換部２４０４が、配布コンテンツデータメモリ２４０３に格納されている配布コンテンツデータを表示コンテンツデータに変換して、表示コンテンツデータメモリ２４０５に格納する（ステップＳ２５０２）。
【０１３６】
ここでは、変換部２４０４で行なわれる変換処理とは、対象となる配布コンテンツデータが第２形式配布コンテンツデータである場合は、コンテンツ作成装置３０１のデータ符号化部１３０５における処理とコンテンツ配布装置３０５の変換部２２０５による変換処理を合わせた変換の、逆の変換に相当する。それ以外の場合は、コンテンツ作成装置３０１のデータ符号化部１３０５における処理の逆の変換に相当する。
【０１３７】
次いで、アンアーカイバ２４１０が、一つのファイルにまとめられた表示コンテンツデータを個々のファイルに分解（アンアーカイブ）する（ステップ２５０３）。これは、コンテンツ作成装置３０１のステップＳ１４０６の処理の逆の処理に相当する。
【０１３８】
次いで、コンテンツデータ解析部２４０６が、コンテンツ本文の＜ｃｈａｒ＿ｓｅｔ＞タグのｎａｍｅ属性の値と、ｌｏｃａｌｅ属性の値を抽出して、文字セット処理部２４０８に送る（ステップＳ２５０４）。
【０１３９】
文字セット処理部２４０８は、ステップＳ２５０４で得られた文字セットが、コンテンツ表示装置３０５で表示可能な文字セットであるかどうかを判定して（ステップＳ２５０５）、表示可能であればステップＳ２５０６に進み、表示可能でなければＳ２５０８に移る。具体的には文字セット処理部２４０８から０という終了コードが返ってくれば表示可能、１という終了コードが返ってくれば表示可能でないと判断する。ステップＳ２５０５における文字セット処理部２４０８の動作については後述する。
【０１４０】
ステップＳ２５０６に進んだ場合は、コンテンツデータ解析部２４０６が、表示コンテンツデータメモリ２４０５に格納されている表示コンテンツデータを解釈して、表示部２４０９で表示する（ステップＳ２５０６）。ここでいう表示とは、＜ｓｏｕｎｄ＞タグのような音声データの記述では音声が再生されるなど、データの種類によって、テキストや画像の視覚的な表示よりも広い意味を指し得るものとする。その表示例は図１２に示されている。この例では、ＸＭＬで記述されたコンテンツを、定められた解釈で画面上にして表示（レンダリング）しているが、本発明は特定のデータ構造やレンダリング方法に限定されない。
【０１４１】
ＣＰＵ２４０１はＥＸＩＴボタン１２０３（図１２参照）を押されたかどうかを判定して（ステップＳ２５０７）押されれば終了、そうでなければステップＳ２５０６に戻る。
【０１４２】
ステップＳ２５０８に進んだ場合は、エラー処理部２２０９が、このコンテンツを表示することができないという意味のメッセージを表示して終了する。
【０１４３】
図３１を参照して文字セット処理部２４０８は、コントローラ２６０１、使用文字セットテーブル２６０２、文字セット番号レジスタ２６０３、文字セットテーブル２６０４、グリフデータメモリ２６０５、エラーメッセージテーブル２６０６およびこれら各部を相互に接続するデータバス２６０７を有する。表示可能文字セットテーブル２６０４およびグリフデータメモリ２６０５は不揮発性メモリとなっている。
【０１４４】
表示可能文字セットテーブル２６０４には、グリフデータメモリ２６０５に対応するグリフのデータが存在する、つまりデータの追加なしにコンテンツ表示装置３０５で表示することが可能な文字セットの情報が、図３２に例を示すフォーマットで格納されている。第１コラム２８０１には文字セットの名称が、第２コラム２８０２には対応するロケール識別情報が格納されている。図３２の例では、コンテンツ表示装置３０５は、追加情報なしに、「ＪＩＳ  Ｘ  ２１０１」の「ＪＩＳ  Ｘ  ２１０８」の２つの文字セットを表示可能なことを示している。もちろん、このときはグリフデータメモリ２６０５に、この２つの文字セットのグリフデータが保持されているとする。
【０１４５】
図３３のフローチャートに従い、文字セット処理部２４０６のステップＳ２５０３の動作を説明する。まず、コントローラ２６０１は、ステップＳ２５０４でコンテンツデータ解析部２４０６から転送された情報を使用文字セットテーブル２６０２に格納する（ステップＳ２７０１）。使用文字セットテーブル２６０２は、表示可能文字セットテーブル２６０４と同じ構造をもっている。図３４にサンプルコンテンツに対応する使用文字セットテーブル２６０２に格納されるデータの例を示す。第１コラム２９０１は文字セット名、第２コラム２９０２は対応するロケール識別情報を表す。
【０１４６】
次いで、コントローラ２６０１は、文字セット番号レジスタ２６０３を０で初期化する（ステップＳ２７０２）。以下、文字セット番号レジスタ２６０３の値をｉで表す。
【０１４７】
次いで、コントローラ２６０１は、使用文字セットテーブル２６０２のｉ番目の文字セットのグリフデータがコンテンツに内蔵されているかどうかを判定する（ステップＳ２７０３）。内蔵されていれば処理はステップＳ２７０９に進む。内蔵されていなければ処理はステップＳ２７０４に進む。サンプルコンテンツで説明すると、使用文字セットテーブル２６０２の３番目の文字セットである「ＭＩＳＣ＿ＫＡＮＪＩ」を内蔵しているので、ｉ＝３のとき処理はステップＳ２７０９に進み、それ以外の値では処理はステップＳ２７０４に進む。
【０１４８】
ステップＳ２７０４に進んだ場合は、コントローラ２６０１は、使用文字セットテーブル２６０２のｉ番目の文字セットが、表示可能文字セットテーブル２６０４に含まれているかどうかを判定する。含まれていれば処理はステップＳ２７０９に進み、含まれていなければ処理はステップＳ２７０５に進む。サンプルコンテンツでは、使用文字セットテーブル２６０２の０番目の文字セットである「ＪＩＳ  Ｘ  ２１０１」と１番目の文字セットである「ＪＩＳ  Ｘ  ２１０８」が、表示可能文字セットテーブル２６０４に含まれているのでｉ＝０、１のとき処理はステップＳ２７０９に進み、それ以外の値では処理はステップＳ２７０５に進む。
【０１４９】
ステップＳ２７０５では、コントローラ２６０１は通信部２４０７、通信回線３１０を介してグリフデータ配布装置３０９に、使用文字セットテーブル２６０２のｉ番目の文字セットに対応するグリフデータの送信をリクエストする。グリフデータ配布装置３０９は、グリフデータを保持しているサーバコンピュータであり、リクエストされたグリフデータを保持していれば、グリフデータをリクエスト元に送信し、保持していなければ、そのことを伝えるデータをリクエスト元に送信することとする。このようなグリフデータ配布装置３０９を実現することは周知の技術で可能なので詳細は略す。
【０１５０】
コンテンツ表示装置３０５の説明に戻って、コントローラ２６０１は、リクエストしたグリフデータが取得できたかどうかをグリフデータ配布装置３０９から受信したデータで判定して（ステップＳ２７０６）、取得できていればステップＳ２７０７に進み、できていなければステップＳ２７１２に進む。
【０１５１】
ステップＳ２７０７では、コントローラ２６０１は受信したデータをグリフデータメモリ２６０５に書き込む。次いで、コントローラ２６０１は、表示可能文字セットテーブル２６０４に、使用文字セットテーブル２６０２のｉ番目の文字セットの文字セット名とロケール識別情報を書き込む（ステップＳ２７０８）。次いでコントローラ２６０１は文字セット番号レジスタ２６０３の値をインクリメントする（ステップＳ２７０９）。次いで、コントローラ２６０１が文字セット番号レジスタ２６０３の値と、使用文字セットテーブル２６０２に含まれている文字セットの数が一致しているかどうかを判定して（ステップＳ２７１０）、一致していればステップＳ２７１１に進み、一致しなければステップＳ２７０３に戻る。
【０１５２】
ステップＳ２７１１では、コントローラ２６０１は、０という値を終了コードとして返す。これは使用文字セットテーブル２６０２に記載されている文字セットが全て表示可能であることを意味する。サンプルコンテンツの場合、文字セット「ＣＩＲＣＬＥＤ＿ＮＵＭ」に対応するグリフデータがグリフデータ配布装置３０９から取得できたとすると、ステップＳ２７１１では、表示可能文字セットテーブル２６０４は図３５に示す内容となっている。図３２で示したものと比較すると、「ＣＩＲＣＬＥＤ＿ＮＵＭ」に対応する情報がステップＳ２７０８の処理によって加えられている。「ＭＩＳＣ＿ＫＡＮＪＩ」はサンプルコンテンツに内蔵されているので、これでサンプルコンテンツに含まれる文字セットは全て表示可能になっている。
【０１５３】
ステップＳ２７１２では、コントローラ２６０１はエラーメッセージを出力する。エラーメッセージテーブル２６０６は、複数種類のロケール識別情報ごとに異なるエラーメッセージを格納したテーブルである。その例を図３６に示す。第１コラム３１０１にはロケール識別情報を示す文字列が、第２コラム３１０２には対応するエラーメッセージが格納されている。ただし「ＤＥＦＡＵＬＴ」とロケール識別情報にあるのはデフォルトで出力されるエラーメッセ―ジを示す。
【０１５４】
ステップＳ２７１２では、表示可能文字セットテーブル２６０４のｉ番目の文字セットが表示可能とならなかったことを意味するので、コントローラ２６０１は、対応するロケール識別情報に合わせたエラーメッセージを、エラーメッセージテーブル２６０６から取り出して、表示部２４０９に出力する。
【０１５５】
例えば、ｉ番目の文字セットに対応するロケール識別情報が「ＵＳ」（米国）であれば英語のメッセージ「Ｓｏｍｅ  ｇｌｙｐｈ  ｄａｔａ  ｉｓ  ｍｉｓｓｉｎｇ」が、「ＥＳ」(スペイン）であればスペイン語のメッセージが同様に出力される。
【０１５６】
エラーメッセージテーブル２６０６に該当するロケール識別情報がなければ、「ＤＥＦＡＵＬＴ」に対応するエラーメッセージが出力される。「ＤＥＦＡＵＬＴ」というロケール識別情報をエラーメッセージテーブル２６０６に用意したのは、全てのロケールに対応したエラーメッセージを用意することに伴う工数、必要となるメモリの容量などのコストを削減することが可能になるためである。
【０１５７】
ここで述べたような、コンテンツデータのロケール識別情報を参照してコンテンツ表示装置３０５からメッセージを出力することの利点としては、コンテンツの主たる使用者と思われるユーザに合わせたメッセージが出力できることがある。例えば、スペイン語のコンテンツを表示したいニーズを持つユーザは、通常スペイン語をよく解すると考えられるが、日本語や英語を解するかどうかは分からない。そこで、コンテンツに含まれるロケール識別情報を元にメッセージを表示するように構成したのである。
【０１５８】
ここでは主にエラー時に出力されるメッセージを取り扱っているが、それ以外の通常操作のメッセージについても、同様にコンテンツのロケール識別情報を参照して表示することの有効性は明らかである。
【０１５９】
次いで、コントローラ２６０１は、１という値を終了コードとして返して（ステップＳ２７１３）終了する。
【０１６０】
ここでメッセージの内容として、表示可能とならなかった文字セットの名称を表示することや、ロケール識別情報に合わせたメッセージを表示する際に、常に「ＤＥＦＡＵＬＴ」のロケール識別情報に対応したメッセージも並列して出力することなどのバリエーションが採用されてもよい。
【０１６１】
また、コンテンツ表示装置３０５は、用意したエラーメッセージテーブル２６０６にあるエラーメッセージを表示するのに十分なグリフデータを持たない場合には、「ＤＥＦＡＵＬＴ」のロケール識別情報に対応したメッセージを出力するなどのバリエーションについても同様である。
【０１６２】
また、ここでは、文字セット処理部２４０８は、コンテンツにグリフが内蔵されていない文字セットであるかをチェックして、内蔵されていないものについて、コンテンツ表示装置３０５で表示可能であるかをチェック、さらに表示可能でないことが分かったものについて、グリフ配布装置３０９にグリフデータアクセスするという手順を取っているが、この手順を入れ替えることも目的によっては適切である。たとえば、グリフデータの更新が頻繁に考えられ、更新されたデータの方が一般に内容がより適切と考えられる場合は、グリフ配布装置３０９にアクセスして、対応するグリフデータが受信できない場合のみ、コンテンツ表示装置３０５で現在表示可能な文字セットであるかどうかをチェックして、最後にコンテンツに内蔵されているかどうかをチェックするという手順も考えられる。もちろんこのようなバリエーションが採用されてもよい。
【０１６３】
また、ここでは、コンテンツ表示装置３０５は、文字セット処理部２４０８によって配布コンテンツデータに含まれる文字セットのあるものが表示可能でない場合には、配布コンテンツデータの表示を中止しているが、このような場合も配布コンテンツデータの表示を続行するような構成とすることも考えられる。この場合、表示ができない文字セットに属する文字については、本来のフォントの代用となる文字を、たとえば「＝」や空白を表示するなどの取り決めを行なっておけば良い。
【０１６４】
＜第２の実施の形態＞
発明の第２の実施の形態は、第１の実施の形態と類似しているが、コンテンツデータに、メッセージを出力する際の言語を決定するためのロケール識別情報を格納する領域を、文字セット情報と独立して設けたものである。そのようなコンテンツデータの記述例を図３７に示す。図中の＜ｐｒｉｎｃｉｐａｌ＿ｌｏｃａｌｅ＞タグ３２０１が、図５で示したサンプルコンテンツに比べて新たに追加されたタグである。第１の実施の形態との動作の違いは以下の通りである。
【０１６５】
第１の実施の形態のステップＳ２７１２において、コントローラ２６０１が、表示可能文字セットテーブル２６０４のｉ番目の文字セットに対応するロケール識別情報に対応するロケール識別情報の代わりに、＜ｐｒｉｎｃｉｐａｌ＿ｌｏｃａｌｅ＞タグ３２０１の子供要素文字列をロケール識別情報として取り出し、それに対応するエラーメッセージを、エラーメッセージテーブル２６０６から取り出して、表示部２４０９に出力する。もちろん、＜ｐｒｉｎｃｉｐａｌ＿ｌｏｃａｌｅ＞タグ３２０１を使用可能にするために、文書定義ファイルＢＯＯＫ.ＤＴＤや、コンテンツデータ解析部１３０１、コンテンツデータ解析部２４０６などの変更は必要である。
【０１６６】
なお、ここではＸＭＬ形式で、ロケール識別情報を追加しているが、これは、ＸＭＬ形式のコンテンツデータを扱う例で説明しているためであり、これに限られるものではない。
【０１６７】
ロケール識別情報の効果について付言すれば、ユニコードでは同じ文字コードが割り当てられながら、用いられる地域によって異なるグリフを持つ文字についても、含まれる文字セットのロケール識別情報が異なれば、区別して扱われるため、混同が生じない。例えば、ロケール識別情報に「ＪＰ」とある文字セットのグリフデータではユニコード０ｘ７６Ｆ４に図４０で示されるグリフ、ロケール識別情報に中国を示す「ＣＮ」とある文字セットのグリフではユニコード０ｘ７６Ｆ４に図４１で示されるグリフを対応させるように文字セットのグリフデータを作成すれば、同じ文字コードだからといって混同が起きることはない。
【０１６８】
したがって、ユニコードに限らず、同じコードが異なるグリフに割り当てられる可能性のあるような文字コード体系で、文字セットを定義して使用する場合に効果を発揮する。
【０１６９】
＜第３の実施の形態＞
第３の実施の形態は、第２の実施の形態におけるコンテンツ表示装置３０５から出力されるメッセージを、コンテンツデータに含まれるロケール識別情報に合わせて決定するという考え方を、コンテンツ作成装置３０１にまで広げたものである。
【０１７０】
第２の実施の形態との違いは、ステップＳ１６０４にて、エラーメッセージ生成部１５０１が、エラーメッセージを生成する際に、＜ｐｒｉｎｃｉｐａｌ＿ｌｏｃａｌｅ＞タグ３２０１の子供要素文字列が示すロケール識別情報に合わせてエラーメッセージテーブル１５０４を切り替えることである。図３８を参照して本実施の形態３におけるエラーメッセージテーブルの概念を説明する。ロケール「ＪＰ」に対応した日本語によるエラーメッセージのテーブル３３０１以外に、他のロケール識別情報に対応した言語で書かれたエラーメッセージのテーブル３３０２、３３０３が用意されている。エラーメッセージ生成部１５０１は、ロケール識別情報に合わせてエラーメッセージテーブルを切り替える構成になっている。この場合もロケール識別情報が取り出せなかった場合や、想定外のロケール識別情報が取り出された場合に備えて、デフォルトのエラーメッセージテーブルを用意するとより好ましい。
【０１７１】
上述した実施の形態によれば、コンテンツ作成者がニーズに従って文字セットを定義することを許しながら、配布コンテンツデータの文字コードが意図通りになっていることを保証するようにコンテンツ作成装置３０１を構成したので、より自由なコンテンツデータの作成が、安全に行なえるようになった。
【０１７２】
また、実施の形態によれば、文字セット名と同時にロケール識別情報をも定義しうるように構成したので、ユニコードのような、国または地域によって異なるグリフに共通の文字コードが割り当てられる文字コード体系であっても、文字コードと合わせて提供されるロケール識別情報によって、各国語（地域語）のグリフは区別されるので、意図したものと異なるグリフで表示されるのを回避できる。
【０１７３】
また、実施の形態によれば、扱うデータによって動的にシステムから表示されるメッセージの言語を変更するようにしたため、個々のユーザに合った言語でメッセージが表示され、より快適にコンテンツ表示システムを用いることができる。
【０１７４】
また、実施の形態によれば、コンテンツ作成者が重複した文字をもつ文字セットを定義できるので、コンテンツ作成者は目的に応じてより自由に文字セットを定義してコンテンツ作成に用いることができる。
【０１７５】
また、実施の形態によれば、文字参照形式またはそれに準じる形式を用いることで、コンテンツ作成装置３０１から出力されるメッセージに含まれる、コンテンツデータの内容に出現する文字を制限できるため、メッセージのエンコーディングの変換、複数のコンテンツ作成装置３０１でのメッセージの表示がより確実に行なえる。
【０１７６】
また、実施の形態によれば、文字コードによってアクセスされるテーブルに基づき、コンテンツ内の各文字が使用可能な領域に属するかを判定するようにしたので、効率が高い処理が行え、また条件の改変も容易である。
【０１７７】
また、実施の形態によれば、コンテンツ内の各文字が使用可能な領域に属するかを判定するテーブルを、各文字がいずれの文字セットに属するかを判定するテーブルと兼用するように構成したので、メモリ容量が節約できる。
【０１７８】
また、実施の形態によれば、コンテンツ表示装置３０５で表示可能な文字とコンテンツ表示可能でない文字のいずれも文字参照形式またはそれに準じる形式で記述できるようにしたので、コンテンツ作成者は、ある文字がいずれに属するかをその時点で知らなくても、コンテンツデータの記述を継続することができる。
【０１７９】
また、実施の形態によれば、記述コンテンツデータを別のエンコーディングを用いた配布コンテンツデータに変換する際に、エンコーディングの変換を行なう対象を、変換先のエンコーディング方法で記述可能な文字セット、またはそのサブセットに限り、それ以外の文字は文字参照形式またはそれに準じる形式で表現することで、変換先のエンコーディング方法では記述できない文字も表現可能となる。
【０１８０】
上述の各実施の形態によれば、外部操作に従い作成された文字セットをコンテンツデータを記述するために指定することができるから、コンテンツ作成者は所望する文字セットを外部から操作して作成して、それを指定しながらコンテンツデータを作成できる。
【０１８１】
また、記述されたコンテンツデータが表示されるとき、記述に用いられた文字セットそれぞれについては、コンテンツデータに予め含まれた対応の識別データに基づき特定された地域用グリフデータを参照して表示できる。それゆえに、コンテンツデータにより意図されるものとは異なるグリフで表示されるのを回避できる。
【０１８２】
また、装置本体に内蔵していない文字セットに対応するグリフデータについては、外部から取得する手段を設けるようにしたので、広い範囲の言語、文字をを用いた記述を持ったコンテンツデータがコンテンツ表示装置で表示可能となる。
【０１８３】
＜第４の実施の形態＞
以上説明したコンテンツ作成装置およびコンテンツ表示装置の処理機能は、プログラムで実現される。本実施の形態では、このプログラムはコンピュータで読取可能な記録媒体に格納される。
【０１８４】
図３９には第４の実施の形態に係るコンピュータのハードウェア構成が示されて、該構成は上述の各実施の形態に係るコンテンツ作成装置およびコンテンツ表示装置の構成に適用される。
【０１８５】
図３９を参照してコンピュータは、ＣＲＴ（陰極線管）などからなるモニタ１１０、該コンピュータ自体を集中的に制御するためのＣＰＵ（中央処理装置の略）１２２、ＲＯＭ（Read  Only  Memory）またはＲＡＭ（ランダムアクセスメモリの略）を含んで構成されるメモリ１２４、固定ディスク１２６、ＦＤ（フレキシブルディスク）１３２が着脱自在に装着されて、装着されたＦＤ１３２をアクセスするＦＤ駆動装置１３０、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）１４２が着脱自在に装着されて、装着されたＣＤ−ＲＯＭ１４２をアクセスするＣＤ−ＲＯＭ駆動装置１４０、キーボード１５０、マウス１６０、ペンタブレット１７０、通信回線３１０と、該コンピュータとを通信接続するための通信インターフェィス１８０を含む。これらの各部はバスを介して接続される。
【０１８６】
コンピュータには、カセット形式の磁気テープが着脱自在に装着されて磁気テープをアクセスする磁気テープ装置が設けられても良い。
【０１８７】
上述の記録媒体は、図３９に示されているコンピュータで処理が行なわれるために必要なメモリ、たとえばメモリ１２４がプログラムメディアであってもよいし、また外部記憶装置として図示のない磁気テープ装置およびＣＤ−ＲＯＭ装置駆動装置１４０などのプログラム読取装置が設けられ、そこに記憶媒体である磁気テープまたはＣＤ−ＲＯＭ１４２が挿入されることで読取可能なプログラムメディアであってもよい。いずれの場合においても、格納されているプログラムはＣＰＵ１２２がアクセスして実行させる構成であってもよいし、あるいはいずれの場合もプログラムが一旦読出されて、読出されたプログラムは、所定のプログラム記憶エリア、たとえばメモリ１２４のプログラム記憶エリアにロードされて、ＣＰＵ１２２により読出されて実行される方式であってもよい。このロード用のプログラムは、予め当該情報処理装置に格納されているものとする。
【０１８８】
ここで、上述したプログラムメディアはコンピュータ本体と分離可能に構成される記録媒体であり、磁気テープやカセットテープなどのテープ系、フレキシブルディスクや固定ディスク１２６などの磁気ディスクやＣＤ−ＲＯＭ１４０／ＭＯ（Magnetic Optical Disc）／ＭＤ（Mini Disc）／ＤＶＤ（Digital Versatile Disc）などの光ディスクのディスク系、ＩＣカード（メモリカードを含む）／光カードなどのカード系、あるいはマスクＲＯＭ、ＥＰＲＯＭ（Erasable and Programmable ＲＯＭ）、ＥＥＰＲＯＭ(Electrically ＥＰＲＯＭ)、フラッシュＲＯＭなどによる半導体メモリを含めた固定的にプログラムを担持する媒体であってもよい。
【０１８９】
また、本実施の形態においては、通信回線３１０にインターネットを含む各種の通信ネットワークを適用できるから、これら通信ネットワークからプログラムがダウンロードされて流動的にプログラムを担持する媒体であってもよい。なお記録媒体に格納されている内容としてはプログラムに限定されず、データであってもよい。
【０１９０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１９１】
【図１】本発明の第１の実施の形態であるコンテンツ表示システムの概略図である。
【図２】コンテンツ作成装置の構成例を示す図である。
【図３】ユニコード２４６０から２４７３、２１６０から２１６９で表される文字を示す図である。
【図４】コンテンツ作成装置３０１を用いて、コンテンツ作成者が配布コンテンツを作成する際のフローチャートである。
【図５】コンテンツの記述の１例を示す図である。
【図６】コンテンツの記述の他の例を示す図である。
【図７】文字セット「ＣＩＲＣＬＥＤ＿ＮＵＭ」に対応する文字セット内容情報の例を示す図である。
【図８】文字セット「ＭＩＳＣ＿ＫＡＮＪＩ」に対応する文字セット内容情報の例を示す図である。
【図９】文字セット情報の１例を示す図である。
【図１０】文字セット情報の他の例を示す図である。
【図１１】文字セット情報のさらに他の例を示す図である。
【図１２】コンテンツ表示装置の表示例を示す図である。
【図１３】変換部４１１の構成図である。
【図１４】ステップＳ５０５における変換部４１１の動作を示すフローチャートである。
【図１５】文字コード検査部１３０２のブロック図である。
【図１６】使用禁止領域テーブルの構成を示す図である。
【図１７】ステップＳ１４０５における文字コード検査部１３０２の動作を示すフローチャートである。
【図１８】文字セット「ＭＩＳＣ＿ＫＡＮＪＩ」に対応する文字セット内容情報の一例を示す図である。
【図１９】ステップＳ１４０６でアーカイブされるグリフデータのデータ構造例を示す図である。
【図２０】エラーメッセージ出力部１３０６の構成図である。
【図２１】エラーメッセージ出力部１３０６のステップＳ１４０８における処理フローチャートである。
【図２２】開始タグと終了タグの対応が取れていないという問題の発生した箇所と対応するコンテンツデータの部分文字列の例を示す図である。
【図２３】文字列メモリ１５０２の内容例を示す図である。
【図２４】エラーメッセージテーブル１５０４の内容例を示す図である。
【図２５】エラーメッセージの一例を示す図である。
【図２６】エラーメッセージ出力部１３０６のステップＳ１４０９における処理のフローチャートである。
【図２７】コンテンツ配布装置３０３の構成図である。
【図２８】コンテンツ配布装置３０３の動作を説明するフローチャートである。
【図２９】コンテンツ表示装置３０５のブロック図である。
【図３０】コンテンツ表示装置３０５のコンテンツ再生時の動作を説明するフローチャートである。
【図３１】文字セット処理部２４０８の構成図である。
【図３２】コンテンツ表示装置３０５で表示することが可能な文字セットの情報例を示す図である。
【図３３】文字セット処理部２４０６のステップＳ２５０３の動作を説明するフローチャートである。
【図３４】サンプルコンテンツに対応する使用文字セットテーブル２６０２に格納されるデータの例を示す図である。
【図３５】表示可能文字セットテーブル２６０４の内容例を示す図である。
【図３６】エラーメッセージテーブル２６０６の内容例を示す図である。
【図３７】コンテンツデータの記述例を示す図である。
【図３８】実施の形態３におけるエラーメッセージテーブルの概念を説明する図である。
【図３９】第４の実施の形態に係るコンピュータのハードウェア構成を示す図である。
【図４０】従来の同一の文字コードに当てられる異なるグリフを説明する図である。
【図４１】従来の同一の文字コードに当てられる異なるグリフを説明する図である。
【符号の説明】
【０１９２】
３０１，３０２  コンテンツ作成装置、３０３，３０４，４０５  コンテンツ配布装置、３０５，３０６，３０７，３０８  コンテンツ表示装置、３０９  グリフデータ配布装置、４０９  文字セット内容情報メモリ、４１０  文字セット情報メモリ、４１１  変換部、４１３，２６０５  グリフデータメモリ、１３０１  コンテンツデータ解析部、１３０２  文字コード検査部、１３０６  エラーメッセージ出力部、１５０１  エラーメッセージ生成部、３４０６  使用禁止領域テーブル。
【図１】
0004757241.tif 000002
【図２】
0004757241.tif 000003
【図３】
0004757241.tif 000004
【図４】
0004757241.tif 000005
【図５】
0004757241.tif 000006
【図６】
0004757241.tif 000007
【図７】
0004757241.tif 000008
【図８】
0004757241.tif 000009
【図９】
0004757241.tif 000010
【図１０】
0004757241.tif 000011
【図１１】
0004757241.tif 000012
【図１２】
0004757241.tif 000013
【図１３】
0004757241.tif 000014
【図１４】
0004757241.tif 000015
【図１５】
0004757241.tif 000016
【図１６】
0004757241.tif 000017
【図１７】
0004757241.tif 000018
【図１８】
0004757241.tif 000019
【図１９】
0004757241.tif 000020
【図２０】
0004757241.tif 000021
【図２１】
0004757241.tif 000022
【図２２】
0004757241.tif 000023
【図２３】
0004757241.tif 000024
【図２４】
0004757241.tif 000025
【図２５】
0004757241.tif 000026
【図２６】
0004757241.tif 000027
【図２７】
0004757241.tif 000028
【図２８】
0004757241.tif 000029
【図２９】
0004757241.tif 000030
【図３０】
0004757241.tif 000031
【図３１】
0004757241.tif 000032
【図３２】
0004757241.tif 000033
【図３３】
0004757241.tif 000034
【図３４】
0004757241.tif 000035
【図３５】
0004757241.tif 000036
【図３６】
0004757241.tif 000037
【図３７】
0004757241.tif 000038
【図３８】
0004757241.tif 000039
【図３９】
0004757241.tif 000040
【図４０】
0004757241.tif 000041
【図４１】
0004757241.tif 000042