ブラウザ定義ファイルのスキーマ (browsers 要素)

更新 : 2007 年 11 月

ブラウザ定義ファイルには、各ブラウザの定義が含まれています。実行時に、ASP.NET は、要求ヘッダーの情報を使用して、どのタイプのブラウザが要求を行ったのかを判断します。その後、ASP.NET は、.browser ファイルを使用して、ブラウザの機能、およびそのブラウザ向けにマークアップを描画する方法を判断します。これは、デバイスのタイプに応じて ASP.NET Web サーバー コントロールの動作を適応させるコントロール アダプタを利用して、モバイル デバイスで表示できるアプリケーションを作成しようとする Web 開発者にとって便利な機能です。詳細については、「参照」セクションのリンクを参照してください。

メモ :

ブラウザ定義ファイルは、.NET Framework Version 2.0 で導入されました。旧バージョンの .NET Framework では、browserCaps 要素を使用して、構成ファイルでブラウザを定義していました。

browsers 要素では、次の構造が使用されます。

<browsers>
    <browser id="browser name"
             parentID="parent browser name"
             refID="reference ID">
        <identification>
            <userAgent match="regular expression"
                       nonMatch="regular expression" />
            <header match="regular expression"
                    name="header name"
                    nonMatch="regular expression" />
            <capability match="regular expression"
                        name="capability name"
                        nonMatch="regular expression" />
        </identification>
        <capture>
            <userAgent match="regular expression" />
            <header match="regular expression"
                    name="header name" />
            <capability match="regular expression"
                        name="capability name" />
        </capture>
        <capabilities>
            <capability name="capability name"
                        value="capability value" />
        </capabilities>
        <controlAdapters markupTextWriterType="type name">
            <adapter adapterType="name of adapter class"
                     controlType="name of control class" />
        </controlAdapters>
        <sampleHeaders>
            <header name="header name"
                    value="header value" />
        </sampleHeaders>
    </browser>
    <gateway id="gateway ID"
             parentID="parent browser ID">
        <!-- Same child elements as for <browser>.
        <identification></identification>
        <capture></capture>
        <capabilities></capabilities>
        <controlAdapters></controlAdapters>
        <sampleHeaders></sampleHeaders>
         -->
    </gateway>
    <defaultBrowser id="Default" 
                    parentID="parent browser ID"
                    refID="reference ID" >
        <!-- Same child elements as for <browser>.
        <identification></identification>
        <capture></capture>
        <capabilities></capabilities>
        <controlAdapters></controlAdapters>
        <sampleHeaders></sampleHeaders>
         -->
    </defaultBrowser>
</browsers>

属性および要素

要素

説明

adapter

ASP.NET Web サーバー コントロールと、そのコントロールを現在のブラウザ内に描画するために使用されるアダプタの間のマップを指定します。たとえば、Nokia.browser ファイルに含まれる次の NokiaMobileBrowserRainbow ブラウザの定義は、MenuAdapter コントロール アダプタ クラスを使用して、Menu サーバー コントロールをブラウザに適応させるよう指定しています。

    <controlAdapters markupTextWriterType="System.Web.UI.XhtmlTextWriter" >
        <adapter
          controlType="System.Web.UI.WebControls.Menu"
          adapterType="System.Web.UI.WebControls.Adapters.MenuAdapter">
        </adapter>
    </controlAdapters>

adapter 要素に含まれる必須の属性を次の表に示します。

属性

説明

adapterType

必須の String 属性です。

コントロールをブラウザに適応させる方法を変更するために使用されるクラスの名前を指定します。

controlType

必須の String 属性です。

アダプタにマップするコントロールの名前を指定します。

adapter 要素には子要素がありません。

browser

単一のブラウザ定義を定義します。

browser 要素に含むことができる属性を次の表に示します。

メモ :

ASP.NET に付属のブラウザ定義ファイルは変更しないでください。これは、Service Pack によってそれらのファイルが更新され、変更が上書きされる可能性があるためです。代わりに、新しい .browser ファイルを作成し、新しいブラウザ定義の中で parentID 属性を使用して設定を継承するか、refID 属性を使用して既存のブラウザ定義に機能を追加します。

