WebLogic Web サービス プログラマーズ ガイド
UDDI を使用した Web サービスのパブリッシュと検索
この章では、UDDI を使用した Web サービスのパブリッシュと検索に関する情報を提供します。
UDDI の概要
UDDI とは、Universal Description, Discovery, and Integration の略です。UDDI プロジェクトは、企業が互いに迅速、簡潔、動的にトランザクションを検索および実行できるようにするための業界イニシアティブです。
UDDI レジストリには、ビジネス、ビジネスが提供するサービス、およびビジネスがトランザクションを実行するために使用する通信規格とインタフェースに関する情報がカタログ化されて格納されます。
UDDI は SOAP (Simple Object Access Protocol) データ通信規格に基づいて構築されており、グローバルでプラットフォームに依存しないオープンなアーキテクチャを実現して企業にメリットをもたらします。
UDDI レジストリは、次の 2 つのカテゴリに大別できます。
UDDI のデータ構造の詳細については、「UDDI のデータ構造」を参照してください。
UDDI と Web サービス
Web サービスの所有者は、それらのサービスを UDDI レジストリにパブリッシュします。パブリッシュすると、UDDI レジストリには Web サービスの説明と Web サービスのポインタが保持されます。
UDDI を使用すると、クライアントはこのレジストリを検索し、目的のサービスを見つけてその詳細を取得できます。これらの詳細には、サービスの呼び出しポイントのほかに、サービスとその機能を識別するための情報が含まれます。
Web サービス機能は、プログラミング インタフェースを介してエクスポーズされ、一般に WSDL (Web Services Description Language) を介して記述されます。一般的な公開と照会のシナリオでは、プロバイダがそのビジネスをパブリッシュし、その下にサービスを登録し、バインディング テンプレートにその Web サービスの技術情報を定義します。バインディング テンプレートには、1 つまたは複数の tModel への参照も保存されます。tModel は、この Web サービスによって実装される抽象的なインタフェースを表します。tModel は、プロバイダによって独自にパブリッシュされている場合があります。これらの tModel には、インタフェースと WSDL ドキュメントの URL 参照に関する情報が格納されています。
一般的なクライアントの照会の目的は、次の 2 つのうちのいずれかです。
この場合、クライアントは tModel ID を持っており、その tModel を参照するバインディング テンプレートを検索します。
既知のバインディング テンプレート ID の呼び出しポイント (アクセス ポイントなど) の更新値を検索する
UDDI とビジネス レジストリ
ビジネス レジストリ ソリューションとしての UDDI を使用すると、企業は自社のビジネス製品およびサービス、さらに Web でのビジネス トランザクションの実行方法を公開できます。このように UDDI を使用することにより、企業間 (B2B) 電子商取引が促進されます。
ビジネスをパブリッシュするために必要な情報は、1 つのビジネス名だけです。パブリッシュされたビジネス エンティティの詳細な記述には、さまざまな情報が含まれます。こうした情報はすべて、ビジネス エンティティとその製品およびサービスを、正確に、そしてアクセス可能な形式で公開するのに役立ちます。
ビジネス レジストリには、次の要素が含まれます。
ビジネス ID - ビジネスの複数の名前と説明、連絡先、および標準の ID (納税者番号など)。
カテゴリ - 標準のカテゴリ情報 (D-U-N-S ビジネス カテゴリ番号など)。
サービスの記述 - サービスの複数の名前と説明。サービス情報のコンテナとして、企業はさまざまなサービスを公開しつつ、サービスの所有権を明確に表示できます。bindingTemplate
情報には、サービスへのアクセス方法が含まれます。
規格への準拠 - 場合によっては、各種規格への準拠を指定することが重要となります。これらの規格には、サービスの使い方に関する詳細な技術要件が示されます。
カスタム カテゴリ - ビジネスまたはサービスを識別または分類する独自仕様 (tModels) をパブリッシュできます。
UDDI のデータ構造
UDDI のデータ構造は、businessEntity
、businessService
、bindingTemplate
、tModel
という 4 つの構造で構成されています。
次の表に、Web サービスまたはビジネス レジストリ アプリケーションで使用する場合のこれらの構造の相違点を示します。
表 11-1 UDDI のデータ構造
データ構造
|
Web サービス
|
ビジネス レジストリ
|
businessEntity
|
Web サービス プロバイダを表す。
|
企業、またはその事業部または部門を表す。
|
businessService
|
1 つまたは複数の Web サービスの論理グループ。
単一名の API。子要素として格納され、上記の名前のビジネス エンティティによって保持される。
|
単一の businessEntity に複数のサービスを含めることができる。
|
bindingTemplate
|
単一の Web サービス。
ここに指定した情報により、クライアント アプリケーションは対象 Web サービスに接続して対話するための情報を取得する。
アクセス ポイント (Web サービスを呼び出す URI など) を含む。
|
追加の規格準拠インスタンス。
URL 形式のサービス アクセス ポイント、電話番号、電子メール アドレス、ファックス番号など。
|
tModel
|
技術仕様 (通常は仕様のポインタ)、または仕様ドキュメントに関するメタデータ (実際の仕様を指す名前および URL など) を表す。Web サービスのコンテキストでは、実際の仕様ドキュメントは WSDL ファイルで表される。
|
普及しているか、またはユーザが特定用途のために登録した標準または技術仕様を表す。
|
WebLogic Server の UDDI 機能
WebLogic Server は、以下の UDDI 機能を提供します。
UDDI 2.0 サーバ
UDDI 2.0 サーバは WebLogic Server の一部であり、WebLogic Server の起動時に自動的に起動されます。UDDI サーバは、UDDI 2.0 サーバ仕様を実装しています。
UDDI 2.0 サーバのコンフィグレーション
UDDI 2.0 サーバをコンフィグレーションするには、次の手順に従います。
WL_HOME
/server/lib
ディレクトリの uddi.properties
ファイルを更新します。WL_HOME
は、WebLogic Server の最上位のディレクトリです。
警告 : WebLogic Server ドメインを作成したユーザが WebLogic Server をインストールしたユーザと異なる場合は、WebLogic Server 管理者は uddi.properties
ファイルのパーミッションを変更してすべてのユーザがアクセスできるようにする必要があります。
WebLogic Server の実行中は uddi.properties
ファイルを編集しないでください。このファイルを修正したことで UDDI サーバが正常に起動しなくなった場合は、WL_HOME
/server/lib/uddi.properties.booted
ファイルの前回の正常なコンフィグレーションを参照してください。
コンフィグレーションをデフォルトに回復するには、uddi.properties
ファイルを WL_HOME
/server/lib
ディレクトリから削除します。このファイルは、バックアップ用のディレクトリに移動することをお勧めします。新しい uddi.properties
ファイルが作成され、正常に起動されたときに uddi.properties.booted
ファイルが上書きされるからです。プロパティ ファイルを削除したら、サーバを再起動します。最低限のデフォルト プロパティがロードされ、新しい uddi.properties
ファイルに書き込まれます。
以下の節では、uddi.properites
ファイルに追加できる UDDI サーバ プロパティについて説明します。プロパティのリストは、コンポーネント、用途、および機能に従って分類されています。常にすべてのプロパティが必要というわけではありません。
uddi.properties ファイルのプロパティ
次の表に、uddi.properties
ファイルのすべてのプロパティを、コンフィグレーションされる UDDI のタイプ別に示します。
表 11-2 基本的な UDDI コンフィグレーション
UDDI プロパティ キー
|
説明
|
auddi.discoveryurl
|
保存されたビジネス エンティティごとに設定される DiscoveryURL プレフィックスを指定する。通常、これは uddilistener サーブレットの URL となるため、完全な DiscoveryURL を指定すると、格納された BusinessEntity データが表示される。
|
auddi.inquiry.secure
|
有効値は、true および false 。true に設定すると、UDDI サーバの照会呼び出しはセキュアな https 接続だけに制限される。通常の http URL を介した UDDI 照会は拒否される。
|
auddi.publish.secure
|
有効値は、true および false 。true に設定すると、UDDI サーバのパブリッシュ呼び出しはセキュアな https 接続だけに制限される。通常の http URL を介した UDDI パブリッシュは拒否される。
|
auddi.search.maxrows
|
このプロパティの値は、検索操作で返される行の最大数を指定する。検索の結果がこの最大行数を超えると、結果が切り詰められる。
|
auddi.search.timeout
|
このプロパティの値は、検索操作のタイムアウト値を指定する。この値は、ミリ秒単位で指定する。
|
auddi.siteoperator
|
このプロパティは、UDDI レジストリのサイト オペレータの名前を指定する。指定した値はオペレータ属性として使用され、以後のすべての BusinessEntity 登録に保存される。この属性は応答で返され、どの UDDI レジストリが応答を生成したかを示す。
|
security.cred.life
|
このプロパティの値は、認証の資格の有効期間を秒単位で指定する。ユーザの認証時に、このプロパティで指定した有効期限を持つ AuthToken が割り当てられる。
|
pluggableTModel.file.list
|
UDDI サーバには、標準の TModel があらかじめ組み込まれている。独自の分類法を使用して、TModel 形式で UDDI サーバをさらにカスタマイズできる。分類法は、XML スキーマに従って XML ファイルに定義する必要がある。このプロパティの値は、URI (XML ファイルなど) のカンマ区切りリストである。これらの TModel を表す値は、指定した分類法に照らし合わされてチェックおよび検証される。
|
表 11-3 UDDI のユーザ デフォルト
UDDI プロパティ キー
|
説明
|
auddi.default.lang
|
このプロパティの値は、ユーザの初期言語を指定する。この言語は、デフォルトによって作成時にユーザ プロファイルに割り当てられる。ユーザのプロファイル設定は、サインアップ時またはそれ以降に変更できる。
|
auddi.default.quota.assertion
|
このプロパティの値は、デフォルトによって作成時にユーザ プロファイルに割り当てられる初期アサーション割り当てを指定する。アサーション割り当ては、ユーザがパブリッシュできるパブリッシャ アサーションの最大数。制限を設定しない場合は、値を -1 に設定する。ユーザのプロファイル設定は、サインアップ時またはそれ以降に変更できる。
|
auddi.default.quota.binding
|
このプロパティの値は、デフォルトによって作成時にユーザ プロファイルに割り当てられる初期バインディング割り当てを指定する。バインディング割り当ては、ビジネス サービスごとにユーザがパブリッシュできるバインディング テンプレートの最大数。制限を設定しない場合は、値を -1 に設定する。ユーザのプロファイル設定は、サインアップ時またはそれ以降に変更できる。
|
auddi.default.quota.entity
|
このプロパティの値は、デフォルトによって作成時にユーザ プロファイルに割り当てられる初期ビジネス エンティティ割り当てを指定する。エンティティ割り当ては、ユーザがパブリッシュできるビジネス エンティティの最大数。制限を設定しない場合は、値を -1 に設定する。ユーザのプロファイル設定は、サインアップ時またはそれ以降に変更できる。
|
auddi.default.quota.messageSize
|
このプロパティの値は、デフォルトによって作成時にユーザ プロファイルに割り当てられる初期メッセージ サイズ制限を指定する。メッセージ サイズ制限は、ユーザが UDDI サーバに送信できる SOAP 呼び出しの最大サイズ。制限を設定しない場合は、値を -1 に設定する。ユーザのプロファイル設定は、サインアップ時またはそれ以降に変更できる。
|
auddi.default.quota.service
|
このプロパティの値は、デフォルトによって作成時にユーザ プロファイルに割り当てられる初期サービス割り当てを指定する。サービス割り当ては、ビジネス エンティティごとにユーザがパブリッシュできるビジネスサービスの最大数。制限を設定しない場合は、値を -1 に設定する。ユーザのプロファイル設定は、サインアップ時またはそれ以降に変更できる。
|
auddi.default.quota.tmodel
|
このプロパティの値は、デフォルトによって作成時にユーザ プロファイルに割り当てられる TModel 割り当てを指定する。TModel 割り当ては、ユーザがパブリッシュできる TModel の最大数。制限を設定しない場合は、値を -1 に設定する。ユーザのプロファイル設定は、サインアップ時またはそれ以降に変更できる。
|
表 11-4 一般的なサーバのコンフィグレーション
UDDI プロパティ キー
|
説明
|
auddi.datasource.type
|
このプロパティでは、UDDI データの物理ストレージをコンフィグレーションできる。この値のデフォルトは WLS 。値 WLS は、WebLogic Server の内部 LDAP ディレクトリがデータ ストレージ用に使用されることを示す。それ以外の有効値は、LDAP 、ReplicaLDAP 、および File 。
|
auddi.security.type
|
このプロパティでは、UDDI サーバのセキュリティ モジュール (認証) をコンフィグレーションできる。この値のデフォルトは WLS 。値 WLS は、WebLogic Server のデフォルト セキュリティ レルムが UDDI 認証用に使用されることを示す。このため、WebLogic Server ユーザは UDDI サーバ ユーザとなる。また、どの WebLogic Server 管理者も UDDI サーバ管理者となり、UDDI サーバ設定で定義されている UDDI サーバの管理者グループのメンバーに加えられる。それ以外の有効値は、LDAP および File 。
|
auddi.license.dir
|
このプロパティの値は、UDDI サーバのライセンス ファイルの場所を指定する。このプロパティを指定しない場合、WL_HOME /server/lib ディレクトリがデフォルトのライセンス ディレクトリと見なされる。WL_HOME は、WebLogic Server のメイン インストール ディレクトリ。一部の WebLogic ユーザは、基本 UDDI サーバ コンポーネントの UDDI サーバ ライセンスの取得を免除されているが、追加コンポーネント (UDDI サーバ ブラウザなど) についてはライセンスが必要になる場合がある。
|
auddi.license.file
|
このプロパティの値は、ライセンス ファイルの名前を指定する。このプロパティを指定しない場合、uddilicense.xml がデフォルトのライセンス ファイル名と見なされる。一部の WebLogic ユーザは、基本 UDDI サーバ コンポーネントの UDDI サーバ ライセンスの取得を免除されているが、追加コンポーネント (UDDI サーバ ブラウザなど) についてはライセンスが必要になる場合がある。
|
表 11-5 ログ機能のコンフィグレーション
UDDI プロパティ キー
|
説明
|
logger.file.maxsize
|
このプロパティの値は、ログ機能の出力ファイルの最大サイズ (単位は KB) を指定する。出力ファイルが最大サイズに達すると、そのファイルは閉じられ、新しいログ ファイルが作成される。
|
logger.indent.enabled
|
有効値は、true および false 。true に設定すると、「+」および「-」で始まるログ メッセージ (通常 TRACE レベルのログ) によって出力のインデントが増減される。
|
logger.indent.size
|
このプロパティの値 (整数) は、各インデントのサイズ (スペースの数) を指定する。
|
logger.log.dir
|
このプロパティの値は、ログ ファイルが格納されるディレクトリの絶対パスまたは相対パスを指定する。
|
logger.log.file.stem
|
このプロパティの値は、すべてのログ ファイル名の先頭に付加される文字列を指定する。
|
logger.log.type
|
このプロパティの値は、ログ メッセージの出力先を画面にするか、ファイルにするか、またはその両方にするかを指定する。このプロパティの有効値は、それぞれ LOG_TYPE_SCREEN 、LOG_TYPE_FILE 、LOG_TYPE_SCREEN_FILE 。
|
logger.output.style
|
このプロパティの値は、ログ出力にメッセージだけを含めるか、またはスレッドおよびタイムスタンプ情報を含めるかを指定する。有効値は、OUTPUT_LONG と OUTPUT_SHORT の 2 つ。
|
logger.quiet
|
このプロパティの値は、ログ機能自体に情報メッセージを表示するかどうかを指定する。有効値は、true および false 。
|
logger.verbosity
|
このプロパティの値は、ログ機能の冗長レベルを指定する。有効値 (大文字と小文字は区別される) は、TRACE 、DEBUG 、INFO 、WARNING 、ERROR 。各重大度には、下位の重大度も含まれる。
|
表 11-6 接続プール
UDDI プロパティ キー
|
説明
|
datasource.ldap.pool.increment
|
プール内のすべての接続がビジーの場合、このプロパティの値は作成してプールに追加する新しい接続の数を指定する。
|
datasource.ldap.pool.initialsize
|
このプロパティの値は、プールの作成および初期化時に格納される接続数を指定する。
|
datasource.ldap.pool.maxsize
|
このプロパティの値は、プールが保持できる接続の最大数を指定する。
|
datasource.ldap.pool.systemmaxsize
|
このプロパティの値は、プールがその最大容量に達した後に作成される接続の最大数を指定する。プールが最大サイズに達し、すべての接続がビジーの場合、新しい接続が一時的に作成されてクライアントに返される。この接続はプールには格納されない。しかし、システムの最大サイズに達すると、ビジー接続が使用可能になるまで新しい接続リクエストはすべてブロックされる。
|
表 11-7 LDAP データストアのコンフィグレーション
UDDI プロパティ キー
|
説明
|
datasource.ldap.manager.uid
|
このプロパティの値は、LDAP にデータを保存できるバックエンド LDAP サーバ管理者または特権を持つユーザ ID (cn=Directory Manager など) を指定する。
|
datasource.ldap.manager.password
|
このプロパティの値は、上記のユーザ ID のパスワードであり、データ ストレージ用の LDAP ディレクトリに接続するために使用する。
|
datasource.ldap.server.url
|
このプロパティの値は、データ ストレージ用の LDAP ディレクトリの 「ldap://」 URL。
|
datasource.ldap.server.root
|
このプロパティの値は、データ ストレージ用の LDAP ディレクトリのルート エントリ (dc=acumenat、dc=com など)。
|
注意 : 複製 LDAP 環境では、「m」 LDAP マスタと「n」 LDAP レプリカが存在します。これらの番号は、それぞれ 0 から (m-1) および 0 から (n-1) です。次のプロパティ キーの 5 番目の部分の「i」はこの番号を表しており、定義されている LDAP サーバ インスタンスによって異なります。
表 11-8 複製 LDAP データストアのコンフィグレーション
UDDI プロパティ キー
|
説明
|
datasource.ldap.server.master.i.manager.uid
|
このプロパティの値は、LDAP にデータを保存できる、このマスタ LDAP サーバ ノードの管理者または特権を持つユーザ ID (cn=Directory Manager など) を指定する。
|
datasource.ldap.server.master.i.manager.password
|
このプロパティの値は、上記のユーザ ID のパスワードであり、関連するマスタ LDAP ディレクトリに接続してデータを書き込むために使用する。
|
datasource.ldap.server.master.i.url
|
このプロパティの値は、対応する LDAP ディレクトリ ノードの 「ldap://」 URL。
|
datasource.ldap.server.master.i.root
|
このプロパティの値は、対応する LDAP ディレクトリ ノードのルート エントリ (dc=acumenat、dc=com など)。
|
datasource.ldap.server.replica.i.manager.uid
|
このプロパティの値は、LDAP から UDDI データを読み出せる、このレプリカ LDAP サーバ ノードのユーザ ID (cn=Directory Manager など) を指定する。
|
datasource.ldap.server.replica.i.manager.password
|
このプロパティの値は、上記のユーザ ID のパスワードであり、関連するレプリカ LDAP ディレクトリに接続してデータを読み出すために使用する。
|
datasource.ldap.server.replica.i.url
|
このプロパティの値は、対応する LDAP ディレクトリ ノードの 「ldap://」 URL。
|
datasource.ldap.server.replica.i.root
|
このプロパティの値は、対応する LDAP ディレクトリ ノードのルート エントリ (dc=acumenat、dc=com など)。
|
表 11-9 ファイル データストアのコンフィグレーション
UDDI プロパティ キー
|
説明
|
datasource.file.directory
|
このプロパティの値は、UDDI データを格納するファイル システムのディレクトリを指定する。
|
表 11-10 一般的なセキュリティのコンフィグレーション
UDDI プロパティ キー
|
説明
|
security.custom.group.operators
|
このプロパティの値は、セキュリティ グループ名を指定する。このグループのメンバーは UDDI 管理者として扱われる。
|
表 11-11 LDAP セキュリティのコンフィグレーション
UDDI プロパティ キー
|
説明
|
security.custom.ldap.manager.uid
|
このプロパティの値は、LDAP にデータを保存できるセキュリティ LDAP サーバ管理者または特権を持つユーザ ID (cn=Directory Manager など) を指定する。
|
security.custom.ldap.manager.password
|
このプロパティの値は、上記のユーザ ID のパスワードであり、セキュリティ用の LDAP ディレクトリに接続するために使用する。
|
security.custom.ldap.url
|
このプロパティの値は、セキュリティ用の LDAP ディレクトリの 「ldap://」 URL。
|
security.custom.ldap.root
|
このプロパティの値は、セキュリティ用の LDAP ディレクトリのルート エントリ (dc=acumenat、dc=com など)。
|
security.custom.ldap.userroot
|
このプロパティの値は、セキュリティ LDAP サーバのユーザ ルート エントリを指定する (ou=People など)。
|
security.custom.ldap.group.root
|
このプロパティの値は、セキュリティ LDAP サーバのオペレータ エントリを指定する。たとえば、「cn=UDDI Administrators, ou=Groups」のように指定する。このエントリにはすべての UDDI 管理者の ID が含まれる。
|
表 11-12 ファイル セキュリティのコンフィグレーション
UDDI プロパティ キー
|
説明
|
security.custom.file.userdir
|
このプロパティの値は、UDDI セキュリティ情報 (ユーザとグループ) の格納先となるファイル システムのディレクトリを指定する。
|
UDDI ディレクトリ エクスプローラ
UDDI ディレクトリ エクスプローラを使用すると、認可されたユーザは、WebLogic Server のプライベートな UDDI レジストリに Web サービスをパブリッシュしたり、すでに公開されている Web サービスの情報を変更することができます。
また、UDDI ディレクトリク エスプローラを使用して、パブリックとプライベート両方の UDDI レジストリにある Web サービスおよびこれらの Web サービスを提供している企業や部課に関する情報を検索できます。さらに、Web サービスおよび関連付けられた WSDL ファイル (利用可能な場合) に関する詳細情報にアクセスすることもできます。
ブラウザで UDDI ディレクトリ エクスプローラを起動するには、次の URL を入力します。
http://host
:port
/uddiexplorer
各要素の説明は次のとおりです。
host
は、WebLogic Server が動作しているコンピュータの名前を指す。
port
は、WebLogic Server が接続リクエストのリスニングを行っているポート番号を指す。デフォルトのポート番号は 7001 です。
UDDI ディレクトリ エクスプローラを使用して、以下のタスクを実行できます。
パブリック レジストリの検索
プライベート レジストリの検索
プライベート レジストリへのパブリッシュ
プライベート レジストリの詳細の変更
UDDI ディレクトリ エクスプローラのセットアップ
UDDI ディレクトリ エクスプローラの使い方の詳細については、メイン ページの [Explorer Help] リンクをクリックしてください。
UDDI クライアント API
WebLogic Server には、Java クライアント アプリケーションで Web サービスをプログラムから検索およびパブリッシュするために使用できるクライアントサイド UDDI API が組み込まれています。
UDDI クライアント API には、Inquiry
と Publish
という、2 つの主なクラスがあります。Inquiry
クラスは、既知の UDDI レジストリにある Web サービスの検索に使用し、Publish
クラスは、開発した Web サービスを既知のレジストリに追加するために使用します。
WebLogic Server では、以下のクライアント UDDI API パッケージを実装しています。
これらのパッケージの使い方の詳細については、UDDI API の Javadoc を参照してください。
プラガブル tModel
分類法は、基本的に categoryBag または identifierBag によって参照として使用される tModel です。主な相違点は、単純な tModel に対して、分類法の参照は一般にチェックおよび検証されることです。WebLogic Server の UDDI サーバはこのコンセプトを活用し、プラガブル tModel という独自の分類法を採用することでこの機能を拡張します。プラガブル tModel を使用すると、ユーザ (UDDI 管理者) は独自のチェック済み分類法を UDDI レジストリに追加し、標準の分類法を上書きできます。
プラガブル tModel を追加するには、次の手順に従います。
UDDI サーバをコンフィグレーションするために使用する uddi.properties
ファイルの pluggableTModel.file.list
プロパティに、カンマ区切りの完全修飾名を追加します。次に例を示します。
pluggableTModel.file.list=c:/temp/cat1.xml,c:/temp/cat2.xml
uddi.properties ファイルの詳細については、「UDDI 2.0 サーバのコンフィグレーション」を参照してください。
以下の節では、XML 要素とその有効値の表、プラガブル tModel の検証に使用する XML スキーマ、およびサンプル XML を示します。
XML 要素と許容値
次の表に、プラガブル tModel を記述する XML ファイルの要素について説明します。
表 11-13 プラガブル tModel をコンフィグレーションするための XML 要素の説明
要素/属性
|
必須/省略可能
|
ロール
|
値
|
備考
|
Taxonomy
|
必須
|
ルート要素。
|
|
|
checked
|
必須
|
この分類がチェックされるかどうか。
|
true または false
|
false を指定すると、keyValue は検証されない。
|
type
|
必須
|
tModel のタイプ。
|
categorization、identifier、uddi-org-types で定義した有効値
|
有効値については uddi-org-types tModel を参照。
|
applicability
|
省略可能
|
tModel の使用に関する制約。
|
|
この要素を指定しない場合、制約があるとは見なされない。
|
scope
|
applicability 要素が含まれている場合は必須
|
businessEntity、businessService、bindingTemplate、tModel
|
「bindingTemplate」を指定した場合、tModel は tModelInstanceInfo で使用できる。
|
tModel
|
必須
|
UDDI データ構造に従った実際の tModel。
|
有効な tModelKey
|
|
categories
|
checked が true の場合は必須
|
|
|
|
category
|
categories 要素が含まれている場合は必須
|
実際の keyName と keyValue を保持する。
|
keyName と keyValue のペア
|
category は、グループ化またはツリー構造用にネストできる。
|
keyName
|
必須
|
|
|
|
keyValue
|
必須
|
|
|
|
プラガブル tModel の XML スキーマ
プラガブル tModel の XML スキーマは次のように検証されます。
<simpleType name="type">
<restriction base="string"/>
</simpleType>
<simpleType name="checked">
<restriction base="NMTOKEN">
<enumeration value="true"/>
<enumeration value="false"/>
</restriction>
</simpleType>
<element name="scope" type="string"/>
<element name = "applicability" type = "uddi:applicability"/>
<complexType name = "applicability">
<sequence>
<element ref = "uddi:scope" minOccurs = "1" maxOccurs = "4"/>
</sequence>
</complexType>
<element name="category" type="uddi:category"/>
<complexType name = "category">
<sequence>
<element ref = "uddi:category" minOccurs = "0" maxOccurs = "unbounded"/>
</sequence>
<attribute name = "keyName" use = "required" type="string"/>
<attribute name = "keyValue" use = "required" type="string"/>
</complexType>
<element name="categories" type="uddi:categories"/>
<complexType name = "categories">
<sequence>
<element ref = "uddi:category" minOccurs = "1" maxOccurs = "unbounded"/>
</sequence>
</complexType>
<element name="Taxonomy" type="uddi:Taxonomy"/>
<complexType name="Taxonomy">
<sequence>
<element ref = "uddi:applicability" minOccurs = "0" maxOccurs = "1"/>
<element ref = "uddi:tModel" minOccurs = "1" maxOccurs = "1"/>
<element ref = "uddi:categories" minOccurs = "0" maxOccurs = "1"/>
</sequence>
<attribute name = "type" use = "required" type="uddi:type"/>
<attribute name = "checked" use = "required" type="uddi:checked"/>
</complexType>
プラガブル tModel のサンプル XML
次に、プラガブル tModel のサンプル XML を示します。
<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<Taxonomy checked="true" type="categorization" xmlns="urn:uddi-org:api_v2" >
<applicability>
<scope>businessEntity</scope>
<scope>businessService</scope>
<scope>bindingTemplate</scope>
</applicability>
<tModel tModelKey="uuid:C0B9FE13-179F-41DF-8A5B-5004DB444tt2" >
<name> sample pluggable tModel </name>
<description>used for test purpose only </description>
<overviewDoc>
<overviewURL>http://www.abc.com </overviewURL>
</overviewDoc>
</tModel>
<categories>
<category keyName="name1 " keyValue="1">
<category keyName="name11" keyValue="12">
<category keyName="name111" keyValue="111">
<category keyName="name1111" keyValue="1111"/>
<category keyName="name1112" keyValue="1112"/>
</category>
<category keyName="name112" keyValue="112">
<category keyName="name1121" keyValue="1121"/>
<category keyName="name1122" keyValue="1122"/>
</category>
</category>
</category>
<category keyName="name2 " keyValue="2">
<category keyName="name21" keyValue="22">
<category keyName="name211" keyValue="211">
<category keyName="name2111" keyValue="2111"/>
<category keyName="name2112" keyValue="2112"/>
</category>
<category keyName="name212" keyValue="212">
<category keyName="name2121" keyValue="2121"/>
<category keyName="name2122" keyValue="2122"/>
</category>
</category>
</category>
</categories>
</Taxonomy>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>