• 検索結果がありません。

cache-timeout-interval

ドキュメント内 xml.book (ページ 61-67)

キ ャ ッ シ ュ さ れた外部エンテ ィ テ ィ が古 く な る ( 期限切れにな る ) までの秒数を 指定する要素。 キ ャ ッ シ ュ さ れた コ ピーが こ の期間を超えた場合、 WebLogic

Server は、 EAR アーカ イ ブまたは展開デ ィ レ ク ト リ の メ イ ン デ ィ レ ク ト リ を基

準に指定さ れた相対 URL ま たはパス名か ら外部エンテ ィ テ ィ を再取得し ます。

こ のフ ィ ール ドのデフ ォル ト 値は、 120 秒です。

エン タープ ラ イズ アプ リ ケーシ ョ ン用の パーサまたは ト ラ ンスフ ォーマのコ ン フ ィ グレーシ ョ ン

XML

アプ リ ケーシ ョ ンが、 WebLogic Server に対し て コ ン フ ィ グ レーシ ョ ン さ れた組み込みパーサ または ト ラ ン ス フ ォーマ と 異な るパーサま たは ト ラ ン ス フ ォーマを使用する よ う に指定で き ます。 それには、 XML アプ リ ケーシ ョ ンの 入っ てい る EAR フ ァ イ ルま たは展開デ ィ レ ク ト リ の

weblogic-application.xml を更新し ます。

エン タープ ラ イ ズ アプ リ ケーシ ョ ン用に組み込み以外のパーサま たは ト ラ ン ス フ ォーマを コ ン フ ィ グ レーシ ョ ンする には、 以下の手順を実行し ます。

1.

<xml>要素の <parser-factory>サブ要素を使用し、 エン タープ ラ イ ズ アプ リ ケーシ ョ ンのために、 SAX および DOM ス タ イ ル解析用および XSLT 変換 用のフ ァ ク ト リ ク ラ ス を コ ン フ ィ グ レーシ ョ ン し ます。 次に例を示し ます。

<parser-factory>

<saxparser-factory>

weblogic.xml.babel.jaxp.SAXParserFactoryImpl </saxparser-factory>

<document-builder-factory>

org.apache.xerces.jaxp.DocumentBuilderFactoryImpl </document-builder-factory>

<transformer-factory>

org.apache.xalan.processor.TransformerFactoryImpl </transformer-factory>

</parser-factory>

こ の weblogic-application.xmlフ ァ イ ルに対応する アプ リ ケーシ ョ ンで は、 SAX ス タ イ ル解析には

weblogic.xml.babel.jaxp.SAXParserFactoryImplフ ァ ク ト リ ク ラ ス、

DOM

ス タ イ ル解析には

org.apache.xerces.jaxp.DocumentBuilderFactoryImplフ ァ ク ト リ ク ラ ス、 XSLT 変換には

org.apache.xalan.processor.TransformerFactoryImpl ク ラ スが使用さ れます。

2.

パーサ ク ラ ス ま たは ト ラ ン ス フ ォーマ ク ラ ス を EAR アーカ イ ブに対し て ローカルにするには、 対象の ク ラ スの入ってい る JAR フ ァ イ ルを EAR フ ァ イルの任意の場所に置き、META-INF/MANIFEST.MFフ ァ イ ル内の

Class-Path変数を更新し ます。

た と えば、 デ ィ レ ク ト リ lib/xmlにあ る myparser.jar と い う 名前の JAR フ ァ イルにパーサ ク ラ ス ま たは ト ラ ン ス フ ォーマ ク ラ ス を置 く には、 以下 に示すよ う に MANIFEST.MFフ ァ イルを更新し ます。

Manifest-Version: 1.0

Created-By: 1.3.1_01 (Sun Microsystems Inc.) Class-Path: lib/xml/myparser.jar

3.

パーサ ク ラ ス ま たは ト ラ ン ス フ ォーマ ク ラ ス を EAR アーカ イ ブ以外の場所 に格納する場合は、 ク ラ スの入っ ている JAR フ ァ イ ルの完全パス名を含むよ

う に WebLogic Server CLASSPATH 変数を必ず更新し て く だ さ い。

エン タープ ラ イズ アプ リ ケーシ ョ ン用の外 部エンティ ティ のコ ン フ ィ グレーシ ョ ン

DTD

な どの外部エンテ ィ テ ィ は、 Web か ら取得するだけでな く 、 その ローカル コ ピーを EAR アーカ イ ブま たは展開デ ィ レ ク ト リ に格納し てお く こ と も で き ま す。