ブラウザ定義では、refID 属性を定義するか、id 属性と parentID 属性の両方を定義する必要があります。

属性

説明

id

parentID 属性を使用する場合に必須となる String 属性。

定義するブラウザの一意の名前を指定します。

parentID

id 属性を使用する場合に必須となる String 属性。

設定を継承する親ブラウザ定義の一意の名前を指定します。これらの設定は、現在のブラウザ定義で上書きできます。親ブラウザ定義は、同じブラウザ定義ファイル内に存在しなくてもかまいませんが、同じアプリケーション、または %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers ディレクトリで定義されている必要があります。たとえば、次の WebTV ブラウザの定義は、WebTV.browser ファイルで定義されています。親ブラウザである IE2 の定義は、同じディレクトリ内の IE.browser ファイルで定義されています。

<browser id="WebTV" parentID="IE2">

refID

String 属性。id 属性および parentID 属性が使用されている場合は使用できません。

既存のブラウザ定義の識別子を指定します。refID 属性は、新しい機能を既存のブラウザ定義に関連付けるために使用します。複数のブラウザ ノードが同じ refID を参照するよう構成できます。refID 属性が指定されている場合は、browser 要素に identification 子要素を含めることはできません。

refID 属性はターゲット要素を置換しません。代わりに、他のすべての属性設定を適用した後に、この属性設定を適用します。設定は次の順序で適用します。

  • すべての <ゲートウェイの parentID> ノード

  • すべての <ゲートウェイの refID> ノード

  • すべての <ブラウザの parentID> ノード

  • すべての <ブラウザの refID> ノード

次の定義例では、IE.browser ファイルに含まれる IE ブラウザの既存の定義に新しい機能を追加しています。

<browser refID="IE">
    <capabilities>
        <capability name="UseRichTextBox" value="true" />
    </capabilities>
    <controlAdapters>
        <adapter controlType="System.Web.UI.Calendar"
adapterType="ExampleAdapters.ExampleIECalendarAdapter"
        />
    </controlAdapters>
</browser>

browser 要素には、次の子要素を 0 個または 1 個含めることができます。

  • capabilities

  • capture

  • controlAdapters

  • identification

  • sampleHeaders

browsers

.browser ファイルの必須のルート要素を表します。

capabilities

現在のブラウザ定義に設定する機能の値を定義します。厳密に型指定されたブラウザ機能のリストについては、HttpCapabilitiesBase クラスのトピックのプロパティを参照してください。これらのプロパティのうち大部分は、ブラウザ定義ファイルにおいて Camel 形式で表現されます。独自の機能の値を追加することもできます。

capabilities 要素に属性は含まれません。

capabilities 要素には、次の子要素を 0 個以上含めることができます。

  • capability

capability (capabilities の子要素)

現在のブラウザ定義に設定する単一の機能の値を定義します。たとえば、次の機能は IE.browser ファイル内の IE ブラウザの定義で定義されています。この定義例では、Mozilla.browser ファイル内の Mozilla ブラウザの定義から他の機能を継承しています。ドル記号の後に中かっこが続き (${})、その内側にテキストが含まれている値は、identification 要素の userAgent 子要素で定義されている match 式 "^Mozilla[^(]*\([C|c]ompatible;\s*MSIE (?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))(?'extra'[^)]*)" から取り込まれた値に置き換えられます。

    <capabilities>
        <capability name="browser"          value="IE" />
        <capability name="extra"            value="${extra}" />
        <capability name="isColor"          value="true" />
        <capability name="letters"          value="${letters}" />
        <capability name="majorversion"     value="${major}" />
        <capability name="minorversion"     value="${minor}" />
        <capability name="screenBitDepth"   value="8" />
        <capability name="type"             value="IE${major}" />
        <capability name="version"          value="${version}" />
    </capabilities>

capability 要素には、次の必須の属性が含まれます。

属性

説明

name

