Oracle HTML DBリリース・ノート
リリース1.6
部品番号: B15715-01
 

 

Oracle HTML DB

リリース・ノート

リリース1.6

部品番号: B15715-01

原典情報: B14499-01 Oracle HTML DB Release Notes Release 1.6

2005年1月

このリリース・ノートでは、Oracle HTML DBのドキュメントに記載されていない新しい情報を示します。 最新の情報については、次のWebサイトにあるこのリリース・ノートの最新版を参照してください。

http://otn.oracle.co.jp/document/

このリリース・ノートでは、次の項目について説明します。

ドキュメント

Oracle HTML DBのドキュメントは、次のURLで入手できます。

http://otn.oracle.co.jp/document/

新機能

このセクションでは、他のドキュメントに記載されていないOracle HTML DBの新機能について説明します。

このセクションの内容は次のとおりです。

レポートまたは表形式フォームとしての選択リストのレンダリング

HTMLDB_ITEMパッケージを使用すると、HTMLDB_ITEM.SELECT_LISTを直接コールするか、またはレポート列に特定の表示タイプを適用することによって、選択リストをレポートまたは表形式フォームとしてレンダリングできます。 このタイプの選択リストは、32000文字以下にする必要があることに注意してください。 また、選択するオプションの数が多すぎると、選択リストが正常にレンダリングされない場合があります。

Oracle HTML DBリリース1.5.1では、この方法でレンダリングした選択リストに、オプションごとのOPTIONの閉じタグが含まれません。 Oracle HTML DBリリース1.6では、オプションごとのOPTIONの閉じタグが含まれるため、選択リストに含めることができるオプションの数が削減されています。 実際に削減されるオプションの数は、オプション・テキスト文字列の長さによって異なります。 また、この数の変更は、選択リスト・スタイルで行の範囲が選択された場合、ページ区切りにも影響を及ぼします。 オプションの数が許容値に達すると、選択リストを使用しない、Z中のXからYの範囲の行というスタイルのページ区切りに変更されます。

セッション・ステートからレンダリングされた特殊文字のエスケープ

ページ・アイテムおよびアプリケーション・アイテムは、URLを使用するか、またはPOSTDATA内で確立されたセッション・ステート値を持つことができます。 リリース1.6では、HTML DBエンジンが、これら2つのアイテム・タイプのセッション・ステート値をセッション・ステートに保存する際、これらの値をエスケープします。

入力時にエスケープされるアイテム・タイプ

HTML DBエンジンは、入力時にアイテムをエスケープするために、一般的に使用される文字を実体参照に変換します。 たとえば、HTML DBエンジンは、小なり記号(<)を&lt;に変換します。 この規則は、次の2つのタイプのアイテムに適用されます。

  • テキストとして表示(状態は保存しない)」タイプのページ・アイテム

  • アプリケーション・レベル・アイテム(特定のページに関連付けられていないアイテム)

この変更の目的は、レンダリング中にエスケープされないアイテム・タイプに対するクロス・サイト・スクリプティング(XSS)・セキュリティ攻撃からアプリケーションを保護することです。 開発者は、(たとえば、ページ・プロセス、計算または問合せを使用して)任意のタイプのアイテム値をページに内部的に設定して、エスケープ可能な文字をそれらのアイテムに引き続き格納できます。 ただし、アプリケーション・アイテムまたは「テキストとして表示(状態は保存しない)」タイプのページ・アイテムの値を外部的に設定しようとすると、それらの値は、セッション・ステートに保存される際にエスケープされます。 アプリケーションの外部から、(たとえばURLを使用して)HTMLまたはJavaScriptを含むテキストにこれらのタイプのアイテムを設定することは危険であることに注意してください。

既存のページが以前のリリースの動作(入力時にアイテム値がエスケープされない)に依存している場合、そのページで問題が発生する場合があることに注意してください。 問題が発生する可能性があるケースの例は次のとおりです。

  • エスケープ可能な入力文字が、「テキストとして表示(状態は保存しない)」タイプのページ・アイテムに対するURLまたはPOSTDATAを使用してセッション・ステートに渡され、エスケープされずにページ上のフォーム・アイテムとしてレンダリングされる場合。 リリース1.6では、値は入力時にエスケープされるため、正常にレンダリングされません。

  • エスケープ可能な入力文字が、アプリケーション・アイテムまたは「テキストとして表示(状態は保存しない)」タイプのページ・アイテムに対するURLまたはPOSTDATAを使用してセッション・ステートに渡され、&ITEM_NAME.構文を使用してHTMLリージョンで参照され、入力時に表されたとおりにレンダリングされる必要がある場合。 たとえば、URL内のページ・アイテムP1_ITEMに渡された文字列A<Bは、A&lt;Bとして格納され、A&lt;Bと不正確にレンダリングされます。

