(57)【特許請求の範囲】
【請求項１】
ハイパーテキストマークアップ言語（ＨＴＭＬ）で階層データを表示する装置であって、
前記階層データ内の第１レベルのデータを構文解析し、前記ハイパーテキストマークアップ言語（ＨＴＭＬ）で該第１レベルの所定のデータ構造を作成する手段と、
ここで、前記第１レベルのデータに第２レベルの従属データが関連付けられているか否かを、前記階層データの追跡経路を利用して判別する手段と、
前記第１レベルのデータに第２レベルの従属データが関連付けられている場合、第１従属データインジケータを生成する手段とを含み、
前記作成された第１レベルのデータ構造において、該第１レベルのデータおよび前記第１従属データインジケータを表示する手段と、
ここで、前記第１従属データインジケータは、第２レベルの従属データが存在するときには、前記第１レベルのデータのデータ項目に対応して表示され、かつ、第２レベルの従属データが存在しないときには、前記第１レベルのデータ構造内においては表示されないように表示制御されるものであり、
前記第１レベルのデータ構造において前記第１従属データインジケータが作動したとき、該第１従属データインジケータに対応した前記第２レベルの前記従属データを構文解析し、前記ハイパーテキストマークアップ言語（ＨＴＭＬ）で該第２レベルの所定のデータ構造を作成する手段と、
前記作成された第２レベルのデータ構造において、該第２レベルの従属データおよび前記第２従属データインジケータを表示する手段と
ここで、前記第２レベルの従属データは、前記第１レベルのデータが表示される形式に類似した形式で表示され、かつ、該第２レベルの従属データのデータ項目は、該第１レベルのデータのデータ項目が表示される形式とは異なる形式で表示され
前記第２従属データインジケータは、第３レベルの従属データが存在するときには、前記第１レベルのデータのデータ項目および前記第２レベルのデータのデータ項目に対応して表示され、かつ、第３レベルの従属データが存在しないときには、前記第２レベルのデータ構造内においては表示されないように表示制御されるものであり、
を具えたことを特徴とする装置。
【請求項２】
前記従属データが、表示されるときに、前記従属データインジケータと関連する前記第１レベルのデータが前記表示でそのまま見えるように表示されることを特徴とする請求項１記載の装置。
【請求項３】
前記階層データは、拡張可能マークアップ言語（ＸＭＬ）データであることを特徴とする請求項１記載の装置。
【請求項４】
前記第１レベルの表示が行と列を備えるテーブル形式であり、
各行に第１レベルのデータ項目が形成され、
各行と各列との交差点にフィールドが形成されたことを特徴とする請求項１記載の装置。
【請求項５】
ハイパーテキストマークアップ言語（ＨＴＭＬ）で階層データを表示する方法であって、
前記階層データ内の第１レベルのデータを構文解析し、前記ハイパーテキストマークアップ言語（ＨＴＭＬ）で該第１レベルの所定のデータ構造を作成するステップと、
ここで、前記第１レベルのデータに第２レベルの従属データが関連付けられているか否かを、前記階層データの追跡経路を利用して判別するステップと、
前記第１レベルのデータに第２レベルの従属データが関連付けられている場合、第１従属データインジケータを生成するステップとを含み、
前記作成された第１レベルのデータ構造において、該第１レベルのデータおよび前記第１従属データインジケータを表示するステップと、
ここで、前記第１従属データインジケータは、第２レベルの従属データが存在するときには、前記第１レベルのデータのデータ項目に対応して表示され、かつ、第２レベルの従属データが存在しないときには、前記第１レベルのデータ構造内においては表示されないように表示制御されるものであり、
前記第１レベルのデータ構造において前記第１従属データインジケータが作動したとき、該第１従属データインジケータに対応した前記第２レベルの前記従属データを構文解析し、前記ハイパーテキストマークアップ言語（ＨＴＭＬ）で該第２レベルの所定のデータ構造を作成するステップと、
前記作成された第２レベルのデータ構造において、該第２レベルの従属データおよび前記第２従属データインジケータを表示するステップと
ここで、前記第２レベルの従属データは、前記第１レベルのデータが表示される形式に類似した形式で表示され、かつ、該第２レベルの従属データのデータ項目は、該第１レベルのデータのデータ項目が表示される形式とは異なる形式で表示され、
前記第２従属データインジケータは、第３レベルの従属データが存在するときには、前記第１レベルのデータのデータ項目および前記第２レベルのデータのデータ項目に対応して表示され、かつ、第３レベルの従属データが存在しないときには、前記第２レベルのデータ構造内においては表示されないように表示制御されるものであり、
を具えたことを特徴とする方法。
【請求項６】
前記従属データが、表示されるときに、前記従属データインジケータと関連する前記第１レベルのデータが前記表示でそのまま見えるように表示されることを特徴とする請求項５記載の方法。
【請求項７】
前記階層データは、拡張可能マークアップ言語（ＸＭＬ）データであることを特徴とする請求項５記載の方法。
【請求項８】
前記第１レベルの表示が行と列を備えるテーブル形式であり、
各行に第１レベルのデータ項目が形成され、
各行と各列との交差点にフィールドが形成されたことを特徴とする請求項５記載の方法。
【請求項９】
コンピュータによって、請求項５ないし８のいずれかに記載された方法を実行可能なプログラムを記憶した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明で説明するシステムおよび方法は一般に、コンピューティングシステム用のグラフィカルユーザインタフェースに関し、より詳細には、ハイパーテキストマークアップ言語（ＨＴＭＬ）で階層データ（拡張可能マークアップ言語（ＸＭＬ）データなど）を表示するユーザインタフェースに関する。
【０００２】
【従来の技術】
拡張可能マークアップ言語（ＸＭＬ）は、技術レポートの共通スタイルシートとして数年前に発明された一般マークアップ言語の一連の発展形のうち比較的最近のものである。この一般マークアップ言語から、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂを可能にしたハイパーテキスト言語（ＨＴＭＬ）が発展した。
【０００３】
ＸＭＬ以前、マークアップ言語は、通常コンピュータ画面上でページのレイアウトを記述することを重視していた。このレイアウトが、テキストフォント、テキスト位置、画像位置、背景色などを定義した。ＨＴＭＬで書かれたＷｅｂページは、Ｗｅｂブラウザアプリケーションで描画でき、またＷｅｂブラウザはほとんどのどのような種類のコンピュータでも動作する。Ｗｅｂページは、コンピューティング環境によらず実質的にまったく同じように見え、機能する。
【０００４】
しかし、ＨＴＭＬは表示されるデータの意味を「知る」手段を備えていない。Ｗｅｂページがどのように見え、機能するか、およびどのテキストを含むかを記述することのみ可能である。ＨＴＭＬは単語に関して多くのことを認識するが、情報に関しては何ら認識しない。
【０００５】
他方、ＸＭＬとこれらのマークアップ言語との違いは、ＸＭＬがページではなくデータの記述を重視している点である。したがって、ＸＭＬでは、アプリケーションが何をしているかをアプリケーションに気づかせる。ＸＭＬは、Ｗｅｂページをインテリジェントなものにする。たとえば、ＸＭＬで書かれたスプレッドシートアプリケーションは、インターネット経由で、他のスプレッドシートにリンクし、さらに大きなパワーを提供するサーバベースのアプリケーションにリンクできる。
【０００６】
ＸＭＬは、メタデータ、つまりデータに関するデータという概念を導入している。ＸＭＬでは、各データ断片は、データ自体を含むだけでなく、データの説明、つまりその意味をも含む。ＸＭＬデータベースは、名前（データ）のリストと、それらの名前が顧客名であることを伝えるデータ（メタデータ）に対するタグを有することができる。ＸＭＬ検索エンジン（ＸＭＬ  ｓｅａｒｃｈ  ｅｎｇｉｎｅ）は、すべてのデータを引き込んでデータを分析し顧客名のリストを検索する必要はなく、単にメタデータを照会して、それらの名前が顧客名であり、データを取り出すだけでよいことを示すタグを見つけるだけである。
【０００７】
ＸＭＬデータは階層的である。つまり、異なるレベルのデータがあり、あるレベルは他のレベルに従属する。たとえば、ＸＭＬ文書（ＸＭＬ  ｄｏｃｕｍｅｎｔ）には、第１のレベルのデータ項目が含まれ、各データ項目は顧客名である。各第１のレベルのデータ項目（顧客名）は、複数の属性（フィールドに格納される）および／または１つまたは複数の第２のレベルのデータ項目、つまり従属データ項目が設定される。第１のレベルのデータ項目が顧客名である例では、各顧客名には、顧客注文を含む第２のレベルのデータ項目が含まれる場合がある。次に第２のレベルのデータ項目は、従属データレベル（第３のレベルのデータ項目）を有する場合がある。説明した例では、第２のレベルのデータ項目（顧客注文）は従属データ項目、たとえば、注文明細などを有することができる。
【０００８】
【発明が解決しようとする課題】
ＸＭＬにはこのような利点があるが、ＸＭＬではデータの書式を設定できない。したがって、依然としてＸＭＬデータを表示するために書式設定言語を利用する必要がある。ＨＴＭＬを使用してＸＭＬ（または実際には、階層データ）を効率よく表示する手段を実現することは、ＸＭＬベースのアプリケーションのアプリケーション開発者およびユーザを支援するために重要な目標である。
【０００９】
そこで、本発明の目的は、拡張可能マークアップ言語（ＸＭＬ）データなどの階層データを、ハイパーテキストマークアップ言語（ＨＴＭＬ）形式で便利かつ効率的な方法により表示することが可能な、システムおよび方法を提供するものである。
【００１０】
【課題を解決するための手段】
従属データを含むデータについては、作動可能従属データインジケータをユーザインタフェースに表示する。従属データは、作動すると親データと似た形式で表示される。
【００１１】
テーブルを構築する方法としては、２種類の方法があり、第１の方法では、最初に全データを構文解析し、表示に必要なテーブルを構築し、第２の方法では、最初に最上位レベルのデータのみを構文解析し、その後、ユーザからの要求に応じて従属テーブルを構築する。
【００１２】
【発明の実施の形態】
以下、図面を参照して、本発明の実施の形態を詳細に説明する。
（概要）
本例では、作動した場合に、表示データに従属するデータを表示する作動可能従属データインジケータ（ａｃｔｕａｔａｂｌｅ  ｓｕｂｏｒｄｉｎａｔｅ  ｄａｔａ  ｉｎｄｉｃａｔｏｒ）を備えるハイパーテキストマークアップ言語（ＨＴＭＬ）の階層データ（拡張可能マークアップ言語（ＸＭＬ）データなど）を表示するためのグラフィカルユーザインタフェースについて説明する。
【００１３】
また、階層データを構文解析して表示を構築する方法について説明する。その一方法としては、完全なデータを最初に解析し、コマンドで表示できる階層テーブルを構築する必要がある。他の方法としては、要求に応じてテーブルを構築し、表示が要求されたデータのみについて要求データを表示するためのテーブルを構築する必要がある方法について記述する。
【００１４】
以下、具体例を挙げて説明する。
（実施例）
図１は、集中アラートデリバリシステム（ｃｅｎｔｒａｌｉｚｅｄ  ａｌｅｒｔ  ｄｅｌｉｖｅｒｙ  ｓｙｓｔｅｍ）が本発明で説明しているように（完全にまたは部分的に）実施できる適当なコンピューティング環境１００の例を示している。コンピューティング環境１００は、本発明で説明しているコンピュータおよびネットワークアーキテクチャで利用できる。
【００１５】
コンピューティングシステム環境例１００は、コンピューティング環境の一例にすぎず、コンピュータおよびネットワークアーキテクチャの使用または機能の範囲に関する限定を示唆するものではない。このコンピューティング環境１００は例のコンピューティング環境１００で示されているコンポーネントのいずれかまたは組合せに関して従属している、あるいは必要であるとは解釈すべきではない。
【００１６】
集中アラートデリバリシステムは、他の多数の汎用または専用のコンピューティングシステム環境または構成でも実施できる。使用するのに適していると思われるよく知られているコンピューティングシステム、環境および／または構成の例としては、それに限定しないが、パソコン、サーバコンピュータ、小型軽量クライアント、大型重量級クライアント、携帯またはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家電製品、ネットワークＰＣ、ミニコン、メインフレームコンピュータ、上記システムまたはデバイスを含む分散コンピューティング環境などがある。
【００１７】
集中アラートデリバリシステムは、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的文脈において説明できる。一般に、プログラムモジュールには、特定のタスクを実行する、あるいは特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。集中アラートデリバリシステムは、さらに、通信ネットワークを介してリンクされているリモート処理デバイスによってタスクが実行される分散コンピューティング環境で実用することもできる。分散コンピューティング環境では、プログラムモジュールをメモリ記憶デバイスを含むローカルとリモートの両方のコンピュータ記憶媒体に配置できる。
【００１８】
コンピューティング環境１００は、汎用コンピューティングデバイスをコンピュータ１０２の形態で備える。コンピュータ１０２のコンポーネントは、１つまたは複数のプロセッサまたは処理ユニット１０４、システムメモリ１０６、およびプロセッサ１０４を含むさまざまなシステムコンポーネントをシステムメモリ１０６に結合するシステムバス１０８を備えるがこれに限られるわけではない。
【００１９】
システムバス１０８は、メモリバスまたはメモリコントローラ、周辺機器バス、ＡＧＰ（ａｃｃｅｌｅｒａｔｅｄ  ｇｒａｐｈｉｃｓ  ｐｏｒｔ）、およびさまざまなバスアーキテクチャを使用するプロセッサまたはローカルバスを含む数種類のバス構造のうち１つまたは複数を表す。たとえば、前記アーキテクチャには、Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＩＳＡ）バス、Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＭＣＡ）バス、Ｅｎｈａｎｃｅｄ  ＩＳＡ（ＥＩＳＡ）バス、Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ（ＶＥＳＡ）ローカル・バス、およびＭｅｚｚａｎｉｎｅバスとも呼ばれるＰｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）バスがある。
【００２０】
コンピュータ１０２は通常、多数のコンピュータ読み取り可能媒体を備える。このような媒体は、コンピュータ１０２によってアクセス可能な利用可能な媒体でよく、揮発性および不揮発性媒体、取り外し可能および取り外し不可能媒体がある。
【００２１】
システムメモリ１０６は、ランダムアクセスメモリ（ＲＡＭ）１１０などの揮発性メモリおよび／または読み取り専用メモリ（ＲＯＭ）１１２などの不揮発性メモリの形態のコンピュータ読み取り可能媒体を含む。起動時などにコンピュータ１０２内の要素間の情報伝送を助ける基本ルーチンを含む基本入出力システム（ＢＩＯＳ）１１４は、ＲＯＭ  １１２に格納される。ＲＡＭ  １１０は、通常、処理ユニット１０４に即座にアクセス可能な、かつ／またはそれによって現在操作されているデータおよび／またはプログラムモジュールを含む。
【００２２】
コンピュータ１０２はさらに、その他の取り外し可能／取り外し不可能、揮発性／不揮発性コンピュータ記憶媒体も備えることができる。たとえば、図１は、取り外し不可能不揮発性磁気媒体（図には示されていない）への読み書きを行うハードディスクドライブ１１６、取り外し可能不揮発性磁気ディスク１２０（たとえば「フロッピー（登録商標）ディスク」）への読み書きを行う磁気ディスクドライブ１１８、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、またはその他の光媒体などの取り外し可能不揮発性光ディスク１２４への読み書きを行う光ディスクドライブ１２２を示す。ハードディスクドライブ１１６、磁気ディスクドライブ１１８、および光ディスクドライブ１２２は、それぞれ、１つまたは複数のデータ媒体インタフェース１２６によりシステムバス１０８に接続される。それとは別に、ハードディスクドライブ１１６、磁気ディスクドライブ１１８、および光ディスクドライブ１２２は、１つまたは複数のインタフェース（図には示されていない）によりシステムバス１０８に接続できる。
【００２３】
ディスクドライブおよび関連コンピュータ読み取り可能媒体は、コンピュータ１０２用のコンピュータ読み取り可能命令、データ構造、プログラムモジュール、およびその他のデータを格納する不揮発性ストレージを備える。例では、ハードディスク１１６、取り外し可能磁気ディスク１２０、および取り外し可能光ディスク１２４が示されているが、磁気カセットまたはその他の磁気ストレージデバイス、フラッシュメモリカード、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）またはその他の光ストレージ、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、電気的消去可能プログラム可能読み取り専用メモリ（ＥＥＰＲＯＭ）などのコンピュータによってアクセス可能なデータを格納できる他のタイプのコンピュータ読み取り可能媒体も、コンピューティングシステムおよび環境の例を実施するために利用できることは理解できるであろう。
【００２４】
ハードディスク１１６、磁気ディスク１２０、光ディスク１２４、ＲＯＭ  １１２、および／またはＲＡＭ  １１０には、たとえば、オペレーティングシステム１２６、１つまたは複数のアプリケーションプログラム１２８、その他のプログラムモジュール１１０、およびプログラムデータ１３２を含む、プログラムモジュールをいくつでも格納できる。そのようなオペレーティングシステム１２６、１つまたは複数のアプリケーションプログラム１２８、その他のプログラムモジュール１３０、およびプログラムデータ１３２（またはその組合せ）のそれぞれは、集中アラートデリバリシステムの通信層およびを加入層（ｓｕｂｓｃｒｉｐｔｉｏｎ  ｌａｙｅｒ）の実施形態を含むことができる。
【００２５】
ユーザは、キーボード１３４およびポインティングデバイス１３６（たとえば、「マウス」）などの入力デバイスを介してコンピュータ１０２にコマンドおよび情報を入力できる。他の入力デバイス１３８（特に示されていない）としては、マイク、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、シリアルポート、スキャナなどがある。これらの入力デバイスやその他の入力デバイスは、システムバス１０８に結合されている入力／出力インタフェース１４０を介して処理ユニット１０４に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）などの他のインタフェースおよびバス構造により接続することもできる。
【００２６】
モニタ１４２やその他のタイプの表示デバイスも、ビデオインタフェース１４４などのインタフェースを介してシステムバス１０８に接続できる。モニタ１４２の他に、入力／出力インタフェース１４０を介してコンピュータ１０２に接続可能な、スピーカ（図に示されていない）やプリンタ１４６などの他の出力周辺デバイスもある。
【００２７】
コンピュータ１０２は、リモートコンピューティングデバイス１４８などの１つまたは複数のコンピュータへの論理接続を使用してネットワーク環境で動作することもできる。たとえば、リモートコンピューティングデバイス１４８としては、パーソナルコンピュータ、携帯型コンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイス、またはその他の共通ネットワークノードなどがある。リモートコンピューティングデバイス１４８は、コンピュータ１０２に関して本発明で説明している要素および機能の多くまたはすべてを備えることができる携帯型コンピュータとして示されている。
【００２８】
コンピュータ１０２とリモートコンピュータ１４８との間の論理的接続は、ローカルエリアネットワーク（ＬＡＮ）１５０および一般的なワイドエリアネットワーク（ＷＡＮ）１５２として示されている。このようなネットワーキング環境は、事務所、企業規模のコンピュータネットワーク、イントラネットおよびインターネットではよくある。
【００２９】
ＬＡＮネットワーキング環境で実施する場合は、コンピュータ１０２はネットワークインタフェースまたはネットワークアダプタ１５４を介してローカルネットワーク１５０に接続される。ＷＡＮネットワーキング環境で実施する場合は、コンピュータ１０２は通常、モデム１５６またはワイドネットワーク１５２で通信を確立するためのその他の手段を備える。モデム１５６は、コンピュータ１０２に内蔵でも外付けでもよいが、入力／出力インタフェース１４０またはその他の適切なメカニズムを介してシステムバス１０８に接続できる。図解されているネットワーク接続は例であり、コンピュータ１０２と１４８の間に通信リンクを確立するその他手段を使用できることは理解されるであろう。
【００３０】
コンピューティング環境１００で示されているようなものなどのネットワーク環境では、パーソナルコンピュータ１０２またはその一部に関して示されているプログラムモジュールは、リモートメモリストレージデバイスに格納できる。たとえば、リモートアプリケーションプログラム１５８は、リモートコンピュータ１４８のメモリデバイスに常駐する。説明のため、アプリケーションプログラムおよびオペレーティングシステムなどのその他の実行可能プログラムコンポーネントは、ここでは離散ブロックとして示されているが、このようなプログラムおよびコンポーネントはさまざまなときにコンピューティングデバイス１０２の異なるストレージコンポーネントに常駐し、コンピュータのデータプロセッサによって実行されることは理解されるであろう。
【００３１】
＜コンピュータ実行可能命令＞
階層データを表示するユーザインタフェースの実施については、１つまたは複数のコンピュータまたはその他のデバイスによって実行される、プログラムモジュールなどのコンピュータ実行可能命令の一般的文脈において説明できる。一般に、プログラムモジュールには、特定のタスクを実行する、あるいは特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。通常、プログラムモジュールの機能をさまざまな実施形態での必要に応じて組み合わせるか、または分散させることができる。
【００３２】
＜操作環境の例＞
図１は、階層データを表示するユーザインタフェースを実施できる適当な操作環境１００の例を示している。特に、本発明で説明している集中アラートデリバリシステムは、図１またはその一部の任意のプログラムモジュール１２８〜１３０および／またはオペレーティングシステム１２８により全部または一部実施できる。
【００３３】
この操作環境は、適当な操作環境の一例にすぎず、本発明で説明する集中アラートデリバリシステムの使用または機能の範囲に関する限定を示唆するものではない。使用するのに適している他のよく知られているコンピューティングシステム、環境および／または構成としては、それに限定しないが、パーソナルコンピュータ（ＰＣ）、サーバコンピュータ、携帯またはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能家電製品、無線電話および機器、汎用および専用電気器具、特定用途向け集積回路（ＡＳＩＣ）、ネットワークＰＣ、ミニコン、メインフレームコンピュータ、上記システムまたはデバイスを含む分散コンピューティング環境などがある。
【００３４】
＜コンピュータ読み取り可能媒体＞
階層データを表示するユーザインタフェースの実施は、ある形式のコンピュータ読み取り可能媒体に格納またはある形式のコンピュータ読み取り可能媒体を介して送信することができる。コンピュータ読み取り可能媒体は、コンピュータでアクセス可能な媒体であればどのようなものでも利用できる。たとえば、コンピュータ読み取り可能媒体として、「コンピュータストレージ媒体」や「通信媒体」などがあるが、これらに限られるわけではない。
【００３５】
「コンピュータストレージ媒体」には、揮発性および不揮発性の取り外し可能および取り外し不可能媒体が含まれ、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、またはその他のデータなどの情報の記憶用の方法または技術で実施されている。コンピュータストレージ媒体には、それに限定しないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他の磁気ストレージデバイス、または目的の情報の格納に使用でき、コンピュータによってアクセスできる他の媒体がある。
【００３６】
「通信媒体」は通常、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、またはキャリア波やその他の搬送メカニズムなど変調データ信号によその他のデータを具現化したものである。通信媒体はさらに、情報配信媒体も含む。
【００３７】
「変調データ信号」とは、情報を信号内にエンコードするなどの方法で１つまたは複数の特性を設定または変更する信号のことである。たとえば、これには限らないが、通信媒体は有線ネットワークまたは直接有線接続などの有線媒体および音響、ＲＦ、赤外線、およびその他の無線媒体などの無線媒体を含む。上記の組合せも、コンピュータ読み取り可能媒体の範囲に含まれる。
【００３８】
＜グラフィカルユーザインタフェース：第１レベルのデータ項目＞
図２は、階層データセット内の第１レベルのデータ項目を表示するグラフィカルユーザインタフェース２００の実施例を示す図である。ユーザインタフェース２００は、コンピュータのモニタ画面２０２に表示される。画面２０２にも示されるのは、通常Ｗｅｂブラウザで表示されるものと類似している第１のツールバー２０４ａおよび第２のツールバー２０４ｂである。
【００３９】
グラフィカルユーザインタフェース２００は、複数の行２０６ａ〜２０６ｊおよび列２０８ａ〜２０８ｈを含む。行２０６ａ〜２０６ｊはそれぞれ、ＸＭＬ文書などの、階層データセット内の第１レベルのデータ項目を表す。各列２０８ａ〜２０８ｈでは、見出し行２１０内に見出しを記述する。見出し行２１０では、見出しは、それぞれ、顧客ＩＤ（列２０８ａ）、会社名（列２０８ｂ）、問い合わせ先（２０８ｃ）、住所（２０８ｄ）、電話（２０８ｅ）、注文（２０８ｆ）、注文明細（２０８ｇ）、および顧客明細（２０８ｈ）からなる。この例では、データ項目の内容のほとんどは無関係である。
【００４０】
ただし、以下の説明のために、行２０６ａ、列２０８ａで識別された顧客の顧客ＩＤは３Ｃ１４６ＨＤであり、行２０６ｂ、列２０８ａで識別された顧客の顧客ＩＤは７Ａ６５４ＬＤである。
【００４１】
列２０８ｆ（注文）、２０８ｇ（注文明細）、および２０８ｈ（顧客明細）は−いくつかの行に−従属データインジケータ（ｓｕｂｏｒｄｉｎａｔｅ  ｄａｔａ  ｉｎｄｉｃａｔｏｒ）２１２を含む。従属データインジケータ２１２は、作動したときに、階層データセット内のデータの従属レベルを表示する作動可能アイコンである。この実施例では、従属データインジケータ２１２は列２０８ｆ（注文）の各行２０６ａ〜２０６ｊ内に表示される。これは、列２０８ａ〜２０８ｈで示されている顧客のそれぞれの注文に関してデータがあることを示す。詳しく後述するように、列２０８ｆ内の従属データインジケータが作動した場合、第２のレベルのデータは、その作動した従属データインジケータ２１２が配置されている行２０６ａ〜２０６ｊで識別されている顧客に関連する注文に関して、表示される。
【００４２】
第１レベルのデータ項目と関連する従属データがない場合、第１レベルのデータ項目に対応する従属データインジケータは表示されない。たとえば、顧客３Ｃ１４６ＨＤについては、列２０８ｇ（注文明細）に従属データインジケータ２１２が表示されないため、注文明細はない。ただし、従属データインジケータ２１２は、その顧客と関連する列２０８ｈ（顧客明細）に表示されるため、顧客３Ｃ１４６ＨＤ関連する顧客明細がある。
【００４３】
同様に、顧客７Ａ６５４ＬＤについては、注文（列２０８ｆ）と注文明細（列２０８ｇ）については従属データがあるが、顧客明細（２０８ｈ）については従属データはない。これは、前記の列内に従属データインジケータ２１２が存在するかしないかによりわかる。
【００４４】
＜グラフィカルユーザインタフェース：第２レベルのデータ項目＞
図３は、行２０６ａ（顧客ＩＤ  ３Ｃ１４６ＨＤ）で識別されている顧客の注文列（２０８ｆ）について従属データインジケータ２１２が作動した後の図２に示されているグラフィカルユーザインタフェース２００の図である。第２レベルのデータは、第１レベルのデータに似たテーブル３００に表示されるが、従属レベルデータ項目は、第１レベルのデータ項目を表示する形式と異なる形式で表示されることに注意されたい。
【００４５】
テーブル３００は、複数の行（３０２）および列（３０４）を含み、その交差点にフィールドが形成される。フィールドは、図２に示されている従属データインジケータ２１２に似た従属データインジケータ２１２を格納できる。この例では、従属データインジケータ２１２を含むことができる列３０４のみに「Ｄｅｔａｉｌｓ」というタイトルが付いている（列３０６）。すでに述べたように、従属データインジケータ２１２が列３０６内に１行で表示される場合、従属データインジケータ２１２が表示される列と関連する行内の第２レベルのデータ項目には、従属−つまり第３レベルの−データ項目が含まれる。
【００４６】
＜グラフィカルユーザインタフェース：第３レベルのデータ項目＞
図４は、従属データインジケータ２１２がテーブル３００の「明細」列（３０６）内で作動した後の図２および図３に示されているグラフィカルユーザインタフェース２００の図である。第３レベルのデータ項目は、図３に示されているテーブル３００に似たテーブル４００に表示されている。再び、テーブル４００は、従属データインジケータ２１２を含む可能性のある少なくとも１つの列４０２を含む。従属データインジケータ２１２を作動させ、従属（第４レベルの）データ項目を表示できる。
【００４７】
図３のテーブル３００および図４のテーブル４００は、テーブル３００、４００を表示するため作動させた作動従属データインジケータ２１２および作動従属データインジケータ２１２と関連する行が表示されたままになるような位置に表示されることに注意されたい。これは、説明しているユーザインタフェースを実施するためには必要ないが、ユーザには便利である。
【００４８】
＜表示テーブルを構築する再帰的方法＞
ＸＭＬデータからＨＴＭＬページを構築するには、拡張可能スタイル言語（ＸＳＬ）または拡張可能スタイル（またはスタイルシート）言語変換（ＸＳＬＴ）スクリプトを作成する必要がある。図５は、表示のためここで説明しているユーザインタフェース作成するために使用する方法の流れ図である。当業者であれば、図５で説明されているステップをＸＳＬまたはＸＳＬＴスクリプトで実行できることは理解できるであろうから、このようなスクリプトの詳細についてここで説明しない。
【００４９】
図５に示す概要を説明した方法は、階層データセット全体を構文解析し、データセット内のデータを表示するテーブル（または他の何らかのデータ構造）を構築するために使用する再帰的方法である。
【００５０】
ブロック５００では、現在のレベルのデータが識別され、最初に１に設定される（階層データセット内の第１レベルのデータを示す）。
【００５１】
ブロック５０２では、第１レベルのデータを表すテーブルが作成され、格納される。
【００５２】
ブロック５０４では、現在のレベルの現在のノード（またはデータ項目）が識別される。
【００５３】
テーブル内に、現在のノードに対する第１レベルのデータを表す行が作成される（ブロック５０６）。
【００５４】
ブロック５０８では、現在ノードに従属（子）データが関連付けられているかどうかが判別される。従属データがない場合（「いいえ」の分岐、ブロック５０８）、さらに構文解析すべきデータがあるかどうかを判別する（ブロック５２０）。
【００５５】
さらにデータがある場合（「はい」の分岐、ブロック５２０）、現在のレベルの新しいまたは次のノード（データ項目）が識別される。
【００５６】
再び、ブロック５０６では、テーブル内に新しいノードに対する第１レベルのデータを表す行が作成される。
【００５７】
新しい現在のノードに従属データが関連付けられている場合（「はい」の分岐、ブロック５０８）、現在のレベルが現在のレベル＋１（ブロック５１０）、つまり、階層データ内の第２レベルのデータに設定される。新しい現在のレベルに対する現在のノードはブロック５１２で識別され、このプロセスはブロック５０８に戻り、現在のノードに従属データが関連付けられているかどうかを判別する。このプロセスは、最下位レベルのデータに到達するまで再帰的に続けられる。すべてのデータ項目の構文解析が済み、データがなくなった後（「いいえ」の分岐、ブロック５２０）、このプロセスは終了し、階層データの完全な表現がメモリに格納される。
【００５８】
この再帰的方法は、多数のレベルが含まれていない「フラットな」データや、データ項目が比較的少ない、たとえば１０００個未満のデータ項目が含まれるデータについては、うまく働くことに注意されたい。深いまたは広範なデータについては、「ビルドオンデマンド（ｂｕｉｌｄ  ｏｎ  ｄｅｍａｎｄ）」方法がこのような状況に適している場合がある。このような方法について、図６を参照しながら以下で説明する。
【００５９】
＜表示テーブルを構築するための動的ネストテーブル（Ｄｙｎａｍｉｃ  Ｎｅｓｔｅｄ  Ｔａｂｌｅ）作成法＞
図６は、図２〜４に示されているグラフィカルユーザインタフェースを構築する方法の流れ図である。説明している方法では、最初に、階層（ＸＭＬ）データセット内のデータすべてを構文解析しない。図６で説明している方法では、従属データ表示はユーザがオンデマンドでのみ作成する。たとえば、初期ユーザインタフェース（２００、図２）が表示される場合、第１レベルのデータ項目のみが構文解析されている。従属データインジケータ２１２が作動すると、第２レベルのデータ項目が構文解析され、第２レベルのテーブル３００が構築され表示される。
【００６０】
テーブルの動的作成を実行するには、動的Ｘ経路を使用して前のデータを追跡する。Ｘ経路とは、データを検索するための手段を提供するＸＭＬの一概念である。あるレベルのデータ項目にすでにアクセスがあった場合、そのレベルのデータ項目を追跡する動的Ｘ経路が格納される。従属データレベルがアクセスされると、テーブル（または他の種類の表示）が構築され表示される。従属データレベルが動的Ｘ経路に追加され、次回必要になったときにそのデータレベルのデータ項目を容易に見つけることができる。
【００６１】
ブロック６００では、階層データセットの第１レベルのデータ項目を構文解析することにより第１レベル−親−のテーブルが構築され、表示される。これは、図５に関してすでに説明したアルゴリズムの非再帰バージョンを使用して実行できる。
【００６２】
従属データインジケータが作動したら（ブロック６０２）、動的Ｘ経路を使用して親テーブルを検索する。親テーブルと関連する動的Ｘ経路の検索がブロック６０４で行われる。
【００６３】
動的Ｘ経路から、従属データレベルがすでにアクセスされたかどうか、したがって構文解析され表示されたかどうかを判別することができる。従属データレベルがすでにアクセスされている場合（「はい」の分岐、ブロック６０８）、ブロック６１６で、すでに構築されているテーブルが表示または非表示にされる。
【００６４】
従属データレベルがすでにアクセスされていない場合（「いいえ」の分岐、ブロック６０８）、ブロック６１２で、階層データセットと関連付けられている動的Ｘ経路を利用して従属データレベルデータ項目にアクセスする。
【００６５】
テーブル（または他の何らかの表示形式）が構築される（ブロック６１４）。
テーブルの構築後、ブロック６１６でテーブルが表示される。
【００６６】
【発明の効果】
以上説明したようにしてデータの構文解析を行い、表示を構築することによって、大きなデータセットを構文解析でき、初期表示よりも前にデータを最初に構文解析する場合よりも効率よく表示できる。これにより、拡張可能マークアップ言語（ＸＭＬ）データなどの階層データをハイパーテキストマークアップ言語（ＨＴＭＬ）形式で便利かつ効率的な方法により表示するグラフィカルユーザインタフェースを提供することができる。
【００６７】
＜結論＞
本発明は、構造的特徴および／または方法のステップに特定したことばで説明されているが、添付の請求項で定められている発明は必ずしも説明した特定の特徴やステップに限定されるわけではないことを理解すべきである。むしろ、特定の特徴およびステップは、請求されている発明の好ましい形態として開示されている。
【図面の簡単な説明】
【図１】説明されている発明を実施するコンピュータシステム実施例のブロック図である。
【図２】第１のレベルのデータ項目を示す表示例の説明図である。
【図３】第２のレベルのデータ項目を示す表示例の説明図である。
【図４】第３のレベルのデータ項目を示す表示例の説明図である。
【図５】階層データから表示を構築するための再帰的方法を示す流れ図である。
【図６】階層データから表示を構築するための動的ネストテーブル作成方法を示す流れ図である。
【符号の説明】
１００  コンピューティング環境
１０２  コンピュータ
１０４  プロセッサまたは処理ユニット
１０６  システムメモリ
１０８  プロセッサ
１０８  システムバス
１１０  ランダムアクセスメモリ（ＲＡＭ）
１１２  読み取り専用メモリ（ＲＯＭ）
１１４  基本入出力システム（ＢＩＯＳ）
１１６  ハードディスクドライブ
１１８  磁気ディスクドライブ
１２０  取り外し可能不揮発性磁気ディスク
１２２  光ディスクドライブ
１２４  取り外し可能不揮発性光ディスク
１２６  データ媒体インタフェース
１２８  アプリケーションプログラム
１３２  プログラムデータ
１３４  キーボード
１３６  ポインティングデバイス
１３８  入力デバイス
１４０  入力／出力インタフェース
１４２  モニタ
１４４  ビデオインタフェース
１４６  プリンタ
１４８  リモートコンピュータ
１５０  ローカルエリアネットワーク（ＬＡＮ）
１５２  ワイドエリアネットワーク（ＷＡＮ）
１５４  ネットワークインタフェースまたはネットワークアダプタ
１５６  モデム
１５８  リモートアプリケーションプログラム
２００  ユーザインタフェース
２０２  モニタ画面
２０４  ツールバー
２０４ｂ  ツールバー
２１２  従属データインジケータ
【図１】
0004339554.tif 000002
【図２】
0004339554.tif 000003
【図３】
0004339554.tif 000004
【図４】
0004339554.tif 000005
【図５】
0004339554.tif 000006
【図６】
0004339554.tif 000007