必須の String 属性です。

機能の名前を指定します。厳密に型指定されたブラウザ機能のリストについては、HttpCapabilitiesBase クラスのトピックのプロパティを参照してください。これらのプロパティのうち大部分は、ブラウザ定義ファイルにおいて Camel 形式で表されます。たとえば、CanSendMail ではなく canSendMail と表現されます。独自の機能の値を追加することもできます。

value

必須の String 属性です。

機能の値を指定します。厳密に型指定された各ブラウザ機能の値のリストは、HttpCapabilitiesBase クラスのトピックのプロパティに記載されています。value 属性には、"${}" の内側に変数名を記入することによって、取り込まれる変数を含めることができます。

capability 要素には子要素がありません。

capability (identification または capture の子要素)

親ブラウザ クラスの機能の値を正規表現と比較するよう指定します。たとえば、IE.browser ファイルに含まれる次の IE5to9 ブラウザの定義では、capability 要素を使用して、このブラウザがクライアントのブラウザと一致すると判断されるためには、親である IE の定義の majorversion 機能設定が、指定された正規表現と一致する必要があることを示しています。このブラウザ定義の例には、親定義に機能を追加する、または親定義の要素を上書きする capability 要素が含まれています。

    <browser id="IE5to9" parentID="IE">
        <identification>
            <capability name="majorversion" match="^[5-9]" />
        </identification>
        <!-- Capability elements. -->
    </browser>

capability 要素に含まれる属性を次の表に示します。match 属性または nonMatch 属性のどちらかを定義する必要がありますが、両方は定義できません。

属性

説明

match

String 属性。nonMatch 属性と同じ要素では使用できません。

同じであると識別されるために、親機能設定が一致する必要のある正規表現を指定します。正規表現の書式設定については、「.NET Framework の正規表現」を参照してください。

name

必須の String 属性です。

親機能の名前を指定します。

nonMatch

String 属性。match 属性と同じ要素では使用できません。この属性は、capture 要素の capability 子要素では使用されません。

同じであると識別されるために、親機能設定が一致してはいけない正規表現を指定します。

capability 要素には子要素がありません。

capture

ブラウザに関する情報を取り込むために、どのような header 要素、userAgent 要素、または capability 要素を追加的に使用するかに関する情報を定義します。これは、.NET Framework 2.0 のリリース時には存在しなかった新しいブラウザを検出しようとするときに便利です。値を取り込むには、identification 要素の match 属性で定義された正規表現による取り込みをブラウザ定義に含めることができます。たとえば、IE.browser ファイルで定義されている次の userAgent 要素は、ユーザー エージェントの要求ヘッダーから画面の高さをピクセル単位で取り込みます。

    <capture>
        <userAgent match="PalmSource; Blazer 3\.0\)\s\d+;(?'screenPixelsHeight'\d+)x(?'screenPixelsWidth'\d+)$" />
    </capture>

またブラウザ定義では、ブラウザ クラスの識別に使用されない要求ヘッダーをスキャンすることによって、追加情報を取り込む必要がある場合があります。たとえば、次の capture 要素は、携帯電話 OpenWave のソフト キーの数を取り込みます。ソフト キーは、Windows Mobile ベースの SmartPhone の対応するハードウェア ボタンが押されたときに、メニューとコマンドを表示する機能です。

    <capture>
        <header name="HTTP_X_UP_DEVCAP_NUMSOFTKEYS" 
                match="(?'softkeys'\d+)" />
    </capture>

capture 要素に属性は含まれません。

capture 要素には、次の子要素を 0 個以上含めることができます。

  • header

  • userAgent

  • capability

controlAdapters

ブラウザ上のサーバー コントロールを適応させるために使用するコントロール アダプタを定義します。

controlAdapters 要素に含まれる属性を次の表に示します。

属性

説明

markupTextWriterType

省略可能な String 型の属性です。