エン タープ ラ イ ズ アプ リ ケーシ ョ ン用の外部エンテ ィ テ ィ を コ ン フ ィ グ レー シ ョ ンする には、 以下の手順を実行し ます。

1. EAR

アーカ イ ブの メ イ ン デ ィ レ ク ト リ の下にデ ィ レ ク ト リ lib/xml/registryを作成し ます。

2. DTD

の よ う な外部エンテ ィ テ ィ を そのデ ィ レ ク ト リ にコ ピーし ます。

3.

weblogic-application.xmlフ ァ イ ルを更新し、<xml>要素の

<entity-mapping>サブ要素を使用し て、 アプ リ ケーシ ョ ンに よ り 処理 さ れ る XML フ ァ イ ルのエンテ ィ テ ィ 宣言にエンテ ィ テ ィ の名前をマ ッ プ し ます。

以下に例を示し ます。

<entity-mapping>

<entity-mapping-name>My Mapping</entity-mapping-name>

<public-id>-//BEA Systems, Inc.//DTD for cars//EN</public-id>

<system-id>http://www.bea.com/dtds/car.dtd</system-id>

<entity-uri>dtds/car.dtd</entity-uri>

</entity-mapping>

こ の例では、car.dtd と い う DTD の ローカル コ ピーが EAR アーカ イ ブま たは展開デ ィ レ ク ト リ の メ イ ン デ ィ レ ク ト リ の下の

lib/xml/registry/dtdsデ ィ レ ク ト リ に格納 さ れます。 こ のエンテ ィ テ ィ のパブ リ ッ ク ID は -//BEA Systems, Inc.//DTD for cars//ENで、 シ ス テム ID は http://www.bea.com/dtds/car.dtdです。 アプ リ ケーシ ョ ンが

XML

フ ァ イ ルの解析中に、 こ れ ら の ID のいずれかを使用し てい るエンテ ィ テ ィ 宣言を検出する と 、 その宣言は car.dtd

フ ァ イルに置き換え られます。

注意: エンテ ィ テ ィ の ローカル コ ピーをマ ッ プする各エンテ ィ テ ィ 宣言につい て、<entity-mapping>要素を指定し て く だ さ い。

エン タープ ラ イズ アプ リ ケーシ ョ ン用の外 部エンティ ティ キャ ッ シ ュのコ ン フ ィ グ

レーシ ョ ン

サーバ起動時、 ま たはエンテ ィ テ ィ の最初の参照時のいずれかに、 EAR アーカ イ ブの メ イ ン デ ィ レ ク ト リ を基準に し た相対 URL ま たはパス名で参照さ れ る外 部エンテ ィ テ ィ を WebLogic Server がキ ャ ッ シ ュする よ う に指定で き ます。

外部エンテ ィ テ ィ を キ ャ ッ シ ュする と 、 リ モー ト ア ク セ ス時間が節約 さ れる だ けでな く 、 ネ ッ ト ワーク ま たは管理サーバのダ ウ ンに よ り XML ド キ ュ メ ン ト の 解析中に管理サーバにア ク セス でき な く なっ た場合には、 ローカル バ ッ ク ア ッ プを利用でき ます。

キ ャ ッ シ ュ さ れたエンテ ィ テ ィ について、 WebLogic Server が URL ま たは EAR のデ ィ レ ク ト リ か ら エンテ ィ テ ィ を再取得し て再キ ャ ッ シ ュする間隔 ( 有効期限

)

を コ ン フ ィ グ レーシ ョ ンで き ます。

エン タープ ラ イ ズ アプ リ ケーシ ョ ン用の外部エンテ ィ テ ィ キ ャ ッ シ ュ を コ ン フ ィ グ レーシ ョ ンするには、<entity-mapping>要素の <when-to-cache>サブ 要素 と <cache-timeout-interval>サブ要素を使用し ます。 以下に例を示し ま す。

<entity-mapping>

<entity-mapping-name>My Mapping</entity-mapping-name>

<public-id>-//BEA Systems, Inc.//DTD for cars//EN</public-id>

<system-id>http://www.bea.com/dtds/car.dtd</system-id>

<entity-uri>dtds/car.dtd</entity-uri>

<when-to-cache>cache-at-initialization</when-to-cache>

<cache-timeout-interval>300</cache-timeout-interval>

</entity-mapping>

こ の例では、car.dtd が EAR アーカ イ ブまたは展開デ ィ レ ク ト リ の メ イ ン デ ィ レ ク ト リ の下の lib/xml/registry/dtdsデ ィ レ ク ト リ に格納 さ れます。

WebLogic Server

の最初の起動時に DTD の コ ピーが メ モ リ にキ ャ ッ シ ュ さ れ、

