HTMLデータが記述しているナビゲーションタグの構造を、前記ナビゲーションタグの階層構造と同じ階層構造を有するDLNAサーバ上のフォルダ構造に変換する、データ変換部を備えたことを特徴とするDLNAコンテンツ変換装置。DLNAクライアントおよびWebサーバと通信する通信部を備え、前記通信部は、前記DLNAクライアントからルートコンテナが保持しているコンテンツの一覧を送信するよう要求するBrowseリクエストを受け取ると、前記Webサーバが保持している前記HTMLデータを取得し、前記データ変換部は、前記通信部が前記Webサーバから取得した前記HTMLデータが記述しているナビゲーションタグの構造をDLNAサーバ上のフォルダ構造に変換し、前記通信部が前記Webサーバから取得した前記HTMLデータにリンクしたナビゲーション項目と、前記ナビゲーションタグの構造を変換して得たフォルダ構造を、前記ルートコンテナが保持しているコンテンツとして、前記DLNAクライアントに返信することを特徴とする請求項1記載のDLNAコンテンツ変換装置。前記通信部は、前記DLNAクライアントから、前記ルートコンテナが保持している前記HTMLデータにリンクしたナビゲーション項目に対する再生リクエストを受け取り、前記データ変換部は、前記再生リクエストの対象になっている前記HTMLデータを前記Webサーバから取得し、前記DLNAクライアントが再生することができるフォーマットに変換した上で前記DLNAクライアントに送信することを特徴とする請求項2記載のDLNAコンテンツ変換装置。前記通信部は、前記フォルダ構造のうち、Webサーバ上の他のファイルに対するリンクを記述したリンクタグを変換して得たフォルダが保持しているコンテンツの一覧を送信するよう要求するBrowseリクエストを受け取ると、前記リンクタグのリンク先となっているリンク先データを前記Webサーバから取得し、前記データ変換部は、前記リンク先データを前記DLNAクライアントが再生することができるフォーマットに変換した上で前記DLNAクライアントに送信することを特徴とする請求項2記載のDLNAコンテンツ変換装置。前記データ変換部は、前記リンク先データがHTMLデータである場合は、前記通信部が前記ルートコンテナに対するBrowseリクエストを受け取ったときと同じ手順で前記リンク先データを変換して前記DLNAクライアントに返信することを特徴とする請求項4記載のDLNAコンテンツ変換装置。前記DLNAクライアントから前記ナビゲーションタグのうちHTMLのFORMタグのリクエストパラメータを記述するタグに対して操作を実施した後の前記HTMLデータの画面状態を記憶する状態記憶部を備え、前記通信部は、前記DLNAクライアントから前記ナビゲーションタグに対する操作指示を受け取り、前記データ変換部は、前記通信部が受け取った前記操作指示を前記FORMタグのリクエストパラメータを記述するタグに対して適用した後の前記HTMLデータの画面状態を前記状態記憶部に格納し、前記画面状態を前記DLNAクライアントが再生することができるフォーマットに変換した上で前記DLNAクライアントに送信することを特徴とする請求項2記載のDLNAコンテンツ変換装置。HTMLデータが記述しているナビゲーションタグの構造を、前記ナビゲーションタグの階層構造と同じ階層構造を有するDLNAサーバ上のフォルダ構造に変換するステップを有することを特徴とするDLNAコンテンツ変換方法。HTMLデータが記述しているナビゲーションタグの構造を、前記ナビゲーションタグの階層構造と同じ階層構造を有するDLNAサーバ上のフォルダ構造に変換するステップを、コンピュータに実行させることを特徴とするDLNAコンテンツ変換プログラム。DLNAに準拠した再生機器DMP:DigitalMediaPlayerは、同じくDLNAに準拠したコンテンツサーバDMS:DigitalMediaServerが保持しているコンテンツを再生する機能を備える。しかし、HTMLページなどのWebコンテンツを閲覧する機能はDLNAとは別の機能であるため、再生機器毎に同機能を備えているか否かは異なる。DLNAとHTMLページは、特にコンテンツ間のナビゲーションの形態が異なる。HTMLページは、他のHTMLページなどのWebコンテンツに対してHyperLink形式でリンクする仕組みを、ナビゲーションとして備える。一方、DMSはOSOperatingSystem上のファイルシステムに類似したフォルダ内に個々のコンテンツファイルを格納しており、フォルダとファイルの一覧をDMPに提示することによってコンテンツ間のナビゲーションを提供している。上述のナビゲーションに関する相違により、一般にDMPはWebコンテンツをそのまま再生することができないため、DMPはDLNAコンテンツを再生する機能とは別にWebブラウザを備える必要があり、クライアント端末としての機能が複雑になる傾向があるといえる。本発明は上記のような課題を解決するためになされたものであり、DLNAに準拠した再生機器を用いてWebコンテンツを閲覧する機能を提供することを目的とする。本発明に係るDLNAコンテンツ変換装置は、HTMLデータが記述しているナビゲーションタグの構造を、ナビゲーションタグの階層構造と同じ階層構造を有するDLNAサーバ上のフォルダ構造に変換する。本発明に係るDLNAコンテンツ変換装置によれば、DLNA対応のプレイヤーDMPであればどのようなプレイヤーでもWebコンテンツを利用することができる。<実施の形態1>図1は、本発明の実施形態1に係るDLNAブラウジングシステム1000の構成図である。DLNAブラウジングシステム1000は、DLNAに準拠した再生機器を用いてWebコンテンツを閲覧するためのシステムであり、DLNAコンテンツ変換サーバDMS100、DLNA対応プレイヤーDMP200、ルータ300を有する。DLNAコンテンツ変換サーバ100は、ルータ300と外部ネットワーク400を介してWebサーバ図示せずにアクセスし、HTMLページなどのWebコンテンツを取得し、DLNA対応プレイヤー200が再生することができるフォーマットに変換する。変換処理の詳細は後述する。これにより、DLNA対応プレイヤー200は、WebコンテンツをDLNAコンテンツと同じように取り扱って閲覧することができる。なお、DLNAコンテンツ変換サーバ100はWebコンテンツをDLNAコンテンツとして提供する装置であるため、DMSとしての機能を備える。以下ではDLNAコンテンツ変換サーバ100をDMS100と略称する。DLNA対応プレイヤー200は、DLNAに準拠した再生機器である。DLNA対応プレイヤー200は、DLNAガイドラインに定義されるデバイス間の認識の仕組みであるUPnPUniversalPlugandPlayを用いてDMS100の存在を認識する。DLNA対応プレイヤー200がDMS100を認識した後、ユーザはリモコン等を用いてDLNA対応プレイヤー200を操作し、DMS100が保持しているコンテンツを閲覧する。以下ではDLNA対応プレイヤー200をDMP200と略称する。ルータ300は、DMS100とDMP200にIPInternetProtocolアドレスを配布してLANを構築するとともに、これら機器外部ネットワーク400と接続してLAN側からインターネットを利用することができるようにする。図2は、DMS100の機能ブロック図である。DMS100は、通信部110、ブラウザ部120、仮想ディスプレイ130、ブラウザ状態記憶部140、UPnP機能部150、HTTP受信部160、データ変換部170、データ記憶部180を備える。通信部110は、DMS100の外部とIPベースで通信するネットワークインターフェースである。ブラウザ部120は、通信部110を介してHTTPHyperTextTransferProtocolを用いてWebサーバからWebコンテンツを取得する。また、Webサーバから取得したHTMLを解釈する。仮想ディスプレイ130は、ブラウザ部120がHTMLを解釈した結果をHTMLページの画面イメージとして生成する。必ずしも実際のディスプレイデバイスを用いる必要はなく、画面イメージを内部的に生成することができればよい。ブラウザ状態記憶部140は、HTMLページに対してテキストを入力したり、FORMタグ内に含まれるSELECTタグのオプションを選択したりするなどの操作指示によって生じた画面状態の変化を記憶する。DMS100は、ブラウザ状態記憶部140が記憶している画面状態を読み出し、同画面状態を復元することができる。UPnP機能部150は、通信部110を介してDMS100の外部とUPnPを用いて通信する。これにより、DMP200はDMS100を認識することができる。またUPnP機能部150は、DMP200が送信したUPnPのアクションUPnPに定義された命令を受信する。HTTP受信部160は、DMP200からコンテンツ取得のためのHTTPリクエストを受信する。データ変換部170は、WebコンテンツをDMS100が保持するDLNAコンテンツとして見せかけるためのコンテンツ変換処理を実施する。データ記憶部180は、データ変換部170がコンテンツ変換によって作成した情報を記憶する。HTTP受信部160がDMP200からHTTPリクエストを受信すると、データ変換部170はデータ記憶部180から該当する情報を取得する。該当する情報がブラウザ状態IDであった場合には、ブラウザ状態記憶部140からブラウザの画面状態を読み出し、それを仮想ディスプレイ130に描画させ、その画面イメージをDMP200に送信する。該当する情報がURLだった場合にはブラウザ部120を用いてWebコンテンツを取得し、そのデータをDMP200に送信する。これら処理の詳細は後述する。ブラウザ部120、仮想ディスプレイ130、UPnP機能部150、HTTP受信部160、データ変換部170は、これらの機能を実現する回路デバイスのようなハードウェアを用いて構成することもできるし、CPUCentralProcessingUnitなどの演算装置とその動作を規定するソフトウェアを用いて構成することもできる。ブラウザ状態記憶部140とデータ記憶部180は、ハードディスク装置などの記憶装置を用いて構成することができる。これら機能部および記憶部を一体的に構成してもよい。図3は、DMS100が保持するDLNAに準拠したコンテンツの一般的な構造を示す図である。DLNAに準拠したコンテンツは、OSのファイルシステムにおけるフォルダの階層構造に類似する構造を有する。以下ではこの構造のことを、DMS100が保持するDLNAコンテンツのフォルダ構造と呼ぶ。DLNAコンテンツのフォルダ構造は、object要素からなる。object要素にはcontainerとitemという2種類が存在する。containerはOSのファイルシステムにおけるフォルダに相当し、内部に複数のcontainerやitemを保持することができる。itemはOSのファイルシステムにおけるファイルに相当し、HTMLページ、画像、映像などの実際のコンテンツがitemに属する。各item要素は、対応するコンテンツを取得するためのリソースURIUniformResourceIdentifierを含んでいる。DMP200は、このURIが示すアドレスにアクセスすることにより、実際のコンテンツを取得することができる。全てのcontainerとitemは、ObjectIDという、DMS100内部で一意のIDによって識別される。DLNAコンテンツのフォルダ構造は、必ずrootcontainer18001から始まる。rootcontainer18001のobjectIDは0に固定されている。一般にDMP200は、rootcontainer18001から順番にフォルダ階層を掘り下げながらたどっていき、container18002やitem18003を取得する。DMP200が最初にDMS100へアクセスすると、DMS100は、rootcontainer18001が保持しているcontainetやitemの一覧をDMP200に送信する。DMP200のユーザは、DMP200の画面上でその一覧を確認し、さらにcontainerを画面上で選択して掘り下げたり、itemを画面上で選択して再生したりするなどして、DLNAコンテンツを視聴する。DMS100が提供するDLNAコンテンツは図3のようなナビゲーション構造を有しており、HTMLページのようなHyperLinkを提供することはできない。したがって、DLNAに準拠した再生機器であるDMP200は、DLNAに準拠したコンテンツを再生する限りは、一般的なHTMLページが提供するナビゲーション構造を利用することができないので、DMP200の本来の機能とは別にWebブラウザ機能を備える必要がある。図4は、HTMLページの画面表示例を示す図である。WebブラウザがHTMLデータを読み込むと、Webブラウザは図4のような画面を表示する。Webブラウザは、画面トップ部分にページタイトル13001を表示し、画面内にはページ見出し13002などの文字、リンク1303などを描画する。ユーザが、マウスなどのポインティングデバイスでリンク1303をクリックすると、Webブラウザはリンク先の別のHTMLページや画像などのコンテンツを取得して新たに画面表示する。図5は、図4に示したHTMLページのHTMLソースコードを示す図である。ページタイトル13001、ページ見出し13002、リンク13003は、それぞれ図5に示すようなHTMLタグを用いて記述されている。DLNAに準拠したコンテンツを再生するとき、DMP200は画面内の特定の地点を指定することができず、図3に示したようなフォルダ構造を画面上で選択することができるに留まる。そのため、DMP200のユーザは、ポインティングデバイスを用いてWebブラウザを操作するときと同じようにWebコンテンツを操作することができない。例えばユーザがリンク13003を選択しようとしても、DMP200は画面上の任意の位置を指定することができないので、ユーザはリンク13003を画面上で選択することができない。このことは、DLNAに準拠した再生機器を用いてHTMLページなどのWebコンテンツを視聴するための妨げになっている。そこで本発明に係るDMS100は、リンク13003を代表とするHTMLのナビゲーション構造を、図3で例示したようなDLNAコンテンツのナビゲーション構造に変換し、WebコンテンツをDLNAコンテンツとして擬似的に取り扱うことができるようにする。これによりDMP200は、HTMLのナビゲーション構造と等価なナビゲーション構造を、DLNAコンテンツとしてDMP200を用いてたどることができるので、DMP200をそのまま用いてWebコンテンツを視聴することができる。具体的には、DMS100は、リンク13003のように別のコンテンツへリンクしているナビゲーション構造を、DLNAコンテンツのcontainerに変換する。DLNAのcontainerは、その内部に他のcontainerやitemを保持するobjectであるため、リンク13003と同様のナビゲーション機能を提供することができる。すなわち、ユーザはDMP200を用いてWebコンテンツを擬似的に視聴することができる。図6は、図4と図5で説明したHTMLデータが記述しているナビゲーション構造を、DLNAに準拠したフォルダ構造に変換する様子を示す図である。以下ではこの変換のことを、フォルダ構造化と呼ぶ。データ変換部170は、HTMLデータが記述しているナビゲーション構造を変換し、図6のようなフォルダ構造を作成してDMP200にそのフォルダ構造を返信する。このときの処理手順は、以下のようになる。図6:ステップ1:rootcontainerを検索ユーザがDMP200に対してrootcontainerを検索するように指示すると、DMP200はDMS100にアクセスし、rootcontainer18001が保持しているコンテンツを送信するよう要求する。ここでは、rootcontainer18001のURIとして図4~図5で説明したHTMLページが指定されているものと仮定する。図6:ステップ2:HTMLページ内のナビゲーションを変換DMS100のブラウザ部120は、rootcontainer18001のURIが指定するHTMLページを取得する。データ変換部170は、そのHTMLデータを図6に示すようなフォルダ構造に変換する。この時点でデータ変換部170が生成するフォルダ構造は、HTMLページのナビゲーション構造のみを記述したものであり、HTMLページの内容は画面表示しない。以下、図6の各objectについて説明する。図6:ステップ2:itemitem18005は、ユーザが図4~図5のHTMLページの内容を画面表示したいときに選択するitemである。DMS100は、HTMLページを最初に取得した時点では、HTMLページ内のナビゲーション構造をフォルダ構造に変換するが、HTMLページ本体の内容は画面表示しない。HTMLページ本体を画面表示したい場合は、ユーザはitem18005をDMP200の画面上で選択する。図6:ステップ2:item:補足その1データ変換部170は、item18005を作成する際に、まずitem18005のObjectIDをデータ記憶部180に保存する。データ変換部170は次に、item18005のリソースURIに、item18005のObjectIDを参照するための情報をパラメータとして追加する。DMP200がitem18005のリソースURIにアクセスすると、データ変換部170はそのHTMLページを取得してDMP200が再生することができるフォーマットに変換し、DMP200に送信する。例えば、DMP200は一般に画像データを再生する機能を備えるので、ブラウザ部120がHTMLページを仮想ディスプレイ130上でいったん画面描画し、その画面イメージをDMP200に送信するようにすればよい。図6:ステップ2:item:補足その2データ変換部170は、DMP200がitem18005を再生するときではなく、図6に示すフォルダ構造を生成するためHTMLページを取得した時点で、そのHTMLページの画面イメージを仮想ディスプレイ130上に生成してブラウザ状態記憶部140にその画面イメージをあらかじめ保存しておくようにしてもよい。この場合、ブラウザ状態記憶部140には画面イメージとそのIDを保存し、データ記憶部180にはitem18005のObjectIDと画面イメージのIDを対応付けて保存する。あらかじめ画面イメージを生成しておくことにより、DMP200がitem18005に対応するHTMLページを取得するよう要求したとき、DMS100は即座にそのHTMLページをDMP200へ返信することができる。図6:ステップ2:item:補足その3データ変換部170は、必ずしもHTMLページを仮想ディスプレイ130上で画面描画した結果を保存しておく必要はなく、例えば同等の情報をブラウザ状態記憶部140に保存しておき、後に必要になった時点でこれを読み出して画面描画してもよい。どのような情報をブラウザ状態としてブラウザ状態記憶部140に格納すべきかは、DMP200が備える画面描画機能などによって異なるが、一般に画面イメージを保存しておけば、多くの場合においてDMP200が再生することができると思われる。図6:ステップ2:containercontainer18006と18007は、それぞれ図5のリンク13002と13003をcontainerに変換したものである。リンク13002と13003は他のHTMLページなどの他コンテンツに対するナビゲーション機能を提供するHTMLタグである。したがって、同様に他のDLNAobjectに対するナビゲーション機能を提供するcontainerに変換し、擬似的にリンクと同様のナビゲーション機能をDLNAコンテンツ上で提供することとした。図6:ステップ2:container:補足データ変換部170は、HTMLページを取得するとそのHTMLソースコードをパースし、HTMLのアンカータグやJavascriptのwindow.open関数など、別ファイルへリンクしている記述を探し、これをcontainerに変換する。リンクのcontainerを作成した場合には、作成したcontainerのObjectIDとそのリンク先のURLをデータ記憶部180に保存する。図6:ステップ3:containerを選択するDMP200がcontainer18006にアクセスすると、データ変換部170はデータ記憶部180からcontainer18006のObjectIDに対応するURLを取得し、ステップ2と同様の手順を実施する。図6:ステップ3:containerを選択する:補足本ステップにおいて、ユーザはDMP200の画面上でフォルダcotainer18006を選択してフォルダを掘り下げることになるので、DMP200はDLNAコンテンツと同じ処理手順によってHTMLページのリンクをたどることができる。すなわちDMP200は、HTMLページをブラウジングするための特別な機能を備える必要はなく、DMS100が変換したナビゲーション構造にしたがってDLNAコンテンツを再生するのみでよい。図7は、リンク13003のリンク先がHTMLファイルではない場合のフォルダ構造を示す図である。DMS100のデータ変換部170は、containerのObjectIDに対応するURLからリンク先ファイルを取得したとき、そのファイルがHTMLページでない場合は、そのファイルを再生するために必要なナビゲーション構造のみを提供すればよいので、単一のitemを生成してDMP200に返信する。例えばリンク先が映像ファイルである場合、DMP200が図7のitem18010を選択すると、DMP200はその映像ファイルを再生する。このときのDMP200の処理手順は、以下のようになる。図7:ステップ1:container18007を選択するDMP200のユーザは、DMP200の画面上でcontainer18007を選択する。図7:ステップ2:item18010を作成するデータ変換部170は、container18007のリンク先ファイルのファイルタイプを取得し、HTMLページでない場合は同ファイルを再生するためのitem18010を作成する。データ変換部170は、item18010を作成する際に、データ記憶部180にitem18010のObjectIDとリンク先ファイルのURLを保存し、item18010のリソースURIにこのObjectIDをパラメータとして追加する。図7:ステップ3:item18010を選択するDMP200がこのリソースURIにアクセスすると、リンク先ファイルが画像ファイルなどのDLNAで標準的にコンテンツとして取り扱うファイルである場合は、データ変換部170はリンク先URLからファイルを取得し、取得したファイルをDMP200にそのまま送信する。リンク先ファイルがアーカイブなどのDLNAでコンテンツとして取り扱わないファイルである場合は、データ変換部170はファイルがDLNAで利用できない形式のファイルであることを通知するコンテンツを生成し、それをDMP200に返信する。図8は、データ記憶部180が保存するデータテーブルの構成とデータ例を示す図である。データ記憶部180は、ObjectIDフィールド181、種類フィールド182、名前フィールド183、親IDフィールド184、ブラウザ状態IDフィールド185、URLフィールド186を格納する。ObjectIDフィールド181は、データ変換部170が生成したDLNAフォルダ構造のobjectを識別するためのObjectIDを保持する。本フィールドが保持するObjectIDは、データ記憶部180が格納する各レコードを識別するキーとなる。種類フィールド182は、ObjectIDフィールド181の値で識別されるobjectのデータ種類を示す値を保持する。objectの種類は、container、item、formの3種類がある。名前フィールド183は、ObjectIDフィールド181の値で識別されるobjectの名前を保持する。本フィールドの値は、DMP200がフォルダ構造を画面表示するときに各DLNAobjectに付与する名前となる。親IDフィールド184は、ObjectIDフィールド181の値で識別されるobjectの親containerのObjectIDを保持する。ブラウザ状態IDフィールド185は、ブラウザ状態記憶部140が保存している画面イメージの識別子を保持する。具体的には、種類フィールド182の値がformである場合や、種類フィールド182の値がitemでかつそのリンク先がHTMLページでない場合には、画面イメージが作成されるので、本フィールドの値が必要になる。formについては実施形態2で改めて説明する。URLフィールド186は、DMP200がobjectを選択したときのリンク先URLを保持する。具体的には、種類フィールド182の値がcontainerである場合や、種類フィールド182の値がitemでかつそのリンク先がHTMLページでない場合には、DMP200はリンク先ファイルを取得するので、本フィールドの値が必要になる。図9は、DLNAブラウジングシステム1000の動作を示すシーケンス図である。ここではユーザ201がDMP200を用いてDMS100にアクセスし、外部ネットワーク400上のWebコンテンツを閲覧するものと仮定する。以下、図9の各ステップについて説明する。図9:ステップS900ユーザ201がDMP200を利用する前に、DMP200はデバイス認識を実施する。これはネットワーク内におけるDMS100の存在を検出するための手続きであり、UPnPのディスカバリの仕組みによって実施される。本ステップにより、DMP200はDMS100を認識し、ユーザ201にその存在を提示することができる。図9:ステップS901ユーザ201は、DMP200をリモコン等で操作し、コンテンツ検索を実施する。ここでいうコンテンツ検索とは、containerが保持しているobjectの一覧を取得するリクエストのことである。図9:ステップS902DMP200は、ステップS901でユーザからの指示を受け取ると、DMS100に対してBrowseアクションを発信する。Browseアクションとは、DLNAで規定されている、container内のobject一覧を取得するためのリクエストである。図9:ステップS903DMS100のHTTP受信部160は、DMP200からBrowseアクションを受信する。データ変換部170は、Browseアクションの対象になっているcontainerのObjectIDを取得する。次にデータ変換部170は、そのObjectIDをキーにして、データ記憶部180が格納しているデータテーブルより、Browseアクションの対象になっているcontainerに対応するURLを取得する。図9:ステップS904データ変換部170は、ステップS903で取得したURLからWebコンテンツを取得する。ここではHTMLページを取得したものと仮定する。図9:ステップS905データ変換部170は、ステップS904で取得したHTMLデータが記述しているナビゲーション構造を解析してこれと同じナビゲーション構造を有するDLNAコンテンツのフォルダ構造に変換し、DMP200に返信する。本ステップは、図4~図5で例示したHTMLページを図6のようなフォルダ構造に変換する処理に相当する。図9:ステップS906~S907データ変換部170は、ステップS905で作成したフォルダ構造を記述した情報を、ステップS902のBrowseアクションのレスポンスとして返信するS906。DMP200は、DMS100が送信したフォルダ構造を、DMS100が保持しているDLNAコンテンツとして解釈し、そのフォルダ構造を画面表示する。その結果ユーザ201は、HTMLページが記述しているものと等価なナビゲーション構造を、DLNAコンテンツのフォルダ構造として閲覧することができるS907。図9:ステップS908ユーザ201は、DMP200が画面表示しているフォルダ構造をたどって、DLNAコンテンツとしてWebコンテンツを視聴する。ユーザがDMP200上でcontainerを選択した場合は、ステップS901に戻って同様の処理を繰り返す。ユーザがDMP200上でitemを選択した場合は、DMS100はそのリンク先のファイルを取得してDMP200に送信する。ここではユーザが図6~図7で説明したitem18005のようなHTMLページ本体へのナビゲーションを選択したものと仮定する。HTMLページ以外にリンクしたitemを選択した場合の処理は、後述の図10で改めて説明する。図9:ステップS909ユーザは、DMP200の画面上でHTMLページにリンクしたitemを選択する。図9:ステップS910DMP200は、ユーザが選択したitemのObjectIDを指定して、DMS100に対しそのコンテンツを閲覧するためのリクエストを発行する。このリクエストは、HTMLページをDLNAコンテンツに見立て、HTMLコンテンツを再生するリクエストとして発行される。図9:ステップS911DMS100のHTTP受信部160は、DMP200からHTMLコンテンツを再生するリクエストを受け取る。ブラウザ部120は、ステップS904であらかじめ取得しておいたHTMLページを仮想ディスプレイ130上に描画して、DMP200が再生することができるフォーマットで画面イメージを生成する。図9:ステップS912~S913データ変換部170は、ブラウザ部120が作成した画面イメージをステップS910のリクエストに対するレスポンスとしてDMP200へ返信するS912。DMP200は、受け取った画面イメージを画面表示する。これにより、ユーザはDMP200の画面上でHTMLページを閲覧することができるS913。図10は、DMS100がDMP200からコンテンツ取得要求を受信した際の処理フローを示す図である。本処理フローは、図9のステップS910~S911においてDMS100が実施する処理に相当する。以下、図10の各ステップについて説明する。図10:ステップS1001DMP200が発行したコンテンツ取得要求をDMS100のHTTP受信部160が受信すると、本処理フローが開始される。図10:ステップS1002HTTP受信部160は、ステップS1001で受け取ったリクエストが指定するobjectのObjectIDを取得し、データ変換部170に通知する。ObjectIDは、例えばDMP200がリクエストを発行する際にリクエストパラメータとしてDMS100に指定してもよいし、その他任意の方法でDMS100に通知してもよい。図10:ステップS1003データ変換部170は、ステップS1002で受け取ったObjectIDをキーにしてデータ記憶部180が格納しているデータテーブルを検索し、対応するレコードを取得する。取得したレコードがHTMLページにリンクしたitemに関するデータである場合はステップS1006へ進み、HTMLページ以外である場合はステップS1004へ進む。図10:ステップS1003:補足ステップS1002で受け取ったObjectIDに対応するブラウザ状態IDフィールド185の値が存在する場合、このObjectIDが示すitemはHTMLページにリンクしたitemであることになる。したがってこの場合は、本ステップの次にステップS1006へ進む。ObjectIDに対応するブラウザ状態IDフィールド185の値が存在せずURLフィールド186の値のみが存在する場合は、このObjectIDが示すitemはHTMLページではないファイルにリンクしたitemであることになる。図10:ステップS1004~S1005データ変換部170は、ステップS1002で受け取ったObjectIDに対応するURLからファイルを取得するS1004。データ変換部170は、そのファイルを必要に応じてDMP200が再生することができるフォーマットに変換し、DLNAコンテンツとして送信するS1005。図10:ステップS1006データ変換部170は、ステップS1002で受け取ったObjectIDに対応するブラウザ状態IDフィールド185の値をキーにして、ブラウザ状態記憶部140からHTMLページの画面イメージを読み出す。図10:ステップS1007ブラウザ状態記憶部140に画面イメージ以外の情報を保存している場合は、ブラウザ部120はHTMLページを仮想ディスプレイ130上で画面描画して画面イメージを生成する。図10:ステップS1008データ変換部170は、HTMLページの画面イメージをDMP200に送信する。図11は、データ変換部170がDMP200からBrowseアクションを受け取った際に作成する、フォルダ構造を記述したデータの例を示す図である。本データは、DIDL-LiteDigitalItemDeclarationLanguageLite形式で記述される。DIDL-Liteは、XMLExtensibleMarkupLanguageをベースとした形式で、DMSが保持するコンテンツの構成情報を表す情報として利用される。図11に例示したデータは、図5のHTMLページをフォルダ構造化した際のDIDL-Liteを記述したものである。このデータは、図6のcontainer18004のObjectIDを指定し、BrowseFlagにBrowseDirectChildrenを設定したBrowseアクションをDMS100が受信した際に、データ変換部170が作成するDIDL-Liteに相当する。最初の要素17001は、文書の種類がDIDL-Liteであることを表す要素であり、固定である。要素17002は、図6のitem18005を記述した要素である。要素17002は、id属性17003、parentID属性17004、restricted属性17005を有する。さらに、子要素としてdc:title要素17006、upnp:class要素17007、res要素17008を有する。res要素17008を除く属性と子要素は、item要素とcontainer要素ともに共通で必須である。id属性は、itemのObjectIDを表す。parentID属性は、このitemの親containerのObjectIDを表す。restricted属性は、外部からこのobjectの変更を制限しているか否かを表す。dc:title要素は、このobjectの名前である。item18005はHTMLページを参照するitemであるため、dc:title要素17006の値はHTMLページのタイトルとなる。item18010のようなHTMLページ以外のファイルを参照するためのitemである場合は、dc:title要素に、ファイルへのリンク名であるcontainer18007のタイトルを使用するなどすればよい。upnp:class要素は、このobjectの種類を表す情報である。upnp:class要素17007が指定しているobject.item.imageItemという値は、当該itemが画像であることを表している。item18005はHTMLページを視聴するためのitemであるが、HTMLページが画面イメージに変換されるものと仮定しているので、本要素は当該itemが画像であることを示している。例えばitem18010のような映像ファイルである場合は、本要素の値はobject.item.videoItemとなる。res要素は、item要素特有の子要素であり、このitemが示すファイルにアクセスするためのリソースURIを表している。res要素17008は、protocolInfo属性17009を有する。protocolInfo属性17009は、リソースの種類を表すものである。res要素17008の値であるURI17010は、当該HTMLページにアクセスするためのURLに、item18005のObjectIDをリクエストパラメータとして追加したものである。要素17011は、図6のcontainer18006を記述した要素である。container要素においても、id属性、parentID属性、restricted属性、dc:title要素、upnp:class要素は必須である。id属性は全てのobjectについて異なる値を用いる必要があるため、要素17011のid属性17012は、要素17002のid属性17003と異なる。parentID属性17013は、要素17002のparentID属性17004と同じになっている。要素17011はリンク13003を表すcontainerであるため、dc:title要素17014はリンク13003のリンク名となっている。upnp:class要素17015は、containerを表す値であるobject.item.containerとなっている。<実施の形態1:まとめ>以上のように、本実施形態1に係るDLNAコンテンツ変換装置100は、HTMLが記述しているナビゲーション構造を、同じ構造を有するDLNAコンテンツのナビゲーション構造に変換する。これにより、HTMLページを閲覧する機能を備えていないDMP200であっても、HTMLページをDLNAコンテンツとして閲覧することができる。また、本実施形態1に係るDLNAコンテンツ変換装置100は、containerにリンクされているHTMLページに対するBrowseアクションを受け取ると、そのHTMLページをそのまま返信するのではなく、そのHTMLページが記述しているナビゲーション構造を解析してフォルダ構造に変換し、図6~図7のような情報としてDMP200に返信する。これによりユーザは、DLNAコンテンツを閲覧する際に一般的に提供されるナビゲーションと同様の操作手順を用いて、HTMLページをDMP200の画面上で閲覧することができる。また、本実施形態1に係るDLNAコンテンツ変換装置100は、HTMLページや映像ファイルなどのWebコンテンツを、DMP200が再生することができるフォーマットに変換して返信する。これにより、ナビゲーション構造のみならずファイルフォーマットの観点でも、DMP200がHTMLページを確実に再生することができる。<実施の形態2>実施形態1では、HTMLのアンカータグなどのように他のHTMLページへリンクするナビゲーションタグを、DLNAコンテンツのcontainerに変換することを説明した。一方、HTMLページ内にformタグが含まれる場合、Webブラウザは、formタグ内に含まれるパラメータをWebサーバに送信してその応答を画面表示する。この処理は、formタグを記述しているHTMLページからその応答ページに遷移するという観点から、リンクと同様のナビゲーションが生じているといえる。そこで本発明の実施形態2では、HTMLのformタグを、実施形態1と同様にDLNAコンテンツのcontainerに変換する動作例を説明する。DLNAブラウジングシステム1000の各構成については実施形態1と同様であるため、以下ではformタグに係る相違点を中心に説明する。図12は、formを含むHTMLページの画面表示例を示すである。HTMLは、ページ利用者からWebサーバに対して情報を送信するための手段として、formと呼ばれるタグを用いることができる。図12の例では、文字を入力するためのテキストボックス13004と、テキストボックス13004に入力された文字列をWebサーバへ送信するよう指示するための送信ボタン13005が画面表示されている。図13は、図12に示したHTMLページのHTMLソースコードを示す図である。inputタグ13006はそれぞれ図12のテキストボックス13004に対応し、inputタグ13007は図12の送信ボタン13005に対応する。formタグが有する要素の種類は、inputタグのtype属性の値によって指定される。inputタグ13006のtype属性はtextであり、同タグがテキストボックスであることを示している。inputタグ13007のtype属性はsubmitであり、同タグが送信ボタンであることを示している。formタグにはこれらのほかに、type属性がcheckbox、radio、select、passwordであるinputタグを含めることができる。これらtype属性の違いは、ユーザがformタグにパラメータを入力するために用いる画面部品の種別の違いとなって、HTMLページ上に反映される。これらの属性については実施形態3で改めて説明する。図14は、図13のHTMLページをフォルダ構造化した様子を示す図である。データ変換部170は、formタグが有するinput要素をDLNAコンテンツのcontainerに変換する。このときの処理手順は、以下のようになる。なお、図6で説明した手順と同様の手順については、説明を一部省略する。図14:ステップ1:item18011データ変換部170は、図6のitem18005と同様に、図12のHTMLページ自身にリンクしたitem18011を作成し、画面イメージをブラウザ状態記録部140に保存する。データ変換部170は、item18011のObjectIDとブラウザ状態IDをデータ記憶部180に保存し、item18011のリソースURIとして当該ObjectIDを参照するための情報を指定する。図14:ステップ2:containerデータ変換部170は、HTMLページに含まれるformタグを探し出し、対応するcontainerを作成する。図13のHTMLページの場合は、inputタグ13006と13007に対応するcontainerとして、container18012と18013を作成する。データ変換部170は、item18011を作成する場合と同様に、各containerのObjectIDとブラウザ状態IDをデータ記録部180に記録する。図14:ステップ2:container:補足実施形態1では、リンクに対応するcontainer18006のブラウザ状態は保存しなかったが、formタグに対応するcontainerのブラウザ状態は保存しておく必要がある。これは、formに対する操作状態例えばテキストボックスに現在入力されている文字列はユーザがformタグに対して操作入力する毎に変化し、その操作状態はURLから取得することができないためである。本ステップの処理内容は、inputタグのtype属性によって異なる。formタグに対する操作入力のtype属性毎の例については、説明の便宜上、実施形態3で別途説明する。図15は、ユーザが送信ボタン13005を押下するときの画面遷移をDLNAコンテンツとして実現する場合の動作を説明する図である。ユーザが送信ボタン13005を押下すると、テキストボックス13004の内容がWebサーバへ送信され、その応答ページがWebサーバから返信される。この動作は、実施形態1の図6で説明したリンクと同様にページ遷移であるとみなすことができるので、DLNAコンテンツのcontainerを用いて同様のナビゲーション構造を実現することができる。DMP200がcontainer18013を選択したときの動作は、以下のようになる。図15:ステップ1:containerを選択するDMP200のユーザは、DMP200の画面上でcontainer18013を選択する。DMS100のデータ変換部170は、DMP200からcontainer18013を選択した旨のリクエストを受け取ると、データ記憶部180からcontainer18013のObjectIDに対応するURLを取得する。図15:ステップ1:containerを選択する:補足ユーザは、テキストボックス13004に対応するcontainer18012のリンク先コンテンツ上で、あらかじめテキストを入力済みであるものとする。テキストボックスへ文字を入力する際の動作例については、実施形態3で別途説明する。図15:ステップ2:form実行後のページを取得するデータ変換部170は、formを実行した後の応答ページに相当するHTMLページを取得し、DMP200に返信する。例えば、formタグのaction属性で指定されているCGICommonGatewayInterfaceなどのプログラムに対してユーザが入力したパラメータを送信し、その返信を取得する。図15:ステップ2:form実行後のページを取得する:補足新たな応答ページに遷移するのではなく、同じページを再読込するような画面遷移を実施するようにHTMLページが構成されている場合は、本ステップで元のHTMLページを改めて取得する。例えば、情報を送信するのみでHTMLページの返信がない場合や、JavascriptによってHTMLのデザインを変化させるようなボタンを押下する場合には、再度同じページを取得する。図15:ステップ3:form実行後のページをフォルダ構造化するデータ変換部170は、formを実行した後の応答ページに相当するHTMLページに対して、図6のステップ2と同様の処理を実施し、同HTMLページのナビゲーション構造をフォルダ構造に変換してDMP200へ返信する。<実施の形態2:まとめ>以上のように、本実施形態2に係るDLNAコンテンツ変換装置100は、formタグを実行した後の画面遷移について、実施形態1と同様にcontainerを用いたフォルダ構造によるナビゲーションを提供する。これにより、リンク以外のナビゲーションについてもDMP200上で再生することができる。<実施の形態3>実施形態2では、formタグによるページ遷移をcontainerによってDLNAコンテンツとして実現した例を説明した。本発明の実施形態3では、formタグのパラメータを記述するinputタグのtype属性毎の動作例を説明する。DLNAブラウジングシステム1000の各構成については実施形態1~2と同様であるため、以下ではtype属性毎の動作を中心に説明する。図16は、type属性がcheckboxであるinput要素チェックボックスについての画面遷移を説明する図である。チェックボックスは、複数の項目のうちいずれか1以上にチェックをつけるための画面部品である。データ変換部170は、checkbox要素を含むHTMLページをフォルダ構造化する場合、1つのチェックボックス要素を1つのcontainerとして変換する。図16において、2つのチェックボックスはそれぞれcontainer18017と18018に変換されている。例えばDMP200がcontainer18018を選択した場合、ユーザはチェックボックス2にチェックを入れようとしていることが分かる。ブラウザ部120は、チェックボックス2にチェックを入れた画面イメージを仮想ディスプレイ130上で作成し、その画面イメージをブラウザ状態記録部140に保存する。次にデータ変換部170は、同じHTMLページを改めてフォルダ構造化する。このときcontainer18018は選択された状態になっているため、container18018の名前にそのことがわかるような情報を記述しておくと、ユーザにとって便宜である。図17は、type属性がradioであるinput要素ラジオボタンについての画面遷移を説明する図である。ラジオボタンは、複数の項目のうちいずれか1つを選択する画面部品である。既にいずれかのラジオボタンを選択している状態で他のラジオボタンを選択すると、それまで選択されていたラジオボタンは非選択状態になる。データ変換部170は、radio要素を含むHTMLページをフォルダ構造化する場合、1つのラジオボタン要素を1つのcontainerとして変換する。図17において、2つのラジオボタンはそれぞれcontainer18020と18021に変換されている。データ変換部170は、チェックボックスをフォルダ構造に変換するときと同様の処理手順を用いて、ラジオボタンをフォルダ構造化する。ただし、あるラジオボタンが選択されているときに他のラジオボタンが選択されたときは、先に選択されていたラジオボタンの選択を解除する必要がある点が異なる。図18は、type属性がselectであるinput要素セレクトについての画面遷移を説明する図である。セレクト要素は、プルダウンリストなどの形式で表されるリスト項目からいずれか1つを選択する画面部品である。プルダウンリストは、選択肢をプルダウンしたときに初めて選択肢の内容が画面表示されるため、画面上の表示内容が変化するという観点で、画面遷移が生じる。さらに選択肢を変更すると、最初に選択されていた選択肢とは別の画面状態になるので、再び画面遷移が生じる。したがって、セレクト要素をDLNAコンテンツのナビゲーション構造に変換するためには、これまでとは異なり2段階の画面遷移をフォルダ構造で表現する必要がある。図18では、2つの選択肢を持つセレクト要素をフォルダ構造に変換した例を示した。セレクト要素自体がcontainer18023に変換され、各選択肢はそれぞれcontainer18024と18025に変換されている。最初の時点では、選択肢1が選択されているものとする。DMP200がcontainer18023を選択した場合、ユーザはセレクト要素内の選択肢を選択しようとしていることが分かる。データ変換部170は、select要素内のoption要素ここでは選択肢1と選択肢2に相当するをHTMLページから読み出し、これら選択肢をそれぞれcontainer18024と18025に変換する。選択肢を選択した後は元のHTMLページにもとる必要があるので、container18024と18025のリンク先は、元のHTMLページを指定しておく。次にDMP200がcontainer18025を選択した場合、ユーザはセレクト要素内の選択肢2を選択しようとしていることが分かる。ブラウザ部120は、選択肢2を選択した状態の画面イメージを仮想ディスプレイ130上で作成し、ブラウザ状態IDとともにブラウザ状態記憶部140に格納し、さらにそのブラウザ状態IDをデータ記憶部180の当該HTMLページに対応するレコード上に反映する。次にデータ変換部170は、同じHTMLページを改めてフォルダ構造化する。このときcontainer18023は、選択肢2が選択された状態になっているため、container18023の名前にそのことがわかるような情報を記述しておくと、ユーザにとって便宜である。図19は、type属性がtextまたはpasswordであるinput要素テキストボックスまたはパスワードボックスについての画面遷移を説明する図である。通常のブラウザではキーボードなどの入力デバイスを用いて文字を入力するが、DLNAコンテンツではこれを利用することができないので、containerを選択することを繰り返して文字を入力する。DMP200がcontainer18027を選択肢他場合、ユーザはテキストボックス内に文字を入力しようとしていることが分かる。データ変換部170は、入力候補となる文字に対応するcontainerを複数作成する。例えば日本語であればひらがな50音に対応するcontainerを作成し、英語であればアルファベット26文字に対応するcontainerを作成する。ユーザは入力したい文字に対応するcontainerをDMP200の画面上で選択し、データ変換部170は入力された文字をブラウザ状態記憶部140に逐次格納する。漢字変換を実施する場合はその機能を実装したcontainer18028を選択し、入力を終了する場合はその旨を指示してもとのHTMLページに戻るためのcontainer18029を選択する。データ変換部170は、元のページに戻ってくるときは、同じHTMLページを改めてフォルダ構造化する。このときcontainer18027には、これまでユーザが入力した文字をブラウザ状態記憶部140から取得して反映しておく必要がある。図20は、DMS100がDMP200からコンテンツ検索要求を受信した際の処理フローを示す図である。本処理フローは、図9のステップS901~S902においてDMS100が実施する処理に相当する。Browseアクションは主に、idという引数で対象とする要素のObjectIDを指定し、BrowseFlagという引数で欲しい情報の種類を指定する。BrowseFlagは、ObjectIDが示す要素の情報を取得するBrowseMetadataと、ObjectIDが示す要素の中に含まれている要素の情報を取得するBrowseDirectChildrenの2種類がある。変換DMS100のUPnP機能部150は、このアクションを受信すると、データ変換部170にこのObjectIDとBrowseFlagを通知する。データ変換部170は、図20の処理を起動する。以下、図20の各ステップについて説明する。図20:ステップS2001データ変換部170にBrowseアクションが通知されると、本処理フローが開始される。図20:ステップS2002通知されたObjectIDがデータ記憶部180に保存されている場合はステップS2003へ進み、保存されていない場合はエラーを通知して本処理フローを終了する。図20:ステップS2003データ変換部170は、BrowseアクションのBrowseFlag引数の値を確認する。BrowseFlag引数がBrowseMetadataである場合はステップS2004へ進み、BrowseDirectChildrenである場合はステップS2005へ進む。図20:ステップS2004データ変換部170は、データ記憶部180からObjectIDに対応した名前フィールド183と親IDフィールド184を取得し、その情報を返却する。図20:ステップS2005データ変換部170は、通知されたObjectIDに対応した種類フィールド182の値をデータ記憶部180から取得し、これがcontainerであるか調べる。containerである場合はステップS2006へ進み、containerでない場合はステップS2012へ進む。図20:ステップS2006データ変換部170は、データ記憶部180が保存しているURLフィールド186からファイルの情報を取得する。図20:ステップS2007データ変換部170は、URLが示すファイルがHTMLファイルであるか否かを確認する。HTMLファイルである場合はステップS2009へ進み、HTMLファイルでない場合はステップS2008へ進む。図20:ステップS2008データ変換部170は、ファイルに対応するitem例えば図7のitem18010を作成し、データ記憶部180に登録するとともに、その情報を返却する。図20:ステップS2009~S2010データ変換部170は、URLからファイルを取得するS2009。次にブラウザ部120は、取得したHTMLファイルを仮想ディスプレイ130上で画面表示し、その画面イメージをブラウザ状態記録部140に保存するS2010。図20:ステップS2011データ変換部170は、ブラウザ部120が画面表示したHTMLページをフォルダ構造化し、その情報を返却する。また、作成したitemとcontainerの情報をデータ記憶部180に保存する。図20:ステップS2012データ変換部170は、ステップS2005で取得した種類フィールド182の値がitemであるか否かを確認する。種類フィールド182の値がitemである場合はステップS2013へ進み、それ以外であればステップS2014へ進む。図20:ステップS2013DMS100のフォルダ構造では、itemの中にitemやcontainerは含まれないため、ステップS2012において種類フィールド182の値がitemであったとしても、BrowseDirectChildrenに該当する情報は存在しない。したがってデータ変換部170は、空の情報を返却する。図20:ステップS2014~S2015データ変換部170は、ObjectIDの種類はformであると判断するS2014。データ変換部170は、データ記憶部180からObjectIDに該当するブラウザ状態IDフィールド185の値を取得し、ブラウザ状態記憶部140から対応するブラウザ状態画面イメージを読み出すS2015。図20:ステップS2016データ変換部170は、ステップS2015で取得したブラウザ状態を確認し、例えばselect要素を選択中である、textへ文字列を入力中であるなど、画面状態を変化させる操作中であるか否かを調べる。画面状態を変化させる操作とは、containerを選択しようとしている操作に相当する。画面状態を変化させる操作中である場合はステップS2017へ進み、それ以外である場合はステップS2019へ進む。図20:ステップS2017データ変換部170は、ブラウザ状態を調べ、次の選択肢となるcontainerを決定する。次の選択肢とは、select要素を操作中であればその選択肢であり、テキストボックスやパスワードボックスを操作中であれば次の入力候補の文字である。図20:ステップS2018データ変換部170は、ステップS2017で決定した選択肢をフォルダ構造化し、その情報を返却する。図20:ステップS2019データ変換部170は、ブラウザ状態を検索し、選択されたObjectIDに対応する要素に対応する処理を実施する。例えば選択されたObjectIDに対応する要素がボタンである場合は、本ステップにおける処理はそのボタンを押下することである。対応する要素がチェックボックスである場合は、本ステップにおける処理はその要素をチェックすることである。該当する処理が定まらない場合は、代替としてその要素にonclickイベントを発生させる。図20:ステップS2020~S2021データ変換部170は、ステップS2019を実施した後の画面状態をブラウザ状態記録部140に記録するS2020。データ変換部170は、ブラウザ部120が画面表示しているHTMLページの状態をフォルダ構造化し、その情報を返却するS2021。<実施の形態3:まとめ>以上、本実施形態3では、formタグ配下のinputタグのtype属性毎に、containerとitemを用いたフォルダ構造によってHTMLのナビゲーション構造をDLNAコンテンツとして擬似的に実現する手順を説明した。