これらのタイプのページを修正するには、次の操作を実行します。

  1. テキストとして表示(状態は保存しない)」タイプのページ・アイテムのコンテンツを、URLを使用してではなく、アイテムのデフォルト・ソース値、ページ・プロセスまたは計算を使用して設定します。 この方法では、値が、セッション・ステートへの格納時にエスケープされず、フォーム・アイテムとしてのレンダリング中にもエスケープされません。

  2. アプリケーション・アイテムまたは「テキストとして表示(状態は保存しない)」タイプのページ・アイテムのコンテンツを、URLを使用してではなく、ページ・プロセスまたは計算を使用して設定します。 この方法では、値がセッション・ステートへの格納時にエスケープされません。 ただし、これらの値は以前のリリースと同様にHTMLリージョンでのレンダリング中にエスケープされるため、小なり記号(<)は小なり記号(<)のまま表示され、ブラウザで特殊記号として解釈されません。

出力時にエスケープされるアイテム・タイプ

テキストとして表示(状態は保存しない)」タイプのページ・アイテムは、ページ上のフォーム・アイテムとしてレンダリングされる際の出力時にエスケープされます。 この変更の目的は、これらのアイテムがエスケープされない原因であったバグを修正することです。 この変更によって、このフォーム・アイテムの表示タイプが、他のフォーム・アイテムの表示タイプと一致します。

既存のページが以前のリリースの動作(「テキストとして表示(状態は保存しない)」タイプのフォーム・アイテムがレンダリング中にエスケープされない)に依存している場合、そのページで問題が発生する場合があることに注意してください。 たとえば、HTMLマークアップに使用されているエスケープ文字を含むアイテムがあるページで問題が発生する場合があります。

このタイプの問題を修正するには、次の手順を実行します。

  1. アイテム・タイプを「テキストとして表示(状態は保存しない)」に変更します。

  2. POSTDATAに値を送る必要がある場合、XSSの危険にさらされることなく目的の結果を得るように、ページ設計を調整します。

オープン・バグおよび既知の問題

このセクションでは、Oracle HTML DBのバグおよび既知の問題について説明します。

レポート列内のインデントされたリンク値のリストア

Oracle HTML DBの以前のリリースでは、問合せ列がHTMLの式およびリンクで使用された場合、それらの問合せ列の値からすべてのHTMLタグが削除されます。 Oracle HTML DBリリース1.6では、「レポート属性」ページの「HTMLを削除」属性を無効にすることによって、この動作を無効にできます。 デフォルトではこの属性が有効であるため、以前のリリースのOracle HTML DBで開発されたアプリケーションの動作は、アップグレード後も同じになります。

リリース1.6では、削除されるHTMLタグにNBSCエスケープ文字も含まれます。 このタイプの文字は、一部のアプリケーションでレポート列内のリンク値をインデントするために使用されます。 レポートを編集し、「レポート属性」ページの「HTMLを削除」属性を「いいえ」に設定すると、アップグレード後にインデントをリストアできます。

以前のリリースから移行されたアプリケーションへのテーマの実装

Oracle HTML DBリリース1.6では、テーマの概念が導入されています。 テーマとは、Oracle HTML DBアプリケーション内のテンプレートの論理グループおよび分類のことです。 HTML DBエンジンは、クラスを使用して異なるテーマ間でテンプレートをマップします。 この機能は今回のリリースの新機能であるため、以前のリリースで作成されたアプリケーションでテーマを使用する前に、次の問題に注意する必要があります。

以前のリリースからリリース1.6にアプリケーションをインポートする場合、Oracle HTML DBによって、そのアプリケーション内のすべてのテンプレートがアプリケーション・テーマという名前のテーマにグループ化されます。

以前のリリースで開発されたアプリケーションのテーマを切り替える前に、次の手順を実行する必要があります。

  • アプリケーション内の各テンプレートを編集し、適切なクラスに適用します。

    切替え先と切替え元の両方のテーマに同じクラスが含まれている必要があります。 テンプレートが事前定義されたクラスに該当しない場合、カスタム・クラスを使用できます。 テンプレート・タイプごとに、8つのカスタム・クラスが存在します。

  • 切替え先と切替え元のテーマ内のデフォルト・テンプレート(およびテンプレート・クラス)を確認します。 テーマに定義されているデフォルトのテンプレートは、「テーマを定義」ページで確認できます。

    この手順を実行しないと、予測できない結果になる場合があります。 たとえば、一方のテーマのデフォルト・ページ・テンプレートが1レベルのテンプレートであり、他方のテーマのデフォルト・ページ・テンプレートが2レベルのテンプレートである場合に、問題が発生する場合があります。