使用するマークアップ テキスト ライタの .NET Framework における型を指定します。既定の型は System.Web.UI.XhtmlTextWriter です。この属性のその他の有効値は、System.Web.UI.Html32TextWriterSystem.Web.UI.HtmlTextWriterSystem.Web.UI.ChtmlTextWriter、またはこれらのクラスのうちいずれかから継承するカスタム クラスです。

controlAdapters 要素には、次の子要素を 0 個以上含めることができます。

  • adapter

defaultBrowser

Default.browser ファイル内で既定のブラウザ機能を定義します。Default ブラウザ定義は、特定の物理的ブラウザとは一致しません。設定を継承するために、他の定義によって使用されます。たとえば、次の Default ブラウザ定義は、Default.browser ファイルに含まれています。

    <defaultBrowser id="Default">
        <capabilities>
            <capability name="ecmascriptversion"   value="0.0" />
            <capability name="javascript"          value="false" />
            <capability name="jscriptversion"      value="0.0" />
        </capabilities>
    </defaultBrowser>

Default ブラウザ定義は、他の多くのブラウザ定義によって継承されています。たとえば、Panasonic ブラウザの次の定義は、Panasonic.browser ファイルに含まれています。

<browser id="Panasonic" parentID="Default">

defaultBrowser 要素に含まれる属性を次の表に示します。

属性

説明

id

必須の String 属性です。

ブラウザの一意の名前を指定します。

defaultBrowser 要素には、browser 要素と同じ子要素を含めることができます。

gateway

単一のゲートウェイ定義を指定します。一部のモバイル ブラウザは、ゲートウェイを通じて Web サーバーに接続されます。ゲートウェイには、独自の機能を追加できます。複数のゲートウェイが同じ refID 属性を参照するよう構成できます。

gateway 要素には、browser 要素と同じ属性と子要素を含めることができます。たとえば、IE3AK ゲートウェイの次の定義は、IE.browser ファイルに含まれています。

    <gateway id="IE3AK" parentID="IE3">
        <identification>
            <capability name="extra" match="; AK;" />
        </identification>
        <capture>
        </capture>
        <capabilities>
            <capability name="ak"  value="true" />
        </capabilities>
    </gateway>
メモ :

browser 要素の parentID 属性が %SystemRoot\Microsoft.NET\Framework\versionNumber\CONFIG\Browsers ディレクトリに配置されている既定の定義ファイル内の gateway 要素を参照するブラウザ定義ファイルは、アプリケーションでは使用できません。ただし、parentID 属性が、同じ App_Browsers フォルダ内の別のブラウザ定義ファイルを参照するように設定できます。

header (identification または capture の子要素)

要求に含まれる特定の HTTP ヘッダーと比較する正規表現、または取り込む対象となる正規表現を指定します。たとえば、Default.browser ファイルに含まれる Wml ブラウザの次の定義では、Accept ヘッダーを 2 つの正規表現と比較することによって、一致するブラウザを識別します。

<identification>
    <header name="Accept" 
            match="text/vnd\.wap\.wml|text/hdml" />
    <header name="Accept" 
            nonMatch="application/xhtml\+xml; profile|application/vnd\.wap\.xhtml\+xml" />
</identification>

header 要素に含まれる属性を次の表に示します。match 属性または nonMatch 属性のどちらかを定義する必要がありますが、両方は定義できません。

属性

説明

match

String 属性。nonMatch 属性と同じ要素では使用できません。

同じであると識別されるために、要求ヘッダーの値と一致する必要のある正規表現を指定します。正規表現の書式設定については、「.NET Framework の正規表現」を参照してください。

name

必須の String 属性です。

ヘッダーの名前を指定します。

nonMatch

String 属性。match 属性と同じ要素では使用できません。この属性は、capture 要素の capability 子要素では使用されません。

同じであると識別されるために、要求ヘッダーの値と一致してはいけない正規表現を指定します。

header 要素には子要素がありません。

header (sampleHeaders の子要素)

このブラウザの単一のサンプル ヘッダーを指定します。この要素はオプションで、情報提供のみを目的としています。シミューレタまたはデバッグ ツールは、この一連のヘッダーを使用して、ブラウザによる要求をエミュレートできます。