以後は、 キ ャ ッ シ ュ さ れた コ ピーが 300 秒以上格納さ れてい る場合に リ フ レ ッ シ ュ さ れます。

使い方

以下の節では、 WebLogic XML Streaming API に よ り XML ド キ ュ メ ン ト の解析 と 生成を行 う 方法について説明し ます。

4-1

ページの 「WebLogic XML Streaming API の概要」

4-3 ページの 「WebLogic XML Streaming API の Javadoc」

4-3 ページの 「XML ド キ ュ メ ン ト の解析 : 一般的手順」

4-21

ページの 「新し い XML ド キ ュ メ ン ト の生成 : 一般的手順」

WebLogic XML Streaming API の概要

WebLogic XML Streaming API

は、XML ド キ ュ メ ン ト の解析 と 生成を簡単に直感 的に行え る方法を提供し ます。 SAX API に似ていますが、 複雑な XML ド キ ュ メ ン ト を処理する際の煩雑さ の原因にな る SAX イベン ト ハン ド ラ を書 く 必要はな

く 、 手順の流れに従っ て XML ド キ ュ メ ン ト を処理でき ます。 つま り 、

Streaming API では、 SAX API よ り 解析を綿密に制御でき ます。

SAX

を使用し て XML ド キ ュ メ ン ト を解析する場合、 プ ロ グ ラ ムでは、 イ ベン ト 発生時に解析を リ ス ンする イベン ト リ スナを作成し、 特定の イベン ト を請求 する のではな く 、 イ ベン ト に対し て対応する必要があ り ます。 一方、 Streaming

API

を使用する場合は、 XML ド キ ュ メ ン ト を手順の流れに沿っ て処理する こ と 、 特定の タ イ プの イベン ト ( 要素の開始な ど ) を請求する こ と 、 要素の属性を繰 り 返し処理する こ と 、 ドキ ュ メ ン ト の先頭を ス キ ッ プする こ と 、 任意の時点で処理 を停止する こ と 、 特定の要素のサブ要素を取得する こ と 、 指定どお り に要素を フ ィ ル タする こ と がで き ます。 イ ベン ト に対応するのではな く 、 イベン ト を請求 する ので、 Streaming API を使用する方法は、 「プル解析」 と 呼ばれる こ と も あ り ます。

Streaming API

に よ り 、 オペレーテ ィ ング シ ス テム上の XML フ ァ イル、 DOM ツ リ ー、 SAX イベン ト のセ ッ ト な ど、 多 く の タ イ プの XML ド キ ュ メ ン ト を解析 で き ます。 こ れ ら の XML ド キ ュ メ ン ト を イベン ト のス ト リ ーム、 すなわち XMLInputStream、 に変換し、 こ のス ト リ ーム を順に処理し て、 要素の開始、 ド キ ュ メ ン ト の終了な どの イ ベン ト を必要に応じ て ス タ ッ ク か ら取得し ます。

WebLogic Streaming API

は、 デフ ォル ト パーサ と し て WebLogic FastParser を使 用し ます。

Streaming API

に よ る XML ド キ ュ メ ン ト 解析の詳細なサンプルについては、

WL_HOME\samples\server\src\examples\xml\orderParserデ ィ レ ク ト リ を 参照し て く だ さ い。WL_HOME

は、 最上位 WebLogic Platform デ ィ レ ク ト リ です。

次の表で、 WebLogic Streaming API の主な イ ン タ フ ェース と ク ラ スについて説明 し ます。

4-1 XML Streaming API のイ ン タ フ ェース と ク ラス イ ン タ フ ェースまたはク ラス 説明

XMLInputStreamFactory

XML

ド キ ュ メ ン ト 解析用のXMLInputStream オブジ ェ ク ト を作成する ために使用 さ れ る フ ァ ク ト リ 。

XMLInputStream イ ベン ト の入力ス ト リ ーム を入れ る ために使用 さ れ る イ ン タ フ ェース。

BufferedXMLInputStream XMLInputStreamイ ン タ フ ェース で ス ト リ ーム のマーキ ン グ と リ セ ッ ト を行え る よ う にす る た めの拡張。

XMLOutputStreamFactory

XML

ド キ ュ メ ン ト 生成用のXMLOutputStream オブジ ェ ク ト を作成する ために使用 さ れ る フ ァ ク ト リ 。

XMLOutputStream イ ベ ン ト を書き 込むために使用 さ れ る イ ン タ フ ェース。

ElementFactory こ の

API

で使用 さ れ る イ ン タ フ ェース の イ ン ス タ ン ス を作成す る ためのユーテ ィ リ テ ィ 。

ドキュメント内 xml.book (ページ 61-67)

関連したドキュメント