アプリケーション・テーマを切り替え、そのテーマが正常にレンダリングされない場合、次の手順を実行します。

  1. アクティブ・テーマのデフォルト・テンプレートが正しく設定されていることを確認します。

  2. アクティブ・テーマ内のテンプレートの分類が正しいことを確認します。

日本語の列属性書式

Application Builderの「ページ定義」の「列属性」で数値書式または日付書式の選択ポップアップ・ダイアログを開くと、そのダイアログには常に「バックスラッシュ」+ 5,234.10と表示されます。 正確には、日本語環境では円記号が表示されるはずです。

バックスラッシュと円記号は同じ文字コード・ポイントですが、選択されたフォントに応じて表示が異なります。 バックスラッシュは、アプリケーション内のページ上で日付書式を適用した際にも表示されます。

日本語の名前を持つアイテムの作成

ウィザードを使用して、表またはビューに、日本語の名前を持つ列に基づいてフォームを作成した場合、その新しいアイテムの名前が日本語で含まれます。

この問題を修正するには、「ページ定義」で新しいアイテムを作成する際に、アイテム名に英数字(A〜Z、0〜9および「_」)を使用します。 また、変更をアイテムに適用する前に、アイテム名を英数字に変更する必要がある場合もあります。

以前のリリースからインポートされたアプリケーションでの実行時エラー

Oracle HTML DBの以前のリリースのアプリケーションをエクスポートし、Application Builderのインストール・ページでそのアプリケーションをインポートおよびインストールした場合、まれにアプリケーションのインストール後に実行時エラーが発生する場合があります。

多くの場合、これらのエラーは、アプリケーション・コンポーネントに埋め込まれたPL/SQLコードのブロックに関連するPL/SQLパーサー・エラーまたは実行エラーです。 インストール・プロセスによって、200文字を超える文字列が複数の行に分割される場合があります。 たとえば、行がPL/SQLキーワードとPL/SQLキーワードの間、または解析エラーの原因となる箇所で分割される場合があります。

これらのタイプのエラーが発生し、インストール・プロセスによって長い文字列が分割された疑いがある場合、次の手順を実行します。

  1. エラーが発生したページをApplication Builderで編集して、アプリケーション内の問題がある疑いのあるPL/SQLを含む、エラーが発生したコンポーネントを隔離します。

  2. 不適切に分割されたコードのブロックの場所を検索します。

  3. コードのブロックをより適切な箇所で分割するか、または実行時エラーが発生しなくなるまで行に空白を挿入します。

  4. アプリケーションをエクスポートし、エクスポート・ファイルをインポートして再インストールします。

  5. 新しいエクスポート・ファイルを永続バックアップ・コピーとして保持します。

配列として定義された入力パラメータを含むWSDLでのWeb参照の作成

配列として定義された入力パラメータを含むWSDLドキュメント上で、Oracle HTML DBにWebサービス参照を作成した場合、組込みウィザードを使用して、そのWeb参照にフォームおよびレポートを作成することができません。 Oracle HTML DBでは、配列である入力パラメータ用のユーザー・インタフェースが提供されていません。 配列として定義された出力パラメータは、「Webサービスのフォームとレポート」ウィザードを使用した場合に適切に処理されます。

ドキュメントのアクセシビリティについて

オラクル社は、障害のあるお客様にもオラクル社の製品、サービスおよびサポート・ドキュメントを簡単にご利用いただけることを目標としています。 オラクル社のドキュメントには、ユーザーが障害支援技術を使用して情報を利用できる機能が組み込まれています。 HTML形式のドキュメントで用意されており、障害のあるお客様が簡単にアクセスできるようにマークアップされています。 標準規格は改善されつつあります。オラクル社はドキュメントをすべてのお客様がご利用できるように、市場をリードする他の技術ベンダーと積極的に連携して技術的な問題に対応しています。 オラクル社のアクセシビリティについての詳細情報は、Oracle Accessibility Program のWeb サイトhttp://www.oracle.com/accessibility/を参照してください。

ドキュメント内のサンプル・コードのアクセシビリティについて JAWS(Windowsのスクリーン・リーダー)は、ドキュメント内のサンプル・コードを正確に読めない場合があります。 コード表記規則では閉じ括弧だけを行に記述する必要があります。しかしJAWSは括弧だけの行を読まない場合があります。

外部Webサイトのドキュメントのアクセシビリティについて このドキュメントにはオラクル社およびその関連会社が所有または管理しないWebサイトへのリンクが含まれている場合があります。 オラクル社およびその関連会社は、それらのWebサイトのアクセシビリティに関しての評価や言及は行っておりません。