header 要素に含まれる属性を次の表に示します。

属性

説明

name

省略可能な String 型の属性です。

ヘッダーの名前を指定します。

value

省略可能な String 型の属性です。

ヘッダーの値を指定します。

header 要素には子要素がありません。

identification

受信した要求からこのブラウザを識別する方法に関する情報を定義します。

identification 要素に属性は含まれません。

identification 要素には、次の子要素を 1 個以上含むことができます。

  • header

  • userAgent

  • capability

sampleHeaders

このブラウザの一連のサンプル ヘッダーを指定します。この要素はオプションで、情報提供のみを目的としています。シミューレタまたはデバッグ ツールは、この一連のヘッダーを使用して、ブラウザによる要求をエミュレートできます。

sampleHeaders 要素に属性は含まれません。

sampleHeaders 要素には、次の子要素を 0 個以上含めることができます。

  • header

userAgent

要求のユーザー エージェント ヘッダーと比較する式を指定します。たとえば、IE.browser ファイルに含まれる IE4 ブラウザの次の定義では、ブラウザが要求と共に送信するユーザー エージェント ヘッダーに文字列 "MSIE 4" が含まれるかどうかによって、ブラウザを識別します。

        <identification>
            <userAgent match="MSIE 4" />
        </identification>

userAgent 要素に含まれる属性を次の表に示します。match 属性または nonMatch 属性のどちらかを定義する必要がありますが、両方は定義できません。

属性

説明

match

String 属性。nonMatch 属性と同じ要素では使用できません。

同じであると識別されるために、ユーザー エージェントと一致する必要のある正規表現を指定します。正規表現の書式設定については、「.NET Framework の正規表現」を参照してください。

nonMatch

String 属性。match 属性と同じ要素では使用できません。

同じであると識別されるために、ユーザー エージェントと一致してはいけない正規表現を指定します。この属性は、capture 要素の capability 子要素では使用されません。

userAgent 要素には子要素がありません。

解説

既存のブラウザ定義ファイルの中に条件に合うものがない場合は、以下の「使用例」セクションに記載されたコードを使用して新しいブラウザ定義ファイルを作成できます。

セキュリティに関するメモ :

サードパーティのブラウザ定義ファイルは、その提供元を信頼できない場合、ダウンロードまたはインストールしないでください。新しいブラウザ定義ファイルで、未知の名前空間が参照されていないかどうか確認してください。詳細については、「ブラウザ定義ファイルの保護」を参照してください。

定義済みのブラウザ定義ファイルは、%SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers ディレクトリに格納されています。アプリケーションレベルのブラウザ定義ファイルは、アプリケーションの App_Browsers ディレクトリに格納できます。どちらの場所でも、ブラウザ定義ファイルには .browser というファイル名拡張子を付けてください。ASP.NET に付属のブラウザ定義ファイルは変更しないでください。これは、Service Pack によってそれらのファイルが更新され、変更が上書きされる可能性があるためです。代わりに、新しい .browser ファイルを作成し、新しい browser 定義の中で parentID 属性を使用して設定を継承するか、refID 属性を使用して既存のブラウザ定義に機能を追加します。

実行時に、ブラウザ定義ファイルの情報は、BrowserCapabilitiesFactory オブジェクト内の既知のブラウザのコレクション内にマージされます。要求が行われると、ASP.NET は、要求ヘッダーによって要求の送信元ブラウザを識別し、その送信元ブラウザのタイプに応じた HttpBrowserCapabilities オブジェクトをコンパイルします。この処理は、ディクショナリが空の状態から開始され、ブラウザ定義ツリーに対して次の手順を再帰的に実行することによって行われます。

  1. 既定のブラウザ定義から開始されます。この定義は、常に一致するものと見なされます。

  2. このブラウザ定義で指定されている機能の値を、このブラウザの機能ディクショナリにマージします。ブラウザ定義で指定されている値が、親定義で設定されている値をオーバーライドします。

  3. 各子定義を評価して、一致するかどうかを判断します。一致する各子定義について、手順 1 から再度実行します。ブラウザ定義は、ゲートウェイ定義の後で評価されます。ユーザー エージェントが 1 つ以上のブラウザ定義または 1 つ以上のゲートウェイ定義と一致する場合は、実行時に例外がスローされます。

