(57)【要約】【課題】入れ子構造になっているデータの中のデータ構造を解析なしで容易に検出したり、入れ子構造になっているデータの中に含まれるデータの位置を容易に検索したりすることが可能な携帯可能電子装置を提供する。【解決手段】入れ子構造データを記憶するメモリを有するＩＣカードにおいて、入れ子構造内に存在するデータの識別子、すなわち、入れ子構造データの第２データ表現形式の識別子（外側の識別子：親タグ）を外部からのコマンドによって指定することで、第２データ表現形式のデータから検索し、当該指定された第２データ表現形式の識別子を含む第１データ表現形式の識別子（内側の識別子：子タグ）を出力する。【選択図】      図１
2006072924.tif 000002
【特許請求の範囲】
【請求項１】
識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、
外部装置から受信したコマンドにて指定された第２データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第２データ表現形式の識別子を含む第１データ表現形式の識別子を出力する制御手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項２】
識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、
外部装置から受信したコマンドにて指定された第２データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第２データ表現形式の識別子を含む第１データ表現形式の識別子と当該識別子の存在個数を出力する制御手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項３】
識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、
外部装置から受信したコマンドにて指定された第１データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第１データ表現形式の識別子が含まれる第２データ表現形式の識別子を出力する制御手段と、
を具備したことを特徴とする携帯可能電子装置。
【請求項４】
識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、
外部装置から受信したコマンドにて指定された第１データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第１データ表現形式の識別子が含まれる第２データ表現形式の識別子と当該識別子の存在個数を出力する制御手段と、
を具備したことを特徴とする携帯可能電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、書込み、書換え可能な不揮発性メモリおよびＣＰＵ（セントラル・プロセッシング・ユニット）などの制御素子を有するＩＣ（集積回路）チップを内蔵し、外部から供給される命令データに基づいて各種処理を実行するＩＣカードなどの携帯可能電子装置に関する。
【背景技術】
【０００２】
近年、携帯可能な電子装置として、書込み、書換え可能な不揮発性のデータメモリとそれを制御するためのＣＰＵを有し、外部からのデータの入出力を行なう手段を備えたＩＣチップを内蔵した、いわゆるＩＣカードが産業各方面で開発されている。
【０００３】
ＩＣカードは、従来までの磁気カード等と比較すると、磁気カードは個々のアプリケーションに対応した枚数を保持する必要があったが、１枚に複数のアプリケーションプログラムを保持することができるという利点がある。すなわち、銀行などの金融機関でキャッシュカード等として使用されるＩＣカード、スポーツやレジャー施設での個人認証用のＩＤカード、パチンコ店等の遊技場におけるプリペイドカードなどを同一の１枚のＩＣカードにより実現できる。
【０００４】
この種のＩＣカードは、利用アプリケーションの運用時に必要なデータなどがファイル形式でデータメモリに記憶されており、それぞれのファイルは複数のアプリケーションのそれぞれに対応している（たとえば、特許文献１参照）。個々のファイルは、外部装置からアプリケーション識別名などを入力することにより、選択的に対応するファイルのみが使用可能な状態となるようになっている。アプリケーションを選択した後、データの読出しや書換えなどの運用処理が行なわれる。
【０００５】
一般に、ＩＣカード内のデータは、識別子と長さとデータ値とから構成されていて、識別子によっては、いわゆる入れ子構造になっているものもある。このうような入れ子構造は、たとえば、ＩＳＯ／ＩＥＣ７８１６−４  Ａｎｎｅｘ．Ｄで構造化されたタグフィールド（Ｔａｇ  ｆｉｅｌｄ）などが定義されている。  
また、入れ子構造になっていないデータを直接、読出し、追加、書換え、削除することが可能である（たとえば、特許文献２参照）。
【特許文献１】特開平３−２２４０４７号公報
【特許文献２】特開平１１−２８２９８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところが、上述した従来技術においては、入れ子構造になっていないデータを直接、読出し、追加、書換え、削除することが可能である反面、入れ子構造になっているデータの場合、子タグデータを読出し、書換え、削除する場合、どの親タグデータに属するかを指定する必要があるが、どの親タグデータに属するかを確認することができないという問題がある。また、ある親タグデータの構造に含まれる子タグデータについて確認するには、全てを読出してデータ構造を解析する方法だけであった。
【０００７】
そこで、本発明は、入れ子構造になっているデータの中のデータ構造を解析なしで容易に検出したり、入れ子構造になっているデータの中に含まれるデータの位置を容易に検索したりすることが可能な携帯可能電子装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の携帯可能電子装置は、識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、外部装置から受信したコマンドにて指定された第２データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第２データ表現形式の識別子を含む第１データ表現形式の識別子を出力する制御手段とを具備している。
【０００９】
また、本発明の携帯可能電子装置は、識別子と長さと値とから構成されるデータの表現形式を第１データ表現形式とし、前記値に第１データ表現形式で表現されるデータが少なくとも１つ以上並設されてなる第２データ表現形式のデータを記憶したメモリと、外部装置から受信したコマンドにて指定された第１データ表現形式の識別子を前記メモリ内の第２データ表現形式のデータから検索し、当該指定された第１データ表現形式の識別子が含まれる第２データ表現形式の識別子を出力する制御手段とを具備している。
【発明の効果】
【００１０】
本発明によれば、入れ子構造になっているデータの中のデータ構造を解析なしで容易に検出したり、入れ子構造になっているデータの中に含まれるデータの位置を容易に検索したりすることが可能な携帯可能電子装置を提供できる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態について図面を参照して説明する。  
図１は、本発明の実施の形態に係る携帯可能電子装置としてのＩＣカードを用いたＩＣカードシステムの構成を概略的に示すものである。図１において、このＩＣカードシステムは、ＩＣカード１に対しデータの読出しや書込みを行なう外部装置としてのリーダライタ２、リーダライタ２が接続された上位装置としてのパーソナルコンピュータ（以降、単にパソコンと略称する）３から構成されている。パソコン３は、インターネット、公衆電話網、ＩＳＤＮなどの公衆通信網４を介して外部の情報センタ５へ接続するように構成されている。
【００１２】
パソコン３は、演算部６としてＣＰＵ６ａと主記憶装置としてのメモリ６ｂとを有している。また、パソコン３は、表示手段としてのディスプレイ７、入力手段としてのキーボード８、記憶手段としてのハードディスク装置（ＨＤＤ）９を有している。
【００１３】
ディスプレイ７は、操作手順や作動状態をオペレータに知らせるものである。キーボード８は、オペレータによって操作入力されるものである。ハードディスク装置９には、機密情報である複数のファイル、たとえば、第１電子データファイルＦ１、第２電子データファイルＦ２、第３電子データファイルＦ３などが格納されている。そして、リーダライタ２を介して、パソコン３とＩＣカード１との間で各種データ交換が行なわれるようになっている。
【００１４】
リーダライタ２は、図示しない内部メモリや送受信手段などを有していて、ＩＣカード１に対するデータの読取り、書込み（送受信）などを接触あるいは非接触で行なうものである。接触式ＩＣカードを用いる場合には、リーダライタ２に接触式ＩＣカードを挿入するためのＩＣカード挿入部（図示せず）が設けられ、無線式（非接触式）ＩＣカードを用いる場合には、リーダライタ２と無線式ＩＣカードとの間を通信するための通信部（図示せず）が設けられる。
【００１５】
ＩＣカード１は、たとえば、図２に示すように、カード表面に設けられた磁気ストライプ部１１、リーダライタ２と信号の授受を行なう受信手段および出力手段としての通信部１２、および、１つの（あるいは複数の）ＩＣチップ１３から構成されている。
【００１６】
通信部１２は、無線式ＩＣカード１の場合にはアンテナ部として構成され、リーダライタ２から送信された変調波を非接触で受信したり外部へ変調波を発信したりするようになっている。また、この通信部１２で受信した変調波から内部回路に供給するための電源やクロックを生成するようになっている。また、接触式ＩＣカード１の場合にはコンタクト部として構成され、リーダライタ２に設けられたＩＣカード端子部（図示しない）と接触することにより電源やクロックを得るようになっている。
【００１７】
ＩＣチップ１３は、制御素子としてのＣＰＵ１４、記憶手段してのデータメモリ１５、ワーキングメモリ１６、プログラムメモリ１７から構成され、通信部１２と接続された状態でＩＣカード本体内に埋設されている。  
ＣＰＵ１４は、後述するファイルを選択する処理を実行するほか、各種の判定処理や判断処理およびメモリへの書込みや読出しなどのデータ処理を行なう制御手段である。
【００１８】
データメモリ１５は、アプリケーションデータなどの各種データの記憶に使用され、たとえば、ＥＥＰＲＯＭ（エレクトリカリ・イレーザブル・アンド・プログラマブル・リード・オンリ・メモリ）などの消去（書換え）可能な不揮発性メモリで構成されている。
【００１９】
ワーキングメモリ１６は、ＣＰＵ１４が処理を行なう際の処理データを一時的に保持するための作業用のメモリであり、たとえば、ＲＡＭ（ランダム・アクセス・メモリ）などの揮発性メモリで構成されている。
【００２０】
プログラムメモリ１７は、たとえば、マスクＲＯＭ（リード・オンリ・メモリ）などの書換え不可能な固定メモリで構成されており、上述するような各基本機能を実現するサブルーチンを備えたＣＰＵ１４の制御プログラムなどを記憶している。
【００２１】
なお、ＩＣカード１に登録されているアプリケーションとしては、たとえば、クレジット、ポイントシステム、ＩＤカードなどがあげられる。
【００２２】
データメモリ１５には、たとえば、図３に示すように、複数のアプリケーションに関する情報がファイル構造で記憶されている。このファイル構造は、ＩＳＯ／ＩＥＣ７８１６−４に基づき、色々なフォルダの種類を持ったディレクトリのツリー構造になっており、複数のアプリケーションが登録可能である。
【００２３】
すなわち、図３に示すように、最上位がＭＦ（Ｍａｓｔｅｒ  Ｆｉｌｅ）２１で、その配下に各アプリケーションごとに設定されるフォルダとしてＤＦ（Ｄｅｄｉｃａｔｅｄ  Ｆｉｌｅ）２２，２３，２４が設けられ、さらに、それらの配下に実際にアプリケーションで使われるユーザデータの格納に使用されるＥＦ（Ｅｌｅｍｅｎｔａｒｙ  Ｆｉｌｅ）２５，２６，２７，２８が設けられている構成になっている。
【００２４】
また、ＭＦ２１の配下には、アクセス権を確立するためのキーの格納に使用されるキーＥＦ２９が設けられている。なお、ＤＦは搭載しているアプリケーションに相当する数だけ設けられる。
【００２５】
本実施の形態では、ＩＣカード１には、たとえば、クレジット系としてＸ社向けの１つのアプリケーションが、ポイント系としてＡ社、Ｂ社向けの２つのアプリケーションがそれぞれ格納されている。
【００２６】
そして、本実施の形態では、ＤＦ２２（以後、ＤＦ１とも称す）には、たとえば、クレジットＸ社向けアプリケーション用ファイルとしてＤＦ名が「クレジットＸ社」と設定され、その配下には、クレジットＸ社向けアプリケーションで使用されるＥＦ２５（以後、ＥＦ１−１とも称す）、ＥＦ２６（以後、ＥＦ１−２とも称す）という２つのファイルが存在する。
【００２７】
また、ＤＦ２３（以後、ＤＦ２とも称す）には、たとえば、ポイントＡ社系向けアプリケーション用ファイルとしてＤＦ名が「ポイントＡ社系」と設定され、その配下には、ポイントＡ社系向けアプリケーションで使用されるＥＦ２７（以後、ＥＦ２−１とも称す）、ＥＦ２８（以後、ＥＦ２−２とも称す）という２つのファイルが存在する。このうち、ＥＦ２−１は共通データ、ＥＦ２−２はポイントＡ社系内のそれぞれのデータが格納されている。
【００２８】
ＥＦ２−２に格納されるデータは、たとえば、図４に示すような入れ子構造を持つデータである。すなわち、図４（ａ）に示すように、ポイントＸのデータとして、ポイントＸ識別子（Ｅ１）１０１とポイントＸのデータ長１０２とポイントＸの値１１２とから構成される第２データ表現形式のデータが格納される。上記ポイントＸの値１１２は、上記第２データ表現形式と同じ第１データ表現形式のデータ、すなわち、ポイント値識別子（ＤＦ０１）１０３とポイント値長１０４とポイント値１０５とから構成されるデータ１１３、ポイント上限値識別子（ＤＦ０２）１０６とポイント上限値長１０７とポイント上限値１０８とから構成されるデータ１１４、ポイント最終更新日識別子（ＤＦ０３）１０９とポイント最終更新日値長１１０とポイント最終更新日値１１１とから構成されるデータ１１５が並設されて構成される。このようなデータ構造をいわゆる入れ子構造と呼ばれている。
【００２９】
また、図４（ｂ）に示すように、ポイントＹのデータとして、ポイントＹ識別子（Ｅ２）１２１とポイントＹのデータ長１２２とポイントＹの値１２３とから構成される第２データ表現形式のデータが格納される。上記ポイントＹの値１２３は、上記第２データ表現形式と同じ第１データ表現形式のデータ、すなわち、ポイント値識別子（ＤＦ０１）１２４とポイント値長１２５とポイント値１２６とから構成されるデータ１２７、ポイント上限値識別子（ＤＦ０２）１２８とポイント上限値長１２９とポイント上限値１３０とから構成されるデータ１３１が並設されて構成される。このようなデータ構造をいわゆる入れ子構造と呼ばれている。
【００３０】
また、図４（ｃ）に示すように、ポイントＺのデータとして、ポイントＺ識別子（Ｅ３）１４１とポイントＺのデータ長１４２とポイントＺの値１４３とから構成される第２データ表現形式のデータが格納される。上記ポイントＺの値１４３は、上記第２データ表現形式と同じ第１データ表現形式のデータ、すなわち、ポイント値識別子（ＤＦ０１）１４４とポイント値長１４５とポイント値１４６とから構成されるデータ１４７、ポイント上限値識別子（ＤＦ０２）１４８とポイント上限値長１４９とポイント上限値１５０とから構成されるデータ１５１、ポイント最終更新日識別子（ＤＦ０３）１５２とポイント最終更新日値長１５３とポイント最終更新日値１５４とから構成されるデータ１５５が並設されて構成される。このようなデータ構造をいわゆる入れ子構造と呼ばれている。
【００３１】
図５は、データ識別子を指定することにより読出し・書換え等が行なわれるデータを管理するデータ管理情報を示しており、たとえば、データメモリ１５に格納されている。図５において、２００は登録されている制御情報の数、２０１は登録されている制御情報、２０２は制御情報が追加される領域（空き領域）である。
【００３２】
１つの制御情報２０１は、データ識別子情報２１０、設定アドレス情報２１１、設定可能サイズ情報２１２、および、セキュリティ条件情報２１３から構成されている。データ識別子情報２１０は、外部装置から指定された識別子と当該データ識別子情報とを比較し、一致した場合に後続の処理に使用される。設定アドレス情報２１１は、当該データがカード内のデータメモリ１５のどのアドレスに配置されているかを示す情報である。設定可能サイズ情報２１２は、設定可能なサイズを示す情報であり、本情報の範囲内であれば当該データは可変長にて設定可能である。セキュリティ条件情報２１３は、当該データに対して読出しや書込みを行なう場合に設定されているべきセキュリティ条件である。  
なお、上記データ管理情報の詳細は、たとえば、特開平１１−２８２９８９号公報に記載されているので、それを参照されたい。
【００３３】
図６は、制御情報により所定のアドレスに設定されるデータのフォーマットを示している。データは、制御情報の設定アドレス情報２１１の示すデータメモリ１５上のアドレスに設定されている。図６において、２２０はデータの長さを示すデータ管理情報、２２１はデータの本体部分である。２２２は当該データの正当性管理情報であり、たとえば、データ管理情報２２０およびデータ２２１の排他的論理和などによりデータの正当性の確認に使用される。
【００３４】
図７は、リーダライタ２からＩＣカード１に対して供給される入れ子構造のデータの検索を指示するための命令データ（入れ子構造データ検索コマンド）の構成を示している。入れ子構造データ検索コマンドは、コマンドヘッダ部３０１、および、コマンドヘッダ部３０１のデータ長を示すＬｅ部３０６から構成されている。
【００３５】
コマンドヘッダ部３０１は、コマンドの分類部（ＣＬＡ：ｃｌａｓｓ）３０２、命令部（ＩＮＳ：ｉｎｓｔｒｕｃｔｉｏｎ）３０３、および、パラメータデータ（Ｐ１、Ｐ２）３０４，３０５から構成されている。  
Ｐ１部３０４、Ｐ２部３０５は、検索するデータ識別子を示している。すなわち、たとえば、図４におけるポイントＸのデータ内のポイント最終更新日識別子（ＤＦ０３）１０９を検索する場合は、Ｐ１部３０４に“ＤＦ”、Ｐ２部３０５に“０３”がセットされる。
【００３６】
ＩＣカード１のＣＰＵ１４は、この入れ子構造データ検索コマンドのコマンドヘッダ部３０１のＰ１部３０４とＰ２部３０５にセットされたデータ識別子から、指定されたデータ識別子を探し出し、出力する。
【００３７】
図８は、リーダライタ２から送られた入れ子構造データ検索コマンドを実行した後、ＩＣカード１がリーダライタ２へ出力するレスポンスデータの構成を示している。このレスポンスデータは、入れ子構造データ検索コマンドのＰ１部３０４、Ｐ２部３０５で指定された識別子のＣＰＵ１４による検索結果（指定された識別子を含む識別子情報）がセットされるデータ部４０１、および、処理結果を示すステータスコードがセットされるステータスコード部４０２，４０３から構成されている。  
すなわち、たとえば、図４におけるポイントＸのデータ内のポイント最終更新日識別子（ＤＦ０３）１０９を検索するコマンドを実行した場合は、データ部４０１にはポイントＸ識別子“Ｅ１”とポイントＺ識別子“Ｅ３”がセットされて出力される。
【００３８】
図９は、出力するレスポンスデータが格納されるレスポンス用データメモリの構成を示しており、たとえば、データメモリ１５内に設けられている。このレスポンス用データメモリは、レスポンスデータ長管理情報が格納される領域５０１、および、レスポンスデータが格納される領域５０２から構成されている。
【００３９】
次に、このような構成において入れ子構造データの検索処理について図１０および図１１に示すフローチャートを参照して説明する。  
ＩＣカード１のＣＰＵ１４は、受信されたコマンドがそのコマンドヘッダ３０１に基づいて入れ子構造データ検索コマンドであると判断すると、図５のデータ管理情報から＃１の制御情報２０１を読出す（ステップＳ１００）。
【００４０】
次に、当該＃１の制御情報２０１内の設定アドレス情報２１１で示すアドレスに既にデータが設定されているか否かを確認する（ステップＳ１０１）。データが設定されている場合はステップＳ１０３へ、データが設定されていない場合は後述するステップＳ１１４へ進む。
【００４１】
ステップＳ１０３では、当該データのデータ長管理情報２２０が制御情報２０１内の設定可能サイズ情報２１２の範囲内であるかを確認する。範囲内である場合はステップＳ１０５へ、範囲を超えている場合はステップＳ１０４へ進む。ステップＳ１０４では、データ管理情報異常の応答ステータスをリーダライタ２へ出力する。
【００４２】
ステップＳ１０５では、当該データのデータ正当性管理情報２２２を確認する。正当性が確認できた場合はステップＳ１０７へ、異常である場合はステップＳ１０６へ進む。ステップＳ１０６では、データ正当性管理情報異常の応答ステータスをリーダライタ２へ出力する。
【００４３】
ステップＳ１０７では、制御情報２０１内の設定アドレス情報２１１が示すアドレスのデータを１バイト（Ｂｙｔｅ）読込む。次に、この読込んだデータを確認し（ステップＳ１０８）、次のデータも識別子の一部であると確認された場合は、ステップＳ１０９へ進み、次のデータを読込む。
【００４４】
ステップＳ１０８の確認の結果、次のデータも識別子の一部でないと確認された場合、読込んだ識別子がコマンドのＰ１部３０４、Ｐ２部３０５で指定されている識別子と一致するか否かをチェックし（ステップＳ１１０）、一致する場合はステップＳ１１１へ進み、一致しない場合はステップＳ１１２へ進む。
【００４５】
ステップＳ１１２では、次のデータを１バイト読込み、読込んだ値をデータ長とし、次の識別子に相当するアドレスを求める。次に、ステップＳ１１２で求められた次の識別子に相当するアドレスとデータ長管理情報２２０との整合性を確認し（ステップＳ１１３）、後ろにデータがない場合はステップＳ１１４へ進み、後ろにデータがある場合はステップＳ１１６へ進む。ここで、後ろにデータがあると判定する状態としては、たとえば、求められたアドレスがデータ長管理情報２２０で指定されたデータ長のアドレスの範囲を超えている場合などがある（図１２参照）。
【００４６】
ステップＳ１１６では、ステップＳ１１２で求められた次の識別子に相当するアドレスのデータを１バイト読込む。次に、この読込んだデータを確認し（ステップＳ１１７）、次のデータも識別子の一部であると確認された場合は次のデータを１バイト読込み（ステップＳ１１８）、ステップＳ１１０へ戻る。ステップＳ１１７の確認の結果、次のデータも識別子の一部でないと確認された場合、ステップＳ１１０へ戻る。
【００４７】
ステップＳ１１１では、当該制御情報２０１内のデータ識別子情報２１０を、レスポンス用データメモリのレスポンスデータ長管理情報をオフセットしたアドレスのレスポンスデータに格納し、レスポンスデータ長管理情報に「＋１」する。
【００４８】
ステップＳ１１４では、データ管理情報に、当該制御情報２０１の後に更に次の制御情報２０１があるか否かを確認し、ある場合はステップＳ１１９へ進み、次の制御情報２０１を読出して、ステップＳ１０１へ戻る。ステップＳ１１４の確認の結果、次の制御情報２０１がない場合はステップＳ１１５へ進む。  
ステップＳ１１５では、異常無しの応答ステータスと共にレスポンス用データメモリ（図９参照）内のレスポンスデータ長管理情報分のレスポンスデータをリーダライタ２へ出力する。
【００４９】
なお、上記例では、識別子が１バイト長または２バイト長のみで構成されるデータで説明を行なったが、３バイト以上の識別子が含まれる場合も同様である。また、本例では、長さ情報が１バイト長のみで構成されるデータで説明を行なったが、たとえば、ＩＳＯ／ＩＥＣ７８１６−４  Ａｎｎｅｘ．Ｄで記載されているような、長さ情報が１バイト以上で表現される場合も同様である。
【００５０】
図１３は、リーダライタ２からＩＣカード１に対して供給される入れ子構造の構造データの出力を指示するための命令データ（入れ子構造データ出力コマンド）の構成を示している。入れ子構造データ出力コマンドは、コマンドヘッダ部６０１、および、コマンドヘッダ部６０１のデータ長を示すＬｅ部６０６から構成されている。
【００５１】
コマンドヘッダ部６０１は、コマンドの分類部（ＣＬＡ：ｃｌａｓｓ）６０２、命令部（ＩＮＳ：ｉｎｓｔｒｕｃｔｉｏｎ）６０３、および、パラメータデータ（Ｐ１、Ｐ２）６０４，６０５から構成されている。  
Ｐ１部６０４、Ｐ２部６０５は、検索するデータ識別子を示している。すなわち、たとえば、図４におけるポイントＸのデータ内のポイントＸ識別子（Ｅ１）１０１を出力する場合は、Ｐ１部６０４に“００”、Ｐ２部６０５に“Ｅ１”がセットされる。
【００５２】
ＩＣカード１のＣＰＵ１４は、この入れ子構造データ出力コマンドのコマンドヘッダ部６０１のＰ１部６０４とＰ２部６０５にセットされたデータ識別子から、指定されたデータ識別子の構造を解析し、構造データを出力する。
【００５３】
図１４は、リーダライタ２から送られた入れ子構造データ出力コマンドを実行した後、ＩＣカード１がリーダライタ２へ出力するレスポンスデータの構成を示している。このレスポンスデータは、入れ子構造データ出力コマンドのＰ１部６０４、Ｐ２部６０５で指定された識別子のＣＰＵ１４による解析結果がセットされるデータ部７０１、および、処理結果を示すステータスコードがセットされるステータスコード部７０２，７０３から構成されている。  
すなわち、たとえば、図４におけるポイントＸ識別子（Ｅ１）１０１のデータを出力するコマンドを実行した場合は、データ部７０１にはポイント値識別子“ＤＦ０１”とポイント上限値識別子“ＤＦ０２”とポイント最終更新日識別子“ＤＦ０３”がそれぞれセットされて出力される。
【００５４】
次にこのような構成において入れ子構造データ出力処理について図１５および図１６に示すフローチャートを参照して説明する。  
ＩＣカード１のＣＰＵ１４は、受信されたコマンドがそのコマンドヘッダ部６０１に基づいて入れ子構造データ出力コマンドであると判断すると、図５のデータ管理情報からＰ１部６０４、Ｐ２部６０５で指定されている識別子と一致する制御情報２０１を検索する（ステップＳ２００）。一致する制御情報２０１を特定できた場合はステップＳ２０２へ、特定できなかった場合はステップＳ２０１へ進む。ステップＳ２０１では、制御情報未登録の応答ステータスをリーダライタ２へ出力する。
【００５５】
ステップＳ２０２では、当該制御情報２０１内の設定アドレス情報２１１で示すアドレスに既にデータが設定されているか否かを確認する。データが設定されている場合はステップＳ２０４へ、データが設定されていない場合はステップＳ２０３へ進む。ステップＳ２０３では、データ未設定の応答ステータスをリーダライタ２へ出力する。
【００５６】
ステップＳ２０４では、当該データのデータ長管理情報２２０が制御情報２０１内の設定可能サイズ情報２１２の範囲内であるかを確認する。範囲内である場合はステップＳ２０６へ、範囲を超えている場合はステップＳ２０５へ進む。ステップＳ２０５では、データ管理情報異常の応答ステータスをリーダライタ２へ出力する。
【００５７】
ステップＳ２０６では、当該データのデータ正当性管理情報２２２を確認する。正当性が確認できた場合はステップＳ２０８へ、異常である場合はステップＳ２０７へ進む。ステップＳ２０７では、データ正当性管理情報異常の応答ステータスをリーダライタ２へ出力する。
【００５８】
ステップＳ２０８では、制御情報２０１内の設定アドレス情報２１１が示すアドレスのデータを１バイト（Ｂｙｔｅ）読込む。次に、この読込んだデータを確認し（ステップＳ２０９）、次のデータも識別子の一部であると確認された場合は、ステップＳ２１０へ進み、次のデータを読込む。
【００５９】
ステップＳ２０９の確認の結果、次のデータも識別子の一部でないと確認された場合、当該制御情報２０１内のデータ識別子情報２１０を、レスポンス用データメモリのレスポンスデータ長管理情報をオフセットしたアドレスのレスポンスデータに格納し、レスポンスデータ長管理情報に「＋１」する（ステップＳ２１１）。
【００６０】
次に、次のデータを１バイト読込み、読込んだ値をデータ長とし、次の識別子に相当するアドレスを求める（ステップＳ２１２）。次に、ステップＳ２１２で求められた次の識別子に相当するアドレスとデータ長管理情報２２０との整合性を確認し（ステップＳ２１３）、後ろにデータがない場合はステップＳ２１７へ進み、後ろにデータがある場合はステップＳ２１４へ進む。ここで、後ろにデータがあると判定する状態としては、たとえば、求められたアドレスがデータ長管理情報２２０で指定されたデータ長のアドレスの範囲を超えている場合などがある（図１２参照）。
【００６１】
ステップＳ２１４では、ステップＳ２１２で求められた次の識別子に相当するアドレスのデータを１バイト読込む。次に、この読込んだデータを確認し（ステップＳ２１５）、次のデータも識別子の一部であると確認された場合は次のデータを１バイト読込み（ステップＳ２１６）、ステップＳ２１１へ戻る。ステップＳ２１５の確認の結果、次のデータも識別子の一部でないと確認された場合、ステップＳ２１１へ戻る。
【００６２】
ステップＳ２１７では、異常無しの応答ステータスと共にレスポンス用データメモリ（図９参照）内のレスポンスデータ長管理情報分のレスポンスデータをリーダライタ２へ出力する。
【００６３】
なお、上記例では、識別子が１バイト長または２バイト長のみで構成されるデータで説明を行なったが、３バイト以上の識別子が含まれる場合も同様である。また、本例では、長さ情報が１バイト長のみで構成されるデータで説明を行なったが、たとえば、ＩＳＯ／ＩＥＣ７８１６−４  Ａｎｎｅｘ．Ｄで記載されているような、長さ情報が１バイト以上で表現される場合も同様である。
【００６４】
このように、入れ子構造内に存在するデータの識別子、すなわち、入れ子構造データの第２データ表現形式の識別子（外側の識別子：親タグ）を外部からのコマンドによって指定することで、第２データ表現形式のデータから検索し、当該指定された第２データ表現形式の識別子を含む第１データ表現形式の識別子（内側の識別子：子タグ）を出力したり、当該識別子の存在個数をも同時に出力したりすることで、入れ子構造になっているデータの中のデータ構造を解析なしで容易に検出したり、入れ子構造になっているデータの中に含まれるデータの位置を容易に検索したりすることが可能なＩＣカードが選られるものである。
【００６５】
また、入れ子構造データの第１データ表現形式の識別子（内側の識別子：子タグ）を外部からのコマンドによって指定することで、第２データ表現形式のデータから検索し、当該指定された第１データ表現形式の識別子が含まれる第２データ表現形式の識別子（外側の識別子：親タグ）を出力したり、当該識別子の存在個数をも同時に出力したりすることで、入れ子構造になっているデータの中のデータ構造を解析なしで容易に検出したり、入れ子構造になっているデータの中に含まれるデータの位置を容易に検索したりすることが可能なＩＣカードが選られるものである。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施の形態に係る携帯可能電子装置としてのＩＣカードを用いたＩＣカードシステムの構成を概略的に示すブロック図。
【図２】ＩＣカードの構成を概略的に示すブロック図。
【図３】データメモリに複数のアプリケーションを構成した場合のファイル構造の概念図。
【図４】メモリに格納される入れ子構造データの一例を示す図。
【図５】データ管理情報を説明するための図。
【図６】制御情報により所定のアドレスに設定されるデータのフォーマットを示す図。
【図７】入れ子構造データ検索コマンドの構成を示す図。
【図８】入れ子構造データ検索コマンドに対するレスポンスデータの構成を示す図。
【図９】出力するレスポンスデータが格納されるレスポンス用データメモリの構成を示す図。
【図１０】入れ子構造データ検索処理の流れについて説明するフローチャート。
【図１１】入れ子構造データ検索処理の流れについて説明するフローチャート。
【図１２】アドレスとデータ長管理情報との整合性の確認およびデータ有無を判定する状態を説明する図。
【図１３】入れ子構造データ出力コマンドの構成を示す図。
【図１４】入れ子構造データ出力コマンドに対するレスポンスデータの構成を示す図。
【図１５】入れ子構造データ出力処理の流れについて説明するフローチャート。
【図１６】入れ子構造データ出力処理の流れについて説明するフローチャート。
【符号の説明】
【００６７】
１…ＩＣカード（携帯可能電子装置）、２…リーダライタ（外部装置）、３…パーソナルコンピュータ、１１…磁気ストライプ部、１２…通信部、１３…ＩＣチップ、１４…ＣＰＵ（制御手段）、１５…データメモリ、１６…ワーキングメモリ、１７…プログラムメモリ。
【図１】
2006072924.tif 000003
【図２】
2006072924.tif 000004
【図３】
2006072924.tif 000005
【図４】
2006072924.tif 000006
【図５】
2006072924.tif 000007
【図６】
2006072924.tif 000008
【図７】
2006072924.tif 000009
【図８】
2006072924.tif 000010
【図９】
2006072924.tif 000011
【図１０】
2006072924.tif 000012
【図１１】
2006072924.tif 000013
【図１２】
2006072924.tif 000014
【図１３】
2006072924.tif 000015
【図１４】
2006072924.tif 000016
【図１５】
2006072924.tif 000017
【図１６】
2006072924.tif 000018