ネイティブ XML ドライバを使用するレポートの作成

ネイティブ XML ドライバ概要

メモ    現在、ネイティブ XML ドライバは、日本語、英語、フランス語、およびドイツ語でのみサポートされます。その他の言語についての情報は、Developer Zone(http://www.businessobjects.com/ipl/default.asp?destination=developerzone&language=EN&product=CRJavaProducts&edition=Professional&version=10.0&Partner=IBM)(英語)を参照してください。

Crystal 製品専用のネイティブ XML ドライバは、XML ストリームを読み取り、対応するスキーマ(XSD)に基づいてその内容を解析し、データの階層型テーブル表現を生成します。レポートの作成時には、Crystal Reports によってこの階層型のテーブル表現が使用されます。

メモ    階層型のテーブル表現は、Crystal Reports で XML そのものを使用するときに、内部のクエリー定義に基づいて XML に直接マップされます。XML はリレーショナル テーブル モデルに分解されません。

XML ストリームの解析中に XML ドライバが使用するスキーマまたは DTD(Document Type Definition)を指定する必要があります。ドライバは、このスキーマか DTD を使用して、XML データ型を Crystal データ型に変換する方法を決定します。スキーマとデータ型の変換方法に関する詳細は、スキーマを参照してください。

ネイティブ XML ドライバについての詳細は、次の Developer Zone(英語)を参照してください。

http://www.businessobjects.com/ipl/default.asp?destination=developerzone&language=EN&product=CRJavaProducts&edition=Professional&version=10.0&Partner=IBM

このサイトでは、サンプルやその他の情報を入手できます。XML の一般的な概要については、『Crystal Reports ユーザーズ ガイド』を参照してください。

はじめに

Crystal Reports でネイティブ XML ドライバを使用するには、CRDB_JavaServer.ini ファイルを設定する必要があります。このファイルの場所については、必要なコンポーネントを参照してください。全パラメータの一覧とその説明については、CRDB_JavaServer.ini パラメータ リファレンスを参照してください。設定が必要な主要なパラメータは、PathClasspath、および IORFileLocation です。

メモ    

XML データ ソース アクセス タイプ

XML ドライバを選択して Crystal Reports で新しい接続を作成するときに、いくつかの使用可能なデータ ソース タイプからデータ ソースを選択することができます。ここでは、各データ ソース タイプについて説明します。接続時に完了する必要があるステップについては、XML データ ソースを選択するを参照してください。

ローカル データ ソース

ローカル データ ソースは、ローカル マシン、またはパスとファイル名を入力することで接続できるネットワーク ドライブにある XML ファイルです。XML ドライバで、フル パスとファイル名を入力するか、[開く]ダイアログ ボックスでファイルを検索して選択することができます。XML ファイル用のスキーマ(XSD)がある場合は、そのスキーマを指定することができます。スキーマとその使用方法に関する詳細は、スキーマを参照してください。

HTTP(S)データ ソース

HTTP(S)データ ソースは、サーブレット、ASP ページ、JSP ページ、または動的に作成された別のタイプの Web ページからアクセスできる XML ファイルまたは XML ストリームです。このようなデータ ソースには、HTTP または HTTPS のどちらかの URL を指定できます。HTTPS を使用している場合は、Crystal Reports か Crystal Enterprise で入力するユーザー ID とパスワードを使用して、基になる HTTP プロバイダに対する認証を行います。

XML ドライバでは、URL を入力して、後から認証アカウント情報を追加することができます。XML ファイルか XML ストリーム用のスキーマ(XSD)がある場合は、そのスキーマと認証アカウント情報を指定することができます。スキーマとその使用方法に関する詳細は、スキーマを参照してください。

HTTP(S)データ ソースは HTTP パラメータもサポートします。詳細については、HTTP パラメータを参照してください。

Web サービス データ ソース

Web サービス データ ソースは、ローカル マシン、またはパスやファイル名を入力して接続できるネットワーク ドライブにあるサービスです。あるいは、サーブレットや動的に作成された Web ページからアクセスするサービスです。このようなソースには、HTTP または HTTPS のどちらかの URL を指定できます。XML 応答ファイルのスキーマは、手動で指定するのではなく、Web サービス フレームワークから生成されます。

Web サービス データ ソースには WSDL(Web Services Description Language)を通じてアクセスします。WSDL は、Web サービスを記述する際の標準形式です。WSDL を指定したら、ドライバで、使用するサービス、ポート、およびメソッドを選択できます。

スキーマ

XML ドライバを使用する場合は、スキーマ(XSD)または DTD(Document Type Definition)を指定するか、XML 文書に埋め込まれたスキーマ情報を使用できます。スキーマは、Crystal Reports 内で XML データを示す方法を決定するために使用します。

メモ    XML ファイルで使用するスキーマを指定すると、XML ファイル自体に埋め込まれているか XML ファイル自体で参照されているスキーマ情報ではなく、指定されたスキーマが使用されます。

次の表では、ネイティブ XML ドライバで XML データ型がどのように Crystal データ型にマップされるかを示します。

XML データ型 Crystal データ型

string

String

Boolean

Boolean

Decimal

Number

float

Number

Double

Number

duration

String(Duration:duration

dateTime

DateTime

time

time

date

Date

gYearMonth

Date(月の最初の日)

gYear

Date(年の最初の日)

gMonthDay

Date(現在の年内)

gDay

Date(現在の年/月内)

gMonth

Date(現在の年-最初の日)

hexBinary

BLOB

base64Binary

BLOB

anyURI

String

QName

String

NOTATION

String(Notation:notation

normalizedString

String

token

String

language

String

NMTOKEN

String

NMTOKENS

String

Name

String

NCName

String

ID

String

IDREF

String

IDREFS

String

ENTITY

String

ENTITIES

String

Integer

Number

nonPositiveInteger

Number

negativeInteger

Number

long

Number

int

Number

short

Number

byte

Number

nonNegativeInteger

Number

unsignedLong

Number

unsignedInt

Number

unsignedShort

Number

unsignedByte

Number

positiveInteger

Number

anySimpleType

String

メモ    名前では大文字と小文字が区別されます。

XML ドライバは、次の表に示すように、XML 属性、名前空間、特定のデータ型、およびタグを処理します。

XML ドライバによる解決方法

属性

属性は、@ 記号の接頭辞付きで列名に組み込まれます。たとえば、タグ <a attrib="valueofattrib"> はフィールド A@attrib になります。

名前空間

名前空間は列名に組み込まれます。たとえば、タグ <abc.name> はフィールド abc:name になります。

複合データ型

複合型要素は、繰り返し要素の有無に関係なく、Crystal Reports 内のテーブルに解決されます。ただし、複合型に単一の単純型要素だけが含まれる場合は例外です。この場合、要素は <CR> で区切られた要素の値リストを含む長い文字列として返されます。

List データ型

List データ型は、常に文字列型として解決されます。文字列にはリストが含まれます。

Union データ型

Union データ型は、Union のコンテンツを含む文字列を返します。

Mixed データ型

Mixed として定義されるデータ型は、MEMO フィールドとしてタグのコンテンツ全体を含む(要素独自のタグも含む)XML フラグメントとして返されます。

processContents="skip" 属性で定義される型

processContents="skip" 属性で定義される型は、MEMO フィールドとしてタグのコンテンツ全体を含む(要素独自のタグも含む)XML フラグメントとして返されます。

processContents="lax" 属性で定義される型

processContents="lax" 属性で定義される型は、スキーマを通じて解決されます。解決できない場合、データは、MEMO フィールドとしてタグのコンテンツ全体を含む(要素独自のタグも含む)XML フラグメントとして返されます。

Choice タグ

Choice タグが使用される場所では、すべての組み合わせの和が、選択したパスを示す列挙されたフィールドとともに提供されます。

実際の値を含まないタグ

タグが単純型で実際の値を含まない場合、NULL 値が返されます。NULL はすべてのデータ型で受け入れられます。

XSD または DTD から最も遠い(ルート)スキーマ要素を確認できない場合は、すべての可能なルートが表示されます。この中から、データ接続の一部となるルートを選択する必要があります。

HTTP パラメータ

HTTP(S)データ ソースを選択した場合は、基になるサーブレットや動的に作成された Web ページに渡す HTTP パラメータを定義することもできます。これらのパラメータは、正しい XML ストリームを返すための情報をサーブレットや Web ページに渡します。パラメータは Form 変数として基になる接続に渡されます。Form 変数名は Crystal パラメータ名に対応しています。たとえば、Crystal の{?REGION}パラメータは Form 変数では 'REGION' になります。

選択される複数の値で渡されるすべてのパラメータは、同じ名前の複数の Form 変数を送信します。たとえば、次の例を考えてみます。

<p>最も売上高の高い味は?

<input type=checkbox name=flavor value=vanilla>バニラ<br>

<input type=checkbox name=flavor value=strawberry>ストロベリー<br>

<input type=checkbox name=flavor value=chocolate checked>チョコレート<br>

“チョコレート”と“バニラ”の両方を選択すると、vanilla と cholate という値を持つ flavor という名前の 2 つの Form 変数が、GET フォーマットで "http://server/servlet?flavor=Vanilla&flavor=Chocolate" のように送信されます。それぞれ、Crystal Reports から“バニラ”と“チョコレート”の値を選択したパラメータ{?flavor}によって、同じ URL 要求が作成されます。


Business Objects
http://japan.businessobjects.com/
サポート サービス
http://japan.businessobjects.com/services/