HttpBrowserCapabilities オブジェクトはキャッシュされ、同じタイプのブラウザからの別の要求に再利用される場合があります。

Web アプリケーションは、HttpRequest.Browser プロパティを使用して、HttpBrowserCapabilities オブジェクトの現在のインスタンスにアクセスできます。このオブジェクトは読み取り専用で、各機能のプロパティを格納しています。別の方法として、HttpBrowserCapabilities クラスを継承するカスタム クラスを構築して、インスタンスを HttpRequest.Browser プロパティに格納することもできます。

App_Browsers ディレクトリ内の .browser ファイルを変更すると、キャッシュが無効にされ、次の要求が行われた時にアプリケーションが再コンパイルされます。しかし、%SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers ディレクトリ内の .browser ファイルを変更した場合は、%SystemRoot%\Microsoft.NET\Framework\version\aspnet_regbrowsers.exe ツールを使用して手動でアプリケーションを再コンパイルするか、BrowserCapabilitiesCodeGenerator クラスを使用してプログラムでアプリケーションを再コンパイルする必要があります。

メモ :

Web.config ファイル内で browserCaps 要素を使用してブラウザを定義する方法は、.NET Framework 2.0 では使用されませんが、サポートは継続しています。この要素内のデータは、ブラウザ定義ファイルの情報とマージされます。

ブラウザがアプリケーションに対して要求を行うと、ブラウザの機能が Browser プロパティに格納されます。ブラウザの ID は、UserAgent プロパティに格納されます。ASP.NET Web サーバー コントロールは、機能のリストに問い合わせて、コントロールの動作をさまざまなブラウザに適応させる方法を決定します。

機能

厳密に型指定されたブラウザ機能のリストについては、HttpCapabilitiesBase クラスのトピックのプロパティを参照してください。これらのプロパティは、ブラウザ定義ファイルにおいて Camel 形式で表されます。たとえば、ブラウザ定義ファイルで BackgroundSounds 機能を指定する場合は、backgroundSounds と入力します。

独自の機能の値を定義することもできます。

Web アプリケーションは、次の 2 つの方法のうちいずれかを使用して、HttpBrowserCapabilities オブジェクトから機能の値を取得できます。

  • 機能のディクショナリにアクセスします。この方法は、カスタムの機能に使用できます。

    たとえば、現在のクライアントのブラウザの ECMAScript (JavaScript) 機能の値を取得するには、次のコードを使用します。

    String cap_javascript = Request.Browser["javascript"];
    
  • 機能をラップする厳密に型指定されたプロパティを呼び出します。

    たとえば、現在のクライアントのブラウザの ECMAScript 機能の値を取得するには、次のコードを使用します。

    String cap_javascript = Request.JavaScript;
    

既定の構成

.NET Framework には、定義済みのブラウザ定義ファイル (%SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers ディレクトリ) が付属しています。アプリケーションの App_Browsers ディレクトリ内にアプリケーション レベルのブラウザ定義ファイルを作成することもできます。特殊な ASP.NET ディクショナリの詳細については、「ASP.NET Web サイトのレイアウト」を参照してください。

次のコード例は、%SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers ディレクトリ内の Generic.browser ファイルからの抜粋です。

メモ :

%SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers ディレクトリ内の既存のブラウザ定義ファイルを変更しないでください。これらのファイルは、.NET Framework によって管理されます。

<browsers>
    <browser id="GenericDownlevel" parentID="Default">
        <identification>
            <userAgent match="^Generic Downlevel$" />
        </identification>

        <capture>
        </capture>

        <capabilities>
            <capability name="cookies"                     value="false" />
            <capability name="ecmascriptversion"           value="1.0" />
            <capability name="tables"                      value="true" />
            <capability name="type"                        value="Downlevel" />
        </capabilities>
        <controlAdapters>
            <adapter controlType="System.Web.UI.WebControls.Menu"
            adapterType="System.Web.UI.WebControls.Adapters.MenuAdapter" />
        </controlAdapters>
    </browser>
</browsers>

次のコード例は、%SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers ディレクトリ内の WebTV.browser ファイルからの抜粋です。

<browsers>
    <browser id="WebTV" parentID="IE2">
        <identification>
            <userAgent match="WebTV/(?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))" />
        </identification>

        <capture>
        </capture>

        <capabilities>
            <capability name="backgroundsounds"    value="true" />
            <capability name="browser"             value="WebTV" />
            <capability name="cookies"             value="true" />
            <capability name="isMobileDevice"      value="true" />
            <capability name="letters"             value="${letters}" />
            <capability name="majorversion"        value="${major}" />
            <capability name="minorversion"        value="${minor}" />
            <capability name="tables"              value="true" />
            <capability name="type"                value="WebTV${major}" />
            <capability name="version"             value="${version}" />
        </capabilities>

        <controlAdapters markupTextWriterType="System.Web.UI.Html32TextWriter">
        </controlAdapters>
    </browser>

    <browser id="WebTV2" parentID="WebTV">
        <identification>
            <capability name="minorversion" match="2" />
        </identification>

        <capture>
        </capture>

        <capabilities>
            <capability name="css1"                value="true" />
            <capability name="ecmascriptversion"   value="1.0" />
            <capability name="javascript"          value="true" />
        </capabilities>
    </browser>

    <gateway id="WebTVbeta" parentID="WebTV">
        <identification>
            <capability name="letters" match="^b" />
        </identification>

        <capture>
        </capture>

        <capabilities>
            <capability name="beta"    value="true" />
        </capabilities>
    </gateway>
</browsers>

使用例

次のコード例は、ブラウザ定義ファイルの構築に使用できる空の .browser ファイルです。独自のブラウザ ファイルでは、循環参照を作成しないよう注意してください。

<?xml version="1.0" encoding="utf-8"?>

<browsers>
    <browser id="NewBrowser" parentID="Mozilla">
        <identification>
            <userAgent match="Unique User Agent Regular Expression" />
        </identification>

        <capture>
            <userAgent match="NewBrowser (?'version'\d+\.\d+)" />
        </capture>

        <capabilities>
            <capability name="browser" value="My New Browser" />
            <capability name="version" value="${version}" />
        </capabilities>
    </browser>

    <browser refID="Mozilla">
        <capabilities>
            <capability name="xml" value="true" />
        </capabilities>
    </browser>
</browsers>

要素情報

構成セクション ハンドラ

System.Web.Configuration.HttpCapabilitiesSectionHandler

構成メンバ

HttpRequest.Browser

HttpCapabilitiesBase.Browsers

HttpCapabilitiesBase.Capabilities

System.Web.HttpBrowserCapabilities

構成できる場所

マシンのルート レベルの Browsers ディレクトリ

アプリケーション レベルの App_Browsers ディレクトリ

必要条件

Internet Information Services (IIS) 5.0、IIS 5.1、または IIS 6.0

.NET Framework Version 2.0

Visual Studio 2005

参照

処理手順

方法 : ASP.NET Web ページでブラウザの種類を検出する

概念

ASP.NET Web サーバー コントロールとブラウザの機能

ブラウザ定義ファイルの保護

ASP.NET の構成のシナリオ

ASP.NET デバイスのフィルタ処理の概要

アダプティブ コントロール動作のアーキテクチャの概要

ASP.NET モバイル Web 開発の概要

参照

Browsers

Capabilities

HttpCapabilitiesSectionHandler

HttpBrowserCapabilities

deviceFilters 要素 (ASP.NET 設定スキーマ)

mobileControls 要素 (ASP.NET 設定スキーマ)

browserCaps 要素 (ASP.NET 設定スキーマ)

その他の技術情報

全般構成設定 (ASP.NET)

ASP.NET 構成設定