· pdf file(pbdom : powerbuilder document object model

374
PowerBuilder エクステンション リファレンス PowerBuilder ® 11.1

Upload: vunhu

Post on 07-Mar-2018

246 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: · PDF file(PBDOM : PowerBuilder Document Object Model

PowerBuilder エクステンシ ョ ン リファレンス

PowerBuilder®

11.1

Page 2: · PDF file(PBDOM : PowerBuilder Document Object Model

DOCUMENT ID: DC33821-01-1110-01

LAST REVISED: November 2007

Copyright © 1991-2008 by Sybase, Inc. All rights reserved.

本書は Sybase ソフ ト ウェアの付属マニュアルであ り、 新しいマニュアルまたはテクニカル ノートで特に示されないかぎり、 後続のリ リースにも付属します。 このマニュアルの内容は、 予告なく変更される こ とがあ り ますが、 Sybase,Inc. およびその関連会社では内容の変更に関して一切の責任を負いません。 このマニュアルに記載されているソフ ト ウェアはライセンス契約に基づいて提供されるものであ り、 無断で使用するこ とはできません。

予定したソフ ト ウェアのリ リース日にのみアップグレードを提供します。 本書に記載されている内容は、 Sybase, Inc. およびその関連会社の書面による事前許可を得ずに、 電子的、 機械的、 手作業、 光学的、 またはその他のいかなる手段によっても複製、 転載、 翻訳するこ とを禁じます。

Sybase の商標は Sybase の商標ページ のサイ ト http://www.sybase.com/detail?id=1011207 に記載されています。 記載の Sybase およびマークは Sybase, Inc の商標です。 ® はアメ リ カ合衆国における登録商標を示します。

Java およびすべての Java ベースのマークは、 米国および他国における Sun Microsystems, Inc. の商標または登録商標です。

Unicode および Unicode のロゴは Unicode, Inc. の登録商標です。

本書で記載されている上記以外の社名および製品名は、 各社の商標または登録商標の場合があ り ます。

本書に記載されている内容は、 将来予告なしに変更するこ とがあ り ます。 また、 本ソフ ト ウェアおよび説明書を使用したこ とによる損害、 または第三者からのいかなる請求についても、 サイベース株式会社、 その親会社である米国法人 Sybase,Inc. またはその関連会社は、 一切の責任を負わないものと します。

Page 3: · PDF file(PBDOM : PowerBuilder Document Object Model

目次

本書について ................................................................................................................................ xiii

第 1 章 PowerBuilder エクステンシ ョ ン......................................................................... 1PowerBuilder エクステンシ ョ ンについて ........................................ 1PowerBuilder エクステンシ ョ ンの使い方........................................ 2PowerBuilder エクステンシ ョ ンに関する情報の取得...................... 4

第 2 章 EJB クライアン ト ......................................................................................................... 7EJBConnection ................................................................................ 7

ConnectToServer ...................................................................... 8CreateJavaInstance .................................................................. 9DisconnectServer .................................................................... 10GetEJBTransaction ................................................................. 10Lookup..................................................................................... 11

EJBTransaction.............................................................................. 12Begin ....................................................................................... 13Commit .................................................................................... 14GetStatus ................................................................................ 15Rollback................................................................................... 16SetRollbackOnly...................................................................... 17SetTransactionTimeout ........................................................... 18

JavaVM .......................................................................................... 19CreateJavaVM......................................................................... 19CreateJavaInstance ................................................................ 22DynamicCast ........................................................................... 23GetActualClass........................................................................ 27GetInterfaces........................................................................... 28GetJavaClasspath ................................................................... 29GetJavaVMVersion ................................................................. 30GetSuperClass ........................................................................ 30IsJavaVMLoaded..................................................................... 31

第 3 章 Web サービス クライアン ト ................................................................................. 33

PowerBuilder エクステンシ ョ ン リファレンス iii

Page 4: · PDF file(PBDOM : PowerBuilder Document Object Model

目次

SoapConnection............................................................................. 33CreateInstance ........................................................................ 34DynamicCast ........................................................................... 36RemoveAuthentication ............................................................ 36SetBasicAuthentication ........................................................... 37SetClientCertificateFile............................................................ 38SetOptions............................................................................... 38SetProxyServer ....................................................................... 41SetProxyServerOptions........................................................... 42SetSoapLogFile....................................................................... 43SetTimeout .............................................................................. 43UseConnectionCache ............................................................. 44UseIntegratedWindowsAuthentication .................................... 44

SoapException ............................................................................... 45UDDIProxy ..................................................................................... 46

setInquiryUrl ............................................................................ 47setOption ................................................................................. 47findBusiness ............................................................................ 48getBusinessDetail.................................................................... 49findService............................................................................... 50

第 4 章 PowerBuilder ドキュ メン ト オブジェク ト モデル.................................. 51PBDOM について ........................................................................... 51

ノード ツリー .......................................................................... 52XML パーサ ............................................................................. 52オブジェク ト と メ ソ ッ ド ......................................................... 52

PBDOM オブジェク ト ................................................................... 53

第 5 章 PBDOM_ATTRIBUTE クラス .............................................................................. 55PBDOM_ATTRIBUTE .................................................................... 55

AddContent ............................................................................. 57Clone ....................................................................................... 58Detach ..................................................................................... 59Equals ..................................................................................... 61GetBooleanValue .................................................................... 62GetContent .............................................................................. 64GetDateValue.......................................................................... 64GetDateTimeValue.................................................................. 65GetDoubleValue ...................................................................... 66GetIntValue ............................................................................. 66GetLongValue ......................................................................... 67GetName................................................................................. 67GetNamespacePrefix .............................................................. 68

iv PowerBuilder

Page 5: · PDF file(PBDOM : PowerBuilder Document Object Model

目次

GetNamespaceUri................................................................... 69GetObjectClass ....................................................................... 69GetObjectClassString.............................................................. 70GetOwnerDocumentObject ..................................................... 71GetOwnerElementObject ........................................................ 72GetQualifiedName................................................................... 73GetRealValue .......................................................................... 74GetText.................................................................................... 74GetTextNormalize ................................................................... 77GetTextTrim ............................................................................ 78GetTimeValue ......................................................................... 80GetUintValue ........................................................................... 81GetUlongValue ........................................................................ 81HasChildren............................................................................. 81InsertContent........................................................................... 83IsAncestorObjectOf ................................................................. 85RemoveContent ...................................................................... 86SetBooleanValue..................................................................... 88SetContent .............................................................................. 89SetDateValue .......................................................................... 92SetDateTimeValue .................................................................. 93SetDoubleValue ...................................................................... 94SetIntValue.............................................................................. 94SetLongValue.......................................................................... 95SetName ................................................................................. 95SetNamespace........................................................................ 98SetOwnerElementObject....................................................... 101SetRealValue ........................................................................ 103SetText .................................................................................. 103SetTimeValue........................................................................ 104SetUintValue ......................................................................... 105SetUlongValue ...................................................................... 105

第 6 章 PBDOM_BUILDER クラス................................................................................. 107PBDOM_BUILDER ...................................................................... 107

BuildFromDataStore.............................................................. 108BuildFromFile ........................................................................ 109BuildFromString..................................................................... 112GetParseErrors ..................................................................... 113

第 7 章 PBDOM_CDATA クラス ..................................................................................... 115PBDOM_CDATA.......................................................................... 115

Append .................................................................................. 117

PowerBuilder エクステンシ ョ ン リファレンス v

Page 6: · PDF file(PBDOM : PowerBuilder Document Object Model

目次

Clone ..................................................................................... 117Detach ................................................................................... 120Equals ................................................................................... 120GetObjectClass ..................................................................... 121GetObjectClassString............................................................ 121GetOwnerDocumentObject ................................................... 121GetParentObject.................................................................... 122GetText.................................................................................. 122GetTextNormalize ................................................................. 123GetTextTrim .......................................................................... 123SetParentObject .................................................................... 124SetText .................................................................................. 125

第 8 章 PBDOM_ENTITYREFERENCE クラス ....................................................... 127PBDOM_ENTITYREFERENCE ................................................... 127

Clone ..................................................................................... 128Detach ................................................................................... 130Equals ................................................................................... 131GetName............................................................................... 131GetObjectClass ..................................................................... 132GetObjectClassString............................................................ 132GetOwnerDocumentObject ................................................... 132GetParentObject.................................................................... 133SetName ............................................................................... 133SetParentObject .................................................................... 134

第 9 章 PBDOM_CHARACTERDATA クラス .......................................................... 135PBDOM_CHARACTERDATA ...................................................... 135

Append .................................................................................. 137Append 構文 1....................................................................... 137Append 構文 2....................................................................... 140Clone ..................................................................................... 141Detach ................................................................................... 143Equals ................................................................................... 145GetOwnerDocumentObject ................................................... 146GetName............................................................................... 149GetObjectClass ..................................................................... 150GetObjectClassString............................................................ 150GetParentObject.................................................................... 153GetText.................................................................................. 155GetTextNormalize ................................................................. 156GetTextTrim .......................................................................... 160HasChildren........................................................................... 164

vi PowerBuilder

Page 7: · PDF file(PBDOM : PowerBuilder Document Object Model

目次

IsAncestorObjectOf ............................................................... 164SetParentObject .................................................................... 165SetText .................................................................................. 168

第 10 章 PBDOM_COMMENT クラス ............................................................................. 169PBDOM_COMMENT ................................................................... 169

Append .................................................................................. 170Append 構文 1....................................................................... 171Append 構文 2....................................................................... 171Clone ..................................................................................... 172Detach ................................................................................... 174Equals ................................................................................... 175GetObjectClass ..................................................................... 175GetObjectClassString............................................................ 176GetOwnerDocumentObject ................................................... 176GetParentObject.................................................................... 176GetText.................................................................................. 177GetTextNormalize ................................................................. 177GetTextTrim .......................................................................... 178SetParentObject .................................................................... 179SetText .................................................................................. 180

第 11 章 PBDOM_DOCTYPE クラス............................................................................... 181PBDOM_DOCTYPE..................................................................... 181

Clone ..................................................................................... 182Detach ................................................................................... 183Equals ................................................................................... 183GetInternalSubset ................................................................. 184GetName ............................................................................... 184GetObjectClass ..................................................................... 184GetObjectClassString............................................................ 185GetOwnerDocumentObject ................................................... 185GetParentObject.................................................................... 185GetPublicID ........................................................................... 186GetSystemID ......................................................................... 187SetDocument......................................................................... 187SetInternalSubset.................................................................. 188SetName ............................................................................... 189SetParentObject .................................................................... 189SetPublicID............................................................................ 190SetSystemID ......................................................................... 191

PowerBuilder エクステンシ ョ ン リファレンス vii

Page 8: · PDF file(PBDOM : PowerBuilder Document Object Model

目次

第 12 章 PBDOM_DOCUMENT クラス........................................................................... 193PBDOM_DOCUMENT ................................................................. 193

AddContent ........................................................................... 194Clone ..................................................................................... 197DetachRootElement .............................................................. 198Equals ................................................................................... 198GetContent ............................................................................ 199GetDocType .......................................................................... 201GetElementsByTagName...................................................... 201GetObjectClass ..................................................................... 202GetObjectClassString............................................................ 203GetRootElement.................................................................... 203HasChildren........................................................................... 203HasRootElement ................................................................... 204InsertContent......................................................................... 204IsAncestorObjectOf ............................................................... 207NewDocument....................................................................... 207NewDocument 構文 1............................................................ 208NewDocument 構文 2............................................................ 208RemoveContent .................................................................... 211SaveDocument...................................................................... 212SaveDocumentIntoString ...................................................... 213SetContent ............................................................................ 213SetDocType........................................................................... 215SetRootElement .................................................................... 216

第 13 章 PBDOM_ELEMENT クラス................................................................................ 217PBDOM_ELEMENT ..................................................................... 217

AddContent ........................................................................... 218AddContent 構文 1 ................................................................ 219AddContent 構文 2 ................................................................ 221AddNamespaceDeclaration................................................... 222Clone ..................................................................................... 224Detach ................................................................................... 225Equals ................................................................................... 226GetAttribute ........................................................................... 227GetAttribute 構文 1 ................................................................ 227GetAttribute 構文 2 ................................................................ 228GetAttributes ......................................................................... 229GetAttributeValue .................................................................. 230GetAttributeValue 構文 1....................................................... 230GetAttributeValue 構文 2....................................................... 231GetAttributeValue 構文 3....................................................... 232GetAttributeValue 構文 4....................................................... 233

viii PowerBuilder

Page 9: · PDF file(PBDOM : PowerBuilder Document Object Model

目次

GetChildElement ................................................................... 234GetChildElement 構文 1 ........................................................ 234GetChildElement 構文 2 ........................................................ 235GetChildElements ................................................................. 236GetChildElements 構文 1 ...................................................... 236GetChildElements 構文 2 ...................................................... 237GetChildElements 構文 3 ...................................................... 238GetContent ............................................................................ 239GetName ............................................................................... 240GetNamespacePrefix ............................................................ 241GetNamespaceUri................................................................. 241GetObjectClass ..................................................................... 242GetObjectClassString............................................................ 243GetOwnerDocumentObject ................................................... 243GetParentObject.................................................................... 244GetQualifiedName................................................................. 245GetText.................................................................................. 245GetTextNormalize ................................................................. 246GetTextTrim .......................................................................... 247HasAttributes......................................................................... 247HasChildElements................................................................. 248HasChildren........................................................................... 249InsertContent......................................................................... 250IsAncestorObjectOf ............................................................... 252IsRootElement....................................................................... 253RemoveAttribute.................................................................... 253RemoveAttribute 構文 1 ........................................................ 254RemoveAttribute 構文 2 ........................................................ 254RemoveAttribute 構文 3 ........................................................ 255RemoveChildElement............................................................ 256RemoveChildElement 構文 1 ................................................ 256RemoveChildElement 構文 2 ................................................ 257RemoveChildElements.......................................................... 258RemoveChildElements 構文 1............................................... 258RemoveChildElements 構文 2............................................... 259RemoveChildElements 構文 3............................................... 260RemoveContent .................................................................... 261RemoveNamespaceDeclaration............................................ 262SetAttribute............................................................................ 263SetAttribute 構文 1 ................................................................ 263SetAttribute 構文 2 ................................................................ 266SetAttribute 構文 3 ................................................................ 268SetAttributes.......................................................................... 272SetContent ............................................................................ 275

PowerBuilder エクステンシ ョ ン リファレンス ix

Page 10: · PDF file(PBDOM : PowerBuilder Document Object Model

目次

SetDocument......................................................................... 278SetName ............................................................................... 278SetNamespace...................................................................... 279SetParentObject .................................................................... 280SetText .................................................................................. 281

第 14 章 PBDOM_EXCEPTION クラス........................................................................... 283PBDOM 例外 ................................................................................ 283

PBDOM 例外の説明 .............................................................. 284PBDOM_EXCEPTION ................................................................. 290

GetExceptionCode ................................................................ 290

第 15 章 PBDOM_OBJECT クラス ................................................................................... 293PBDOM_OBJECT........................................................................ 293

AddContent ........................................................................... 294Clone ..................................................................................... 294Detach ................................................................................... 295Equals ................................................................................... 296GetContent ............................................................................ 297GetName............................................................................... 297GetObjectClass ..................................................................... 299GetObjectClassString............................................................ 300GetOwnerDocumentObject ................................................... 301GetParentObject.................................................................... 301GetText.................................................................................. 302GetTextNormalize ................................................................. 305GetTextTrim .......................................................................... 307HasChildren........................................................................... 310InsertContent......................................................................... 311IsAncestorObjectOf ............................................................... 312RemoveContent .................................................................... 314SetContent ............................................................................ 315SetName ............................................................................... 316SetParentObject .................................................................... 317

第 16 章 PBDOM_PROCESSINGINSTRUCTION クラス..................................... 319PBDOM_PROCESSINGINSTRUCTION ..................................... 319

Clone ..................................................................................... 320Detach ................................................................................... 321Equals ................................................................................... 322GetData ................................................................................. 322GetName............................................................................... 323

x PowerBuilder

Page 11: · PDF file(PBDOM : PowerBuilder Document Object Model

目次

GetNames ............................................................................. 323GetObjectClass ..................................................................... 324GetObjectClassString............................................................ 324GetOwnerDocumentObject ................................................... 325GetParentObject.................................................................... 325GetTarget .............................................................................. 325GetText.................................................................................. 326GetTextNormalize ................................................................. 327GetTextTrim .......................................................................... 327GetValue ............................................................................... 328RemoveValue........................................................................ 328SetData ................................................................................. 329SetName ............................................................................... 330SetParentObject .................................................................... 332SetValue................................................................................ 333

第 17 章 PBDOM_TEXT クラス .......................................................................................... 335PBDOM_TEXT............................................................................. 335

Append .................................................................................. 336Append 構文 1....................................................................... 337Append 構文 2....................................................................... 337Clone ..................................................................................... 338Detach ................................................................................... 340Equals ................................................................................... 340GetObjectClass ..................................................................... 341GetObjectClassString............................................................ 341GetOwnerDocumentObject ................................................... 341GetParentObject.................................................................... 342GetText.................................................................................. 342GetTextNormalize ................................................................. 343GetTextTrim .......................................................................... 343SetParentObject .................................................................... 344SetText .................................................................................. 345

第 18 章 PBDOM のまとめ .................................................................................................... 347PBDOM のクラスと メ ソ ッ ドのまとめ ........................................ 347

索引.............................................................................................................................................. 351

PowerBuilder エクステンシ ョ ン リファレンス xi

Page 12: · PDF file(PBDOM : PowerBuilder Document Object Model

目次

xii PowerBuilder

Page 13: · PDF file(PBDOM : PowerBuilder Document Object Model

本書について

対象とする読者 このマニュアルは、 組み込み PowerBuilder® エクステンシ ョ ンを使用するアプ リ ケーシ ョ ンの開発に携わっているプログラマを対象にしています。

このマニュアルの使い方 このマニュアルでは、 PowerScript® 言語に組み込まれているエクステンシ ョ ンの構文と使い方について解説しています。

• 第 1 章では、PowerBuilder エクステンシ ョ ンの概要と、 これらのエクステンシ ョ ンを PowerScript アプ リ ケーシ ョ ンで使用する方法について説明します。

• 第 2 章では、Enterprise JavaBeans コンポーネン トのク ラ イアントの作成に使用するオブジェク トについて説明します。

• 第 3 章では、 Web サービス用の SOAP ク ライアン トの作成に使用するオブジェク トについて説明します。

• 第 4 章では、 PowerBuilder ドキュ メン ト オブジェク ト モデル(PBDOM : PowerBuilder Document Object Model) の概要について説明します。

• 第 5 章から第 17 章では、 PBDOM を構成するオブジェク ト を1 つずつ取り上げて説明します。

• 第 18 章には、 PBDOM メ ソ ッ ドのク イ ッ ク リ ファレンスの リス ト を記載しています。

関連マニュアル それぞれの組み込みエクステンシ ョ ンを使用するアプ リ ケーシ ョンの作成手順については、『アプ リ ケーシ ョ ン テクニッ ク』 マニュアルに記載されています。

PowerBuilder マニュアルの全リ ス ト については、 PowerBuilder の『入門』 マニュアルの 「本書について」 を参照して ください。

そのほかの情報 製品に関するそのほかの詳細情報については、PowerBuilder DVD、アシス ト Web サイ ト、 および Sybase 製品マニュアル Web サイ ト(英語) を参照して ください。

PowerBuilder エクステンシ ョ ン リファレンス xiii

Page 14: · PDF file(PBDOM : PowerBuilder Document Object Model

• PowerBuilder DVD には、 製品マニュアルが収められています。 製品マニュアルは、 PDF 形式で提供しています。 PDF ファ イルを読んだり、 印刷した りするには、 Adobe Acrobat Reader が必要です。Adobe Acrobat Reader は、 Adobe Web サイ トから無料でダウンロードするこ とができます。

• アシス ト Web サイ トには、標準の Web ブラウザでアクセスすることができるオンライン版のマニュアルがあ り ます。 この Web サイトでは、 PDF および HTML 形式でマニュアルを見るこ とができます。

オンライン版のマニュアルには、 アシス トの PowerBuilder のサイ ト

http://www.ashisuto.co.jp/prod/powerbuilder/ にある 「技術情報」 からアクセスできます。

• Sybase 製品マニュアル Web サイ ト (英語) は、標準の Web ブラウザからアクセスでき、 Sybase の製品マニュアルのほか、 EBF/ メ ンテナンス、 技術文書などへのリ ンク も含んでいます。

Sybase 製品マニュアル Web サイ ト には、 Product Manuals のサイ ト

http://www.sybase.com/support/manuals/ からアクセスできます。

表記規則 このマニュアルでは、 次の書式上の表記規則を使用しています。

書式例 説明

Retrieve および Update 左記のフォン トが説明文で使用されている場合には、次のいずれかであるこ とを示します。

• コマンド、 関数、 およびメ ソ ッ ド名

• キーワード (true、 false、 null など)

• データ型 (integer、 char など)

• データベース カラム名 (emp_id、 f_name など)

• ユーザ定義オブジェク ト (dw_emp、w_mainなど)

変数(variable) またはファイル名(file name)

斜体フォン トが説明文と構文説明で使用されている場合には、 次の要素であるこ とを示します。

• 変数 (myCounter など)

• 置き換える必要がある入力テキス ト 部分(pblname.pbd など)

• ファ イル名とパス名

xiv PowerBuilder

Page 15: · PDF file(PBDOM : PowerBuilder Document Object Model

本書について

サポートについて 「サポート ハンドブッ ク」 を参照して ください。

[フ ァ イル|上書き保存]

メニュー名と メニュー項目はシンプルなテキス トで表示されます。 縦棒 (|) は、 順にメニューを選択するこ とを表しています。 たとえば、 [ファ イル|上書き保存] は、 [ファ イル] メニューから [上書き保存] を選択するこ とを示します。

dw_1.Update() 等幅フォン トは、 次のいずれかであるこ とを示します。

• ダイアログボッ クスまたはコマンド ラインに入力する情報

• サンプルスク リプ トの一部

• サンプル出力の一部

書式例 説明

PowerBuilder エクステンシ ョ ン リファレンス xv

Page 16: · PDF file(PBDOM : PowerBuilder Document Object Model

xvi PowerBuilder

Page 17: · PDF file(PBDOM : PowerBuilder Document Object Model

第 1 章 PowerBuilder エクステンシ ョ ン

この章について この章では、 PowerBuilder エクステンシ ョ ンの概要を説明します。

内容

PowerBuilder エクステンシ ョ ンについてPowerBuilder ネイティブ インタフェース (PBNI) は、 開発者による PowerBuilder 機能の拡張を可能にする標準のプログラ ミ ング インタフェースです。 PowerBuilder エクステンシ ョ ンは、 Sybase、開発者、 またはサード パーティから提供されます。

このマニュアルでは、 Sybase から提供されているエクステンシ ョンの参照情報について説明し ます。 PowerBuilder 11.0 では、Enterprise JavaBeans ク ラ イアン ト、 PowerBuilder ドキュ メ ン ト オブジェク ト モデル (PBDOM)、 Web サービス用 SOAP ク ラ イアント 、および UDDIProxy ク ラスに対するエクステンシ ョ ンが Sybaseから提供されています。 これらの機能をコアの PowerBuilder ランタイム ファ イルに追加するかわりに、別のエクステンシ ョ ン ファイルに埋め込むこ とで、 配布アプ リ ケーシ ョ ンの占有領域を可能な限り小さ く保持するこ とができます。

開発者が独自のエク ステンシ ョ ンを作成する方法については、『PowerBuilder ネイティブ インタフェース プログラマーズ リ ファレンス』 マニュアルを参照して ください。

ほかの開発者から提供されているエクステンシ ョ ンを調べる ときは、 PowerBuilder CodeXchange のサイト http://powerbuilder.codexchange.sybase.com の PBNI セクシ ョ ンを確認してください。

項目 ページ

PowerBuilder エクステンシ ョ ンについて 1PowerBuilder エクステンシ ョ ンの使い方 2PowerBuilder エクステンシ ョ ンに関する情報の取得 4

PowerBuilder エクステンシ ョ ン リファレンス 1

Page 18: · PDF file(PBDOM : PowerBuilder Document Object Model

PowerBuilder エクステンシ ョ ンの使い方

.NET ターゲッ トの使用

PowerBuilder の .NET Windows フォーム アプ リ ケーシ ョ ンと して .NETに配布する予定のアプリ ケーシ ョ ンで、組み込みの Web サービス ク ライアン ト エクステンシ ョ ン (pbwsclient110.pbx) を使用する こ とができます。 .NET ターゲッ トでほかの PBNI エクステンシ ョ ンを使用するこ とはできません。

PowerBuilder エクステンシ ョ ンの使い方すべての PowerBuilder エク ステンシ ョ ンは、 通常 .pbx (PowerBuildereXtension 用) 拡張子が付いたコンパイル済みの C++ 共有ラ イブラ リを必要と します。 C++ 共有ライブラ リ ファ イルには PowerScript ターゲッ ト で使用する ク ラス と メ ソ ッ ドが格納されており、 PowerBuilderシステム オブジェ ク トやユーザ オブジェ ク ト を使用するのと同じ方法でこれらのク ラス と メ ソ ッ ドを使用します。

PowerBuilder で共有ラ イブラ リ を使用するには、 こ のフ ァ イルをPowerBuilder の探索パスに配置します。システム ツ リーで、PowerScriptターゲッ ト内のライブラ リ を右ク リ ッ ク し、 ポップアップ メニューから [PB エクステンシ ョ ンのインポート ] を選択し、共有ライブラ リに移動し、 それから [開 く] を選択し ます。 これは、 PBX 内の定義をターゲッ ト内のライブラ リにインポート します。 かわりに、 関連付けられた PBD ファ イルをターゲッ ト のラ イブラ リ探索パスに追加するこ と もできます。 PBD が C++ 共有ラ イブラ リのラ ッパーと して動作し、 共有ラ イ ブ ラ リ に含まれてい る オブジ ェ ク ト と メ ソ ッ ド をPowerBuilder で表示できるよ うにな り ます。

エクステンシ ョ ンを使用するアプ リ ケーシ ョ ンを配布する と きには、ほかの PowerBuilder ランタイム ファ イルと一緒に、C++ 共有ライブラリ もアプ リ ケーシ ョ ンの探索パスに配布しなければなり ません。

2 PowerBuilder

Page 19: · PDF file(PBDOM : PowerBuilder Document Object Model

第 1 章 PowerBuilder エクステンシ ョ ン

エクステンシ ョ ンを PowerScript ターゲッ トにインポートする と、ターゲッ ト に含まれる ク ラスが、 ユーザ オブジェ ク ト と してシステム ツリーに表示されます。 そのオブジェ ク ト を展開する と、 プロパテ ィ、イベン ト、 および関数を表示できます。 ほかのユーザ オブジェク ト と同じよ うに、 エクステンシ ョ ン オブジェク ト を継承し、 継承したオブジェ ク ト から ド ラ ッグ アンド ド ロ ップによるプログラ ミ ングをシステム ツ リーで行う こ とができます。

非ビジュアル クラスの使い方

PowerScript では、カスタム ク ラス ユーザ オブジェク ト と同じ方法で、非ビジュアル エクステンシ ョ ンのク ラスを使用します。 つま り、 オブジェク トのインスタンスを宣言し、CREATE 文を使ってインスタンスを作成し、 オブジェク トの関数を呼び出して、 インスタンスを使って実行した後、 そのインスタンスを破棄します。 関数またはイベン ト をクラスに追加する と きは、 ネイティブ ク ラスを継承できます。

実行時に、ネイティブ ク ラスのインスタンスが通常の PowerBuilder オブジェク ト と して作成されます。

ビジュアル クラスの使い方

ビジュアル ク ラスのインスタンスを宣言した り、 CREATE 文を使ってインスタンスを作成した りする必要はあ り ません。 ビジュアル エクステンシ ョ ンを使用するには、 PowerBuilder メニューの [ファ イル|継承] を選択し、 オブジェク トから継承 ダイアログボッ クスのライブラリ リ ス ト でビジュアル ク ラスを含む PBL または PBD を選択し、 ビジュアル ク ラスを選択して、 [OK] をク リ ッ ク します。

PowerBuilder エクステンシ ョ ン リファレンス 3

Page 20: · PDF file(PBDOM : PowerBuilder Document Object Model

PowerBuilder エクステンシ ョ ンに関する情報の取得

ユーザ オブジェク ト ペインタで、 ビジュアル オブジェク トのサイズ変更と、そのほかの必要な変更を加えて、オブジェク ト を保存します。する と、新しいユーザ オブジェク ト をシステム ツ リーから、 ウ ィンドウや、タブ コン ト ロールなどのそのほかのビジュアル コン ト ロールに直接ド ラ ッグして、ほかのビジュアル ユーザ オブジェク ト と同じよ うに使用できます。

PBXRuntimeError PowerBuilder エクステンシ ョ ンは、PowerBuilder RuntimeError 例外から継承された PBXRuntimeError とい う特殊な例外を送出するこ とができます。 PowerBuilder アプ リ ケーシ ョ ンでエクステンシ ョ ンを使用すると きには、 この例外の try-catch ブロ ッ クを格納して、 エクステンシ ョン提供者に例外の発生をレポートする必要があ り ます。 通常、 この例外は、 エクステンシ ョ ン内部でのプログラムのミ スによって発生します。

PowerBuilder エクステンシ ョ ンに関する情報の取得オンライン ヘルプ このマニュアルに記載されている Sybase 提供のエクステンシ ョ ンの

ク ラス と メ ソ ッ ドは、 PowerBuilder オンライン ヘルプで参照するこ とができます。 PBDOM については、 章ごとに 1 つのク ラスを説明しています。

オンライン ヘルプを開く方法はいくつかあ り ます。

• PowerBuilder ヘルプ [目次] タブ ページで 『PowerBuilder エクステンシ ョ ン リ ファレンス』 を選択する

• Sybase\PowerBuilder 11.0\Help ディ レク ト リの pbext110.hlp とい うファ イル名をダブルク リ ッ クする

• スク リプ ト ビューにメ ソ ッ ド名を入力してから 〔Shift〕 + 〔F1〕 を押して、 そのメ ソ ッ ド名の最初のインデッ クス項目にフォーカスを置いた状態で PowerBuilder のヘルプ [キーワード] タブを開く。エクステンシ ョ ン ク ラスの名前が [キーワード] タブ ページのメソ ッ ド名の後のカッコ内に表示され、そのメ ソ ッ ドの [ヘルプ] を開く と、 メ ソ ッ ド名の上にヘルプが表示される。

4 PowerBuilder

Page 21: · PDF file(PBDOM : PowerBuilder Document Object Model

第 1 章 PowerBuilder エクステンシ ョ ン

PowerScript 関数の説明が表示される場合

エクステンシ ョ ン と同じ名前の PowerScript 関数が存在する場合、ヘルプでは自動的に PowerScript 関数の方が表示されます。 ヘルプウ ィンド ウの [ ト ピッ ク] ボタンをク リ ッ ク して [キーワード] タブを表示する と、 エクステンシ ョ ンのメ ソ ッ ドを選択できます。

HTML ブック 開発しているアプ リ ケーシ ョ ンで Sybase から提供されているエク ステンシ ョ ンを使用する方法については、 コンパイル済み HTML ヘルプの 『アプ リ ケーシ ョ ン テクニッ ク』 マニュアルを参照して ください。

サード パーティ提供のエクステンシ ョ ン

PowerBuilder のヘルプとマニュアルには、 サード パーティが開発したエクステンシ ョ ンに関する固有の情報は記載されていません。 サードパーティ提供のエクステンシ ョ ンの使い方を調べるには、 そのエクステンシ ョ ンに付属するマニュアルを参照して ください。

PowerBuilder エクステンシ ョ ン リファレンス 5

Page 22: · PDF file(PBDOM : PowerBuilder Document Object Model

PowerBuilder エクステンシ ョ ンに関する情報の取得

6 PowerBuilder

Page 23: · PDF file(PBDOM : PowerBuilder Document Object Model

第 2 章 EJB クライアン ト

この章について この章では、アプリ ケーショ ン サーバに接続して Enterprise JavaBeans(EJB) コンポーネン ト を利用する と きに使用する PowerBuilder エクステンシ ョ ン ク ラスについて説明します。 EJB コンポーネン トのク ラ イアン トの作成方法についての詳細は、『アプ リ ケーシ ョ ンテクニッ ク』 マニュアルを参照して ください。

内容

EJBConnection機能 EJBConnection ク ラスは、 EJB サーバに接続して EJB を検索しま

す。

メ ソ ッ ド EJBConnection には、 5 つのメンバー関数があ り ます。

ConnectToServerCreateJavaInstanceDisconnectServerGetEJBTransactionLookup

項目 ページ

EJBConnection 7EJBTransaction 12JavaVM 19

PowerBuilder エクステンシ ョ ン リファレンス 7

Page 24: · PDF file(PBDOM : PowerBuilder Document Object Model

EJBConnection

ConnectToServer機能 ク ライアン ト アプ リ ケーシ ョ ンを EJB サーバに接続します。ク ラ イア

ン ト アプ リ ケーシ ョ ンは、 ConnectToServer を呼び出してからでなければ、 サーバ上のリモート オブジェク ト を使用できません。

構文 connection.ConnectToServer ( string properties[ ] )

戻り値 なし

Throws NamingException

例 次の例では、ク ラ イアン ト アプリ ケーシ ョ ンが conn という名前の接続オブジェク ト を使用して WebLogic サーバ アプ リ ケーシ ョ ンに接続します。

ejbconnection connhelloejbhome hellohomehelloejb hellostring properties[ ]string msg

// 次のステート メン ト を 1 行に 1 つずつ入力します。properties[1]="javax.naming.Context.INITIAL_CONTEXT_FACTORY=weblogic.jndi.WLInitialContextFactory"properties[2]="javax.naming.Context.PROVIDER_URL=t3://svr1:7001"properties[3]="javax.naming.Context.SECURITY_PRINCIPAL=myid"properties[4]="javax.naming.Context.SECURITY_CREDENTIALS=mypass"

conn = create ejbconnectionTRY

conn.connectToServer(properties)CATCH (remoteexception re)

MessageBox("Remote の例外 ", re.getMessage())CATCH (createexception ce)

messagebox("Create の例外 ", ce.GetMessage())END TRY

解説 接続の確立方法を指定する複数のプロパティを ConnectToServer に渡さなければな り ません。 ConnectToServer を呼び出す前に、 文字列配列変数を宣言し、 以下の表に示す javax.naming.Context 定数の値を配列の要素に代入します。

引数 説明

connection 接続を確立する際に使用する EJBConnection オブジェクトの名前

properties[ ] 接続の確立方法を指定する名前と値を渡すと きに使用する文字列配列

8 PowerBuilder

Page 25: · PDF file(PBDOM : PowerBuilder Document Object Model

第 2 章 EJB クライアン ト

関連項目 CreateJavaInstanceLookup

CreateJavaInstance機能 プロキシ名から Java オブジェク トのインスタンスを作成します。

非推奨の関数

この関数は下位互換性のために保持されています。 新規の開発にはJavaVM オブジェ ク ト の CreateJavaInstance 関数を使って く だ さい。サーバに接続して Java オブジェ ク ト のローカル インスタンスを作成する必要はあ り ません。

構文 connection.CreateJavaInstance (powerobject proxyobject, string proxyname )

戻り値 Long 型。 正常に終了した場合は 0 を返し、 エラーが発生した場合は、以下のいずれかの値を返します。

-1 Java ク ラスの作成に失敗しました。

-2 プロキシ名が無効です。

-3 プロキシ オブジェク トの作成に失敗しました。

関連項目 CreateJavaInstance

javax.naming.context 定数 値

INITIAL_CONTEXT_FACTORY サーバによって値が異る。 例 : EAServer : com.sybase.ejb.InitialContextFactoryWebLogic : weblogic.jndi.WLInitialContextFactoryWebSphere : com.ibm.websphere.naming.WsnInitialContextFactory

PROVIDER_URL サーバのポートの URL。 例 : iiop://myserver:9000SECURITY_PRINCIPAL サーバへのアクセスに必要なユーザ名

SECURITY_CREDENTIALS ユーザ名に関連付けられた認証。 通常はパスワード

引数 説明

connection 接続を確立する際に使用する EJBConnection オブジェ ク トの名前

proxyobject proxyname で指定されたオブジェ ク ト に対する参照を格納する PowerObject 型の値。 この引数は参照渡しされる

proxyname ローカル Java ク ラスのプロキシ オブジェク トの名前

PowerBuilder エクステンシ ョ ン リファレンス 9

Page 26: · PDF file(PBDOM : PowerBuilder Document Object Model

EJBConnection

DisconnectServer機能 ク ラ イアン ト アプ リ ケーシ ョ ン と EJB サーバ アプ リ ケーシ ョ ンの接

続を解除します。

構文 connection.DisconnectServer ( )

戻り値 なし

Throws NamingException

例 次の例では、 EJBConnection オブジェク ト myconnect を使って、 ク ラ イアン ト アプ リ ケーシ ョ ン とサーバ アプ リ ケーシ ョ ンの接続を解除します。

myconnect.DisconnectServer()

関連項目 ConnectToServer

GetEJBTransaction機能 ク ラ イアン トに関連付けられている EJBTransaction オブジェク トへの

参照を返します。

構文 connection.GetEJBTransaction ( )

戻り値 EJBTransaction

例 次の例では、ク ラ イアン トから ト ランザクシ ョ ンを制御できるよ うに、GetEJBTransaction を使って EJBTransaction オブジェ ク トへの参照を返します。

// インスタンス変数 :// EJBConnection myconnectEJBTransaction mytranslong ll_status

mytrans = myconnect.GetEJBTransaction()ll_status = mytrans.GetStatus()

引数 説明

connection サーバへの接続を確立する際に使用する EJBConnection オブジェク トの名前

引数 説明

connection 接続を確立する際に使用する EJBConnection オブジェク トの名前

10 PowerBuilder

Page 27: · PDF file(PBDOM : PowerBuilder Document Object Model

第 2 章 EJB クライアン ト

解説 PowerBuilder ク ラ イアン トは、 EJB の ト ランザクシ ョ ン デマケーシ ョンを制御できます。EJBTransaction の Begin メ ソ ッ ドで ト ランザクシ ョンが開始された後、 GetEJBTransaction を使用する と、 ト ランザクシ ョンの名前を取得するこ とができます。

関連項目 BeginCommitGetStatusRollbackSetRollbackOnlySetTransactionTimeout

Lookup機能 コンポーネン トのインスタンスを作成するために、 PowerBuilder ク ラ

イアン ト でアプ リ ケーシ ョ ン サーバ内の EJB コンポーネン ト のホーム インタフェースを取得できるよ うにします。

構文 connection.Lookup (string proxyname, string JNDIname, string homeinterfacename )

戻り値 PowerObject 型の値。EJB のホーム インタフェースのプロキシ オブジェク トです。

Throws NamingException

例 次の例では、 lookup を使用して、 Java パッ ケージ com.xyz.math 内のMultiply セッシ ョ ン EJB のホーム インタフェースを特定します。 この例では、 EJB サーバへの接続がすでに確立されている と仮定しています。

// インスタンス変数 :// EJBConnection myconnectMultiply myMultiplyMultiplyHome myMultiplyHomelong ll_product

TRY

引数 説明

connection 接続を確立する際に使用する EJBConnection オブジェク トの名前

proxyname EJB コンポーネン トのプロキシ オブジェク トの名前

JNDIname EJB コンポーネン トの JNDI 名homeinterfacename EJB ホーム インタフェースの完全なク ラス名

PowerBuilder エクステンシ ョ ン リファレンス 11

Page 28: · PDF file(PBDOM : PowerBuilder Document Object Model

EJBTransaction

myMultiplyHome = myconnect.lookup("MultiplyHome", &"Math/Multiply", "com.xyz.math.MultiplyHome")

myMultiply = myMultiplyHome.create()ll_product = myMultiply.multiply(1234, 4567)

catch (remoteexception re)

MessageBox("Remote の例外 ", re.getMessage())catch (createexception ce)

messagebox("Create の例外 ", ce.GetMessage())CATCH (exception e)

MessageBox("例外 ", e.getmessage())END TRY

JNDI 名に使用されるスタイルは EJB サーバによって異なり ます。

関連項目 ConnectToServer

EJBTransaction機能 EJBTransaction ク ラスは、PowerBuilder ク ラ イアン トが EJB サーバ上の

ト ラ ンザ ク シ ョ ンを制御でき る よ う に し ます。 EJBTransaction は、javax.transaction.UserTransaction インタフェースに厳密にマップされます。

メ ソ ッ ド EJBTransaction には、 6 つのメンバー関数があ り ます。

BeginCommitGetStatusRollbackSetRollbackOnlySetTransactionTimeout

12 PowerBuilder

Page 29: · PDF file(PBDOM : PowerBuilder Document Object Model

第 2 章 EJB クライアン ト

Begin機能 新しい ト ランザクシ ョ ンを作成し、 その ト ランザクシ ョ ンを現行のス

レッ ドに関連付けます。

構文 ejbtrans.Begin ( )

戻り値 なし

例 次の例では、begin を使用してク ライアン トから ト ランザクシ ョ ンを生成します。

EJBTransaction transEJBConnection connstring properties[ ]

// プロパティ を設定します。.....conn = create ejbconnectionTRY

conn.connectToServer(properties)trans = conn.GetEjbTransactiontrans.begin()

CATCH (exception e)

messagebox("例外 ", e.getmessage())END TRY

関連項目 CommitGetStatusGetEJBTransaction (EJBConnection ク ラス)RollbackSetRollbackOnlySetTransactionTimeout

引数 説明

ejbtrans EJBTransaction オブジェク トの名前

PowerBuilder エクステンシ ョ ン リファレンス 13

Page 30: · PDF file(PBDOM : PowerBuilder Document Object Model

EJBTransaction

Commit機能 呼び出し元スレッ ドに関連付けられている ト ランザクシ ョ ンをコ ミ ッ

トする必要があるこ とを宣言します。

構文 ejbtrans.Commit ( )

戻り値 なし

例 次の例では、 ク ライアン トが CmpnyAcct EJB コンポーネン ト上で、 会社の支払い給与処理を行う dopayroll メ ソ ッ ドを呼び出します。 支払い給与に見合う資金が会社にある場合は、 ク ラ イアン ト は ト ランザクシ ョ ンをコ ミ ッ ト します。 それ以外の場合は、 例外が送出されて、 クラ イアン トは ト ランザクシ ョ ンをロールバッ ク します。

// インスタンス変数 :// EJBTransaction trans// EJBConnection conn// CmpnyAcctHome AcctHome// CmpnyAcct Acct

TRYtrans.begin()AcctHome = conn.lookup("CmpnyAcctHome",

"Sample/CmpnyAcct", "sample.CmpnyAcctHome")Acct = AcctHome.create()Acct.dopayroll()trans.commit()

CATCH (remoteexception re)

MessageBox("Remote の例外 ", re.getMessage())CATCH (createexception ce)

messagebox("Create の例外 ", ce.GetMessage())CATCH (exception e1)

MessageBox ("例外 ", e1.getmessage())TRY

trans.rollback();CATCH (exception e2)

MessageBox ("例外 ", e2.getmessage())END TRY

END TRY

解説 Commit メ ソ ッ ドは、 呼び出し元スレッ ドに関連付けられている ト ランザクシ ョ ンを完了させます。 ト ランザクシ ョ ンのほかの参加スレッ ドがその ト ランザクシ ョ ンのロールバッ クを実行した場合には、 ト ランザクシ ョ ンは完了しません。

引数 説明

ejbtrans EJBTransaction オブジェク トの名前

14 PowerBuilder

Page 31: · PDF file(PBDOM : PowerBuilder Document Object Model

第 2 章 EJB クライアン ト

関連項目 BeginGetStatusGetEJBTransaction (EJBConnection ク ラス)RollbackSetRollbackOnlySetTransactionTimeout

GetStatus機能 ク ラ イアン トに関連付けられている EJB ト ランザクシ ョ ンのステータ

スを返します。

構文 ejbtrans.GetStatus ( )

戻り値 ト ランザクシ ョ ンのステータスを表す long 型の値

返される値には以下のものがあ り ます。

1 ステータス : アクティブ

2 ステータス : ロールバッ クの対象と してマーク済み

3 ステータス : 準備完了

4 ステータス : コ ミ ッ ト完了

5 ステータス : ロールバッ ク完了

6 ステータス : 不明

7 ステータス : ト ランザクシ ョ ンなし

8 ステータス : 準備中

9 ステータス : コ ミ ッ ト中

10 ステータス : ロールバッ ク中

例 次の例では、 GetStatus を使用して現行の ト ランザクシ ョ ンのステータスを取得します。

// インスタンス変数 :// EJBConnection myconnectEJBTransaction mytranslong ll_status

mytrans = myconnect.GetEJBTransaction()ll_status = mytrans.GetStatus()

引数 説明

ejbtrans EJBTransaction オブジェク トの名前

PowerBuilder エクステンシ ョ ン リファレンス 15

Page 32: · PDF file(PBDOM : PowerBuilder Document Object Model

EJBTransaction

解説 GetStatus メ ソ ッ ドを使用する と、Begin メ ソ ッ ドで ト ランザクシ ョ ンを開始したク ラ イアン トによって、 ト ランザクシ ョ ンの現在のステータスを調べるこ とができます。

関連項目 BeginCommitGetEJBTransaction (EJBConnection ク ラス)RollbackSetRollbackOnlySetTransactionTimeout

Rollback機能 呼び出し元スレッ ドに関連付けられている ト ランザクシ ョ ンをロール

バッ ク します。

構文 ejbtrans.Rollback ( )

戻り値 なし

例 次の例では、更新が成功しなかった場合に、Rollback を使用して ト ランザクシ ョ ンをロールバッ ク します。

// インスタンス変数 :// EJBTransaction trans// TRY

trans.begin()Acct.updateChecking(amount)trans.commit()

CATCH (exception e1) TRY

trans.rollback()CATCH (exception e2)

MessageBox("Rollback の失敗 ", e2.getMessage())END TRY

MessageBox("Transaction の失敗 ", e1.getMessage())END TRY

引数 説明

ejbtrans EJBTransaction オブジェク トの名前

16 PowerBuilder

Page 33: · PDF file(PBDOM : PowerBuilder Document Object Model

第 2 章 EJB クライアン ト

関連項目 BeginCommitGetStatusGetEJBTransaction (EJBConnection ク ラス)SetRollbackOnlySetTransactionTimeout

SetRollbackOnly機能 ト ランザクシ ョ ンのロールバッ クが唯一発生し う る結果となる よ う

に、 呼び出し元のスレッ ドに関連付けられている ト ランザクシ ョ ンを修正します。

構文 ejbtrans.SetRollbackOnly ( )

戻り値 なし

例 次の例では、 ト ランザクシ ョ ン内のある参加スレ ッ ドが ト ランザクシ ョ ンをロールバッ クする必要がある と判断しま した。 この参加スレッ ドは、 現在の ト ランザクシ ョ ンに対する参照を取得して、 ト ランザクシ ョ ンのロールバッ クを実行します。

// インスタンス変数 :// EJBConnection conn// EJBTransaction trans

trans = conn.GetEJBTransaction()trans.SetRollbackOnly()

解説 Rollback は、 ト ランザクシ ョ ンの発信元から通常呼び出されますが、 トラ ンザクシ ョ ンのほかの参加スレ ッ ドが SetRollbackOnly を呼び出して、 ト ランザクシ ョ ンのロールバッ クを実行するこ と もできます。

関連項目 BeginCommitGetStatusGetEJBTransaction (EJBConnection ク ラス)RollbackSetTransactionTimeout

引数 説明

ejbtrans EJBTransaction オブジェク トの名前

PowerBuilder エクステンシ ョ ン リファレンス 17

Page 34: · PDF file(PBDOM : PowerBuilder Document Object Model

EJBTransaction

SetTransactionTimeout機能 以降の ト ランザクシ ョ ンのタイムアウ ト値を設定します。 ト ランザク

シ ョ ンが完了する前にタイムアウ ト期間が満了した場合、 ト ランザクシ ョ ンはロールバッ ク されます。

構文 ejbtrans.SetTransactionTimeout (long seconds )

戻り値 なし

例 次の例では、 SetTransactionTimeout メ ソ ッ ドを使用してタイムアウ ト期間を 5 分に設定しています。

// インスタンス変数 :// EJBConnection conn// EJBTransaction trans

TRYtrans.SetTransactionTimeout(300)trans.begin()

CATCH (exception e)

MessageBox("例外 ", e.getMessage())END TRY

解説 SetTransactionTimeout メ ソ ッ ドは、 ト ランザクシ ョ ンがロールバッ クするまでの経過時間を秒数で指定します。 このタイムアウ ト期間が適用されるのは、 以降の Begin 関数の呼び出しによって作成される ト ランザクシ ョ ンです。 seconds に 0 を指定した場合、 タイムアウ ト期間は無効になり ます。

関連項目 BeginCommitGetStatusGetEJBTransaction (EJBConnection ク ラス)RollbackSetRollbackOnly

引数 説明

ejbtrans EJBTransaction オブジェク トの名前

seconds ト ランザクシ ョ ンがロールバッ クするまでの経過秒数を、 long 型の値で指定

18 PowerBuilder

Page 35: · PDF file(PBDOM : PowerBuilder Document Object Model

第 2 章 EJB クライアン ト

JavaVM機能 JavaVM ク ラスには、Java VM をロードおよび初期化する メ ソ ッ ドがあ

り ます。 また、 Java VM のバージ ョ ンとそのバージ ョ ンが使用するクラスパスを取得する メ ソ ッ ドや、 ク ラス名、 スーパー ク ラス名、 およびそのク ラスの PowerBuilder プロキシから Java ク ラスのインタフェース名を取得する メ ソ ッ ド、 および PowerBuilder プロ キシから別のPowerBuilder プロキシにダウンキャス トする メ ソ ッ ド もあ り ます。

メ ソ ッ ド JavaVM には、 次のメンバー関数があ り ます。

CreateJavaVMCreateJavaInstanceDynamicCastGetActualClassGetInterfacesGetJavaClasspathGetJavaVMVersionGetSuperClassIsJavaVMLoaded

CreateJavaVM機能 Java VM をロード して初期化するか、 または既存の Java VM を現行の

プロセスにアタ ッチします。

構文 javavm.createJavaVM(string classpath, boolean isdebug)

引数 説明

javavm JavaVM ク ラスのインスタンス

classpath EJB サーバで必要となるファ イルが含まれている ク ラスパスを指定する文字列。たとえば、EJB ク ラスへのパスなど

isdebug 現行のアプ リ ケーシ ョ ンが存在しているディ レ ク ト リの VM.out という ファ イルに、デバッグ情報を保存するかど うかを決定するブール値を指定

PowerBuilder エクステンシ ョ ン リファレンス 19

Page 36: · PDF file(PBDOM : PowerBuilder Document Object Model

JavaVM

戻り値 Integer 型。 以下の整数値のいずれかを返します。

1 正常に終了しました。 Java VM はすでにロード されており、 現行のプロセスにアタ ッチされました。

0 正常に終了しました。 Java VM はロードおよび初期化され、 現行のプロセスにアタ ッチされました。

-1 失敗しました。 おそら く jvm.dll がク ラスパスで見つからなかったため、 Java VM はロード されませんでした。

-2 失敗しま した。 pbejbclient110.jar フ ァ イルが見つか り ませんでした。

例 次の例では、 EAServer への接続に createJavaVM を使用する方法を示します。

JavaVM l_jvmEJBConnection l_ejbconnjava_integer vallong rcl_jvm = CREATE JavaVMl_EJBConn = CREATE EJBConnection

TRYIF l_jvm.createJavaVM("", false) >= 0 THENstring ls_props[]ls_props[1] = "javax.naming.Context.INITIAL_CONTEXT_FACTORY=

com.sybase.ejb.InitialContextFactory"ls_props[2] ="javax.naming.Context.PROVIDER_URL=iiop://localhost:9000"ls_props[3] = "javax.naming.Context.SECURITY_PRINCIPAL=jagadmin"ls_props[4] = "javax.naming.Context.SECURITY_CREDENTIALS=jagadmin"l_EJBConn.connectToServer(ls_props)l_EJBConn.createJavaInstance(val, "java_integer")val.java_integer(17)

MessageBox("値は ", val.IntValue() + " です。 ")ELSE

MessageBox("createJavaVM", "失敗しました。 ", StopSign!)END IF

CATCH (Throwable g)

MessageBox("createJavaInstance での例外 ", g.getMessage())END TRY

20 PowerBuilder

Page 37: · PDF file(PBDOM : PowerBuilder Document Object Model

第 2 章 EJB クライアン ト

解説 isdebug 引数は、 ク ラスのロードなどの Java VM に関する情報を、現行のアプ リ ケーシ ョ ンが存在するディ レク ト リ の VM.out ファ イルに記録する と きに使用します。

サーバで必要となる ク ラス と JAR ファ イルが Java VM で使用するク ラスパスにリ ス ト されていない場合、 これらのク ラス と JAR ファ イルをclasspath 引数に含めなければなり ません。

JVM がすでに実行されているときは、 クラスパス引数は無効になる

Java VM がほかのプロ セスによ ってすでに開始されている場合、classpath 引数でのみ渡されるファイルとディレク ト リは Java VM では使用できません。 開発環境では、 Java VM が実行されているかど うかを調べるこ とができ、 実行されている場合には、 システム オプシ ョ ン ダイアログボッ クスの [Java] ページで、 どのクラスパスが使用されているかを調べるこ とができます。実行時には、 IsJavaVMLoaded メ ソ ッ ドを使用して Java VM が実行されているかど うかを調べ、 GetJavaClasspath メソ ッ ドを使用してクラスパスを検索するこ とができます。

開発環境では、 Java VM で使用するク ラスパスは、 次のパスを連結して作成します。

• JVM の開始時に、 プログラムによ り追加されるク ラスパス。 たとえば、 このメ ソ ッ ドに渡すク ラスパス

• PowerBuilder 実行時の静的レジス ト リ ク ラスパス。 このパスは pbjvm110.dll に組み込まれ、 PDF 生成などの機能に対して実行時に必要となるク ラス と、 EJB ク ラ イアン トに格納される

• PowerBuilder システム ク ラスパス。このパスは、PowerBuilder のインス トール時にインス トールされた Windows レジス ト リ キーに存在する。 このパスには、 Java 関連の PowerBuilder 機能の設計時に必要なク ラスが含まれる

• PowerBuilder ユーザ ク ラスパス。 これは、 システム オプシ ョ ン ダイアログボッ クスの [Java] ページで指定するパスである

• システムの CLASSPATH 環境変数

• 現行のディ レク ト リ

JVM は、 実行時に次のク ラスパスを使用します。

• JVM 開始時に、 プログラムで追加されるク ラスパス

• PowerBuilder 実行時の静的レジス ト リ ク ラスパス

• システムの CLASSPATH 環境変数

• 現行のディ レク ト リ

PowerBuilder エクステンシ ョ ン リファレンス 21

Page 38: · PDF file(PBDOM : PowerBuilder Document Object Model

JavaVM

関連項目 ConnectToServerGetJavaClasspathGetJavaVMVersionIsJavaVMLoaded

CreateJavaInstance機能 プロキシ名から Java オブジェク トのインスタンスを作成します。

構文 javavm.CreateJavaInstance (powerobject proxyobject, string proxyname )

戻り値 Long 型。 正常に終了した場合は 0 を返し、 エラーが発生した場合は、以下のいずれかの値を返します。

-1 Java ク ラスの作成に失敗しました。

-2 プロキシ名が無効です。

-3 プロキシ オブジェク トの作成に失敗しました。

例 次の例では、create メ ソ ッ ドで、Java Integer 型ク ラスの引数を受け取ります。 PowerBuilder では java_integer というプロキシを作成します。 このと き、PowerBuilder の integer 型との衝突を避けるために、接頭辞 java_が必要です。 次に、 EJB の create メ ソ ッ ド を呼び出せる よ う に、CreateJavaInstance を呼び出してその変数の値を設定します。

CustomerRemoteHome homeobjCustomerRemote beanobjjava_integer jint_a

tryhomeobj = conn.lookup("CustomerRemoteHome", &

"custpkg/Customer", "custpkg.CustomerRemoteHome" )catch (Exception e)

MessageBox("Lookup での例外 ", e.getMessage())return

end try

tryg_jvm.createJavaInstance(jint_a, "java_integer")

引数 説明

javavm JavaVM ク ラスのインスタンス

proxyobject proxyname で指定されたオブジェ ク ト に対する参照を格納する PowerObject 型の値。 この引数は参照渡しされる

proxyname ローカル Java ク ラスのプロキシ オブジェク トの名前

22 PowerBuilder

Page 39: · PDF file(PBDOM : PowerBuilder Document Object Model

第 2 章 EJB クライアン ト

jint_a.java_integer("8")beanobj = homeobj.create( jint_a, sle_name.text )

catch (RemoteException re)

MessageBox("Remote の例外 ", re.getMessage())return

catch (CreateException ce)

MessageBox("Create の例外 ", ce.getMessage())return

catch (Throwable t)

MessageBox("ほかの例外 ", t.getMessage())end try

MessageBox("情報 ", &" このレコードは、 データベースに正常に " &+ "~r~n保存されました。 ")

解説 EJB メ ソ ッ ドで Java ク ラスを引数と して受け取る と きに、 このメ ソ ッドを使用します。 たとえば、 findByPrimaryKey メ ソ ッ ドに対する主キーク ラスの引数が Java ク ラスである場合、 CreateJavaInstance メ ソ ッ ドを使って主キー ク ラスを作成します。 次に、 PowerBuilder プロキシを使用して、 Java ク ラス とのやり取り を行います。

DynamicCast機能 インスタンス化された PowerBuilder プロキシ オブジェク ト を、渡され

たプロキシ名のプロキシに変換します。

構文 javavm.DynamicCast(powerobject proxyobject, readonly string proxyname)

戻り値 Powerobject 型の値。 proxyname で参照される Java ク ラスの新しいプロキシ オブジェ ク ト を返します。 プロキシを作成できない場合は、 nullを返します。

引数 説明

javavm JavaVM ク ラスのインスタンス

proxyobject インスタンス化された PowerBuilder プロキシ オブジェク ト

proxyname インスタンス化されるプロキシの名前を格納する文字列

PowerBuilder エクステンシ ョ ン リファレンス 23

Page 40: · PDF file(PBDOM : PowerBuilder Document Object Model

JavaVM

例 例 1 次の例では、 nextElement メ ソ ッ ドから返されるオブジェ ク ト を、Employee ク ラスのプロキシで表します。GetActualClass メ ソ ッ ドを使用して、 オブジェ ク ト が実際は SalariedEmployee であるかど うかを調べて、 そ うである場合は、 adjustSalary メ ソ ッ ドを呼び出せるよ うに、 プロキシ px_Employee をプロキシ px_SalariedEmployee にダウン キャス トします。

DepartmentHome px_DeptHomeDepartment px_DeptEnumeration px_EmployeeListEmployee px_EmployeeSalaried px_SalariedEmployeeContract px_ContractEmployeeEJBConnection conn

conn = create ejbconnectiontry

conn.connectToServer(properties)px_DeptHome = conn.lookup("DepartmentHome", &

"Department", &"com.joesportinggoods.ejbs.DepartmentHome")

px_Dept = px_DeptHome.findByPrimaryKey(as_DeptName)

px_EmployeeList = px_Dept.getEmployees()DO WHILE px_EmployeeList.hasMoreElements()px_Employee = px_EmployeeList.nextElement()IF i_jvm.getActualClass(px_Employee) = &

"com.joesportinggoods.ejbs.Salaried" THENpx_SalariedEmployee = &

i_jvm.dynamicCast(px_Employee, "Salaried")px_SalariedEmployee.adjustSalary(al_increase)

END IFLOOP

catch (Exception e)THROW CREATE ApplyRaiseException

end try

例 2 次の例では、 getAllItems で EJB 宣言の java.lang.Object を返し、 これを PowerBuilder の Any データ型にマップします。GetInterfaces を呼び出して、 返されたのが java.util.List であるかど うかを調べます。 そ うである場合は、DynamicCast を呼び出して、 List のプロキシを取得します。これを使って リ ス トのサイズを取得してから、Get メ ソ ッ ドを使って リス トの要素を取得します。getAllItems という メ ソ ッ ドは、あらゆる種類の製品の部品番号リ ス ト を取得する場合など、 多くの場合に使用できます。

24 PowerBuilder

Page 41: · PDF file(PBDOM : PowerBuilder Document Object Model

第 2 章 EJB クライアン ト

ItemManagerHome px_ItemMgrHomeItemManager px_ItemMgrItem px_ItemList px_ItemListany any_Objectboolean ib_isAList = FALSEstring is_IFs[]string is_actualClasslong ll_row

TRYpx_ItemMgrHome =

g_EJBConn.Lookup("ItemManagerHome", &"ItemManager","com.xapic.ItemManagerHome")

px_ItemMgr = px_ItemMgrHome.create()any_Object = px_ItemMgr.getAllItems()

// オブジェク トが java.util.List インタフェースを// 実装しているかどうかを調べます。

integer iFOR i = 1 to g_javaVM.getInterfaces(any_Object, &

is_IFs)IF is_IFs[i] = "java.util.List" THEN

ib_isAList = TRUEEXIT

END IFNEXT

// リス トの場合IF ib_isAList THEN

px_ItemList = g_javaVM.dynamicCast(any_Object, &"list")

// リス ト全部を調べます。

FOR i = 0 TO px_ItemList.size() - 1

// リス ト上の項目を取得します。any_Object = px_ItemList.get(i)

// クラスを調べて、 動的にキャスト します。is_actualClass = &

g_javaVM.getActualClass(any_Object)is_actualClass = Mid(is_actualClass, &

LastPos(is_actualClass,".") + 1, &Len(is_actualClass))

px_Item = g_javaVM.dynamicCast(any_Object, is_actualClass)

// 項目をデータストアに追加します。ll_row = ads_Items.insertRow(0)ads_Items.object.id[ll_row] = px_Item.getID()ads_Items.object.type[ll_row] = is_actualClass

PowerBuilder エクステンシ ョ ン リファレンス 25

Page 42: · PDF file(PBDOM : PowerBuilder Document Object Model

JavaVM

NEXTEND IF

CATCH (Throwable t)

// 例外を処理します。END TRY

解説 EJB メ ソ ッ ド呼び出しから返された Java オブジェ ク ト を、 必要な メソ ッ ドを提供していないプロキシで表せるよ うにする方法には、 次の2 つの方法があ り ます。

• EJB メ ソ ッ ド呼び出しから返された Java オブジェク トのク ラスが動的に生成される場合には、 PowerBuilder では Java ク ラスが実装する最初のインタフェースのプロキシを使用する

• 実際には someclass を返す EJB メ ソッ ド のプロト タイプを、 someclassが拡張または実装するクラスを返すよう に定義できる

たとえば、 実際には java.util.ArrayList とい う オブジェ ク ト を返すメソ ッ ドのプロ ト タイプがある場合は、かわりに java.util.Collection を返すよ うに定義できます。java.util.ArrayList ク ラスは java.util.AbstractList から継承され、 さらにこの java.util.AbstractList は java.util.AbstractCollectionから継承され、 この java.util.AbstractCollection が java.util.Collection を実装する と いう 方法で定義し ます。 メ ソ ッ ド のプロ ト タ イ プがjava.util.Collection の戻り 値のデータ 型を 持っ ている 場合には、PowerBuilder は java.util.Collection のプロ キシを使用し ます。

DynamicCast メ ソ ッ ド を使用する と、 返されたプロキシ オブジェ ク トを、 必要とするインタフェースのプロキシや、 実行時に返されるオブジェク トの実際のク ラスのプロキシにキャス トできるので、 そのオブジェク トのメ ソ ッ ドが使用できるよ うにな り ます。

GetActualClass メ ソ ッ ドを使用する と、 オブジェク トの実際のク ラスを取得できます。 また、 DynamicCast メ ソ ッ ドを、 Java ク ラスの直接の親を返す GetSuperClass メ ソ ッ ド と、Java ク ラスが実装するインタフェースの リ ス ト を文字列配列に書き込む GetInterfaces メ ソ ッ ド と一緒に使用するこ と もできます。

たとえば、 次のク ラスがある と します。

public class java.util.LinkedList extends java.util.AbstractSequentialList implements java.util.List, java.lang.Cloneable, java.io.Serializable

GetActualClass は java.util.LinkedList を返し、 GetSuperClass は java.util.AbstractSequentialList を返し、 さ らに GetInterfaces は 3 を返して、java.util.List、 java.lang.Cloneable、 および java.io.Serializable の 3 つの文字列を、 参照される文字列配列に書き込みます。

26 PowerBuilder

Page 43: · PDF file(PBDOM : PowerBuilder Document Object Model

第 2 章 EJB クライアン ト

関連項目 CreateJavaVMGetActualClassGetInterfacesGetSuperClass

GetActualClass機能 PowerBuilder プロキシ オブジェク トが表す Java オブジェク トのク ラス

を返します。

構文 javavm.GetActualClass(powerobject proxyobject)

戻り値 String 型

解説 実行時に返される実際のオブジェク トのかわりに、 実際のオブジェクトのク ラスを拡張または実装するク ラスである Java ク ラスを返すよ うに EJB メ ソ ッ ドが定義されている場合、GetActualClass メ ソ ッ ドを使用する と、 実際に返されるオブジェク トのク ラス名を取得できます。 次に、DynamicCast メ ソ ッ ドを使用すれば、 メ ソ ッ ドから返されたプロキシを、 オブジェク トの実際のク ラスのプロキシにキャス トできます。

詳細とスク リプ ト例については、DynamicCast メ ソ ッ ドの説明を参照して ください。

関連項目 CreateJavaVMDynamicCastGetInterfacesGetSuperClass

引数 説明

javavm JavaVM ク ラスのインスタンス

proxyobject インスタンス化された PowerBuilder プロキシ オブジェク ト

PowerBuilder エクステンシ ョ ン リファレンス 27

Page 44: · PDF file(PBDOM : PowerBuilder Document Object Model

JavaVM

GetInterfaces機能 PowerBuilder プロキシ オブジェク トが表す Java オブジェク トで実装さ

れるインタフェースの名前を、 文字列配列に格納します。

構文 javavm.GetInterfaces(powerobject proxyobject, ref string interfacename[ ])

戻り値 Integer 型。 proxyobject が表わす Java オブジェク トで実装されるインタフェースの数を返します。Java オブジェク トで実装されるインタフェースがない場合は、 0 を返します。 proxyobject が無効な場合は、 -1 を返します。

解説 ク ラスが複数のインタフェースを実装する場合は、 Java オブジェク トを返す EJB メ ソ ッ ド呼び出しから返されたプロキシが、 Java ク ラスで実装される最初のインタフェースにマップされます。このメ ソ ッ ドが、Java ク ラスで実装されるインタフェースの リ ス ト を、 文字列配列に書き込みます。このメ ソ ッ ドは、返されたプロキシを必要なインタフェースにキャス トする DynamicCast メ ソ ッ ド と一緒に使用できます。

詳細については、 DynamicCast メ ソ ッ ドの説明を参照して ください。

関連項目 CreateJavaVMDynamicCastGetActualClassGetSuperClass

引数 説明

javavm JavaVM ク ラスのインスタンス

proxyobject インスタンス化された PowerBuilder プロキシ オブジェク ト

interfacename[ ] PowerBuilder プロキシ オブジェク トが表わす Java オブジェ ク ト で実装されるインタフェースの名前を持つ可変長の文字列配列への参照

28 PowerBuilder

Page 45: · PDF file(PBDOM : PowerBuilder Document Object Model

第 2 章 EJB クライアン ト

GetJavaClasspath機能 現行の Java VM のク ラスパスを取得します。

構文 javavm.getJavaClasspath( )

戻り値 String 型

例 次の例では、GetJavaClasspath を使用して、 JVM 開始時にク ラスパスを取得し、 そのク ラスパスをログ ファ イルに書き込む方法を示します。

// インスタンス変数 :// JavaVM i_jvm// boolean i_jvm_started = false// string is_classes

// JavaVM を起動し、 EJB サーバへの接続準備を行います。string classpathInteger li_ret

// JAVAVM を作成します。if ib_jvm_started = false then

i_jvm = create javavm

classpath = is_classesli_ret = i_jvm.createJavaVM(classpath, true)if li_ret = -1 then

MessageBox(" エラー ", "JavaVM のロードに失敗しました。")end ifif li_ret = -2 then

MessageBox(" エラー ", "EJBLocator のロードに失敗しました。 ")end if

ib_jvm_started = true

integer li_FileNumstring ls_classpath, ls_string

li_FileNum = FileOpen("C:\temp\classpath.log", &LineMode!, Write!, LockWrite!, Append!)

ls_classpath = i_jvm.getjavaclasspath()ls_string = String(Today()) + " " + String(Now())ls_string += ":~r~n" + ls_classpath + "~r~n"

FileWrite(li_FileNum, ls_string)FileClose(li_filenum)

end if

PowerBuilder エクステンシ ョ ン リファレンス 29

Page 46: · PDF file(PBDOM : PowerBuilder Document Object Model

JavaVM

関連項目 CreateJavaVMGetJavaVMVersionIsJavaVMLoaded

GetJavaVMVersion機能 現行の Java VM のバージ ョ ン番号を取得します。

構文 javavm.getJavaVMVersion( )

戻り値 Java VM バージ ョ ンを表す String 型の値。 たとえば JDK 1.4 の場合、GetJavaVMVersion は 1.4.0 を返します。

例 次の例では、 GetJavaVMVersion の使い方を示します。

// グローバル変数 JavaVM g_jvmstring ls_javaVMVersionls_javaVMVersion = g_jvm.getJavaVMVersion()

関連項目 CreateJavaVMGetJavaClasspathIsJavaVMLoaded

GetSuperClass機能 PowerBuilder プロキシ オブジェク トが表す Java オブジェク トのク ラス

のスーパー ク ラスの名前を返します。

構文 javavm.GetSuperClass(powerobject proxyobject)

戻り値 String 型。 現行の Java オブジェ ク ト が Java.lang.Object またはイ ン タフェースのと きは、 null を返します。

例 この例では、 Java Decimal ク ラスをサブク ラス化している と仮定しています。 作成されるク ラス My.Decimal は、 java.lang.Decimal を拡張したものです。 このク ラスのプロキシ オブジェク ト を作成した後で、 以下のよ うなコードを使ってプロキシが表す実際の Java ク ラス名を調べるこ とができます。

引数 説明

javavm JavaVM ク ラスのインスタンス

proxyobject インスタンス化された PowerBuilder プロキシ オブジェク ト

30 PowerBuilder

Page 47: · PDF file(PBDOM : PowerBuilder Document Object Model

第 2 章 EJB クライアン ト

java_decimal dec_numstring classname, supername

conn.createjavainstance(dec_num, "java_decimal")classname = g_javavm.getactualclass(dec_num)&

classname = "My.Decimal"supername = g_javavm.getsuperclass(dec_num) &

supername = "java.lang.Decimal"

解説 このメ ソ ッ ドは、 プロキシ オブジェク トが参照するク ラスの直接の親の名前を返します。たとえば、 proxyobject が java.io.FilterReader の場合、GetSuperClass は java.io.Reader を返します。GetSuperClass を GetInterfacesメ ソ ッ ド と DynamicCast メ ソ ッ ド と一緒に使用する と、EJB メ ソ ッ ド呼び出しで返されたプロキシ オブジェ ク ト を、 異なるオブジェ ク ト にキャス トするこ とができます。

詳細については、 DynamicCast メ ソ ッ ドの説明を参照して ください。

関連項目 CreateJavaVMDynamicCastGetActualClassGetInterfaces

IsJavaVMLoaded機能 Java VM がロード されているかど うかを調べます。

構文 javavm.IsJavaVMLoaded( )

戻り値 Boolean 型。Java VM がすでにロード されている場合は true を返し、ロード されていない場合は false を返します。

例 次の例では、 Java VM の作成およびロードを試みる前に、 Java VM がロード されているかど うかを調べます。

if (IsJavaVMLoaded) then

// 処理は省略else

// 処理を実行end if

引数 説明

javavm JavaVM ク ラスのインスタンス

PowerBuilder エクステンシ ョ ン リファレンス 31

Page 48: · PDF file(PBDOM : PowerBuilder Document Object Model

JavaVM

解説 処理を進める前に Java VM がロード されているかど うかを調べる必要がある場合に、 このメ ソ ッ ドを使用します。 Java VM がすでにロードされている場合、 アプ リ ケーシ ョ ンの一部の機能を有効または無効にする必要がある場合があ り ます。 たとえば、 CreateJavaVM メ ソ ッ ドで使用するク ラスパスに追加するク ラスの リ ス ト を、 開発者が指定できるウ ィ ン ド ウがアプ リ ケーシ ョ ンに用意されていても、 Java VM がすでにロード されている場合には、 このウ ィン ド ウで変更を加えても リス トは追加されないので、 この機能を無効にするこ とができます。

関連項目 CreateJavaVMGetJavaClasspathGetJavaVMVersion

32 PowerBuilder

Page 49: · PDF file(PBDOM : PowerBuilder Document Object Model

第 3 章 Web サービス クライアン ト

この章について この章では、 アクセスする Web サービスをホス ト している SOAPサーバに接続する と きに使用する、 PowerBuilder エクステンシ ョン ク ラスについて説明します。 さ らに、 Web サービス用の UDDIレジス ト リ を検索するのに使用できるエクステンシ ョ ン ク ラスについても説明します。 Web サービスでの作業についての詳細は、『アプ リ ケーシ ョ ン テクニッ ク』 マニュアルを参照して ください。

内容

SoapConnection機能 SoapConnection ク ラ スは、 特定の Web サービスのプロキシ オブ

ジェ ク ト を作成し、 接続用のオプシ ョ ンを設定する と きに使用します。

メ ソ ッ ド SoapConnection には、 次のメ ソ ッ ドがあ り ます。

CreateInstanceDynamicCastRemoveAuthenticationSetBasicAuthenticationSetClientCertificateFileSetOptionsSetProxyServerSetProxyServerOptionsSetSoapLogFileSetTimeoutUseConnectionCacheUseIntegratedWindowsAuthentication

GenerateProxy メ ソ ッ ドは、 現在実装されていません。

項目 ページ

SoapConnection 33SoapException 45UDDIProxy 46

PowerBuilder エクステンシ ョ ン リファレンス 33

Page 50: · PDF file(PBDOM : PowerBuilder Document Object Model

SoapConnection

CreateInstance機能 ユーザ指定の WSDL ファ イルから取得した SOAP サーバのデフォルト

の URL を使って、 プロキシ インスタンスを作成します。 ク ラ イアント アプ リ ケーシ ョ ンは、プロキシ インスタンスを作成しておかなければ Web サービスにアクセスできません。

構文 conn.CreateInstance (ref powerobject proxy_obj, string proxy_name, {string portname}) throws SoapException

戻り値 Long 型。 次のいずれかの値を返します。

例 例 1 次の例では、 ク ラ イアン ト アプ リ ケーシ ョ ンで http://my.server/soap/myport の Web サービスにアクセスするプロキシ インスタンスを作成します。 「myport」 とい うサービス ポート (エンドポイン ト ) の接頭辞と して 「syb_」 を選択する と、 Web サービス プロキシ ウ ィザードによ りプロキシ名 「syb_myport」 が生成されます。

syb_myport myproxylong ret

ret = Conn.CreateInstance(myproxy, "syb_myport", "http://my.server/soap/myport")

例 2 次のスク リプ トでは、 SOAP サーバ上の Web サービスへの接続を作成します。 CreateInstance メ ソ ッ ドで定義されたエンドポイン ト を使用して、接続プロパティを設定します。エンドポイン トが CreateInstanceメ ソ ッ ドで定義されていないと きは、 プロキシに格納されているデフォルトの URL が使用されます。 このスク リプ トでは、 SetOptions メソ ッ ド を使用してログ ファ イルを指定しています。 戻り値をアプ リケーシ ョ ンのメ ッセージ ボッ クスに表示します。

引数 説明

conn 接続を確立する SoapConnection オブジェク トの名前

proxy_obj プロキシ オブジェク トの参照名

proxy_name プロキシに格納されている WSDL ファ イルの URL から取得したポート名に基づく、 プロキシの名前

portname オプシ ョ ン。 プロキシに格納されていない URL から取得したポート名

値 説明

0 正常に終了

100 プロキシ名が無効

101 プロキシの作成に失敗

34 PowerBuilder

Page 51: · PDF file(PBDOM : PowerBuilder Document Object Model

第 3 章 Web サービス クライアン ト

SoapConnection conn // SoapConnection を定義します。syb_currencyexchangeport proxy_obj // プロキシを宣言します。long rVal, lLogreal amount

// エンド ポイント を定義します。 プロキシ内のデフォルト の// エンド ポイント を使用するときは、 この定義を省略できます。

string str_endpoint

str_endpoint = "http://services.xmethods.net:80/soap"

conn = create SoapConnection // インスタンス化された接続

lLog = conn.SetOptions("SoapLog=~"C:\mySoapLog.log~"")

// soap による交換データを記録する ト レース ファイルを設定します。// 文字列が "" のときは、 この機能は無効になります。

rVal = Conn.CreateInstance(proxy_obj, &"syb_currencyexchangeport", str_endpoint)

// プロキシ オブジェク ト を作成します。try

amount = proxy_obj.getrate("us","japan")

// サービスを起動します。messagebox("現在の為替レートは ", "1 US ドル "&+ " 日本円で " + string(amount) + " です。 ")

catch ( SoapException e )

messagebox ("エラー ", "Web サービスを呼び出せません。 ") // エラー処理end trydestroy conn

解説 プロキシをインスタンス化する と、関連付けられている Web サービスの ポートから必要な SOAP メ ソ ッ ドをいつでも呼び出すこ とができます。

関連項目 SetOptionsSetProxyServerOptions

PowerBuilder エクステンシ ョ ン リファレンス 35

Page 52: · PDF file(PBDOM : PowerBuilder Document Object Model

SoapConnection

DynamicCast機能 あるデータ型 (非ビジュアル オブジェク ト あるいは構造体) から別の

データ型へ変数を動的にキャス ト します。 つま り、 元のデータ型から目的のデータ型にランタイム データをコピーします。 しかし、 このメソ ッ ドを呼び出す前に、 元のデータ型が目的のデータ型に変換できるか確認する必要があ り ます。

このメ ソ ッ ドは、 .NET Web サービスでのみ使用できます。

構文 conn.DynamicCast (powerobject src, string targettype)

戻り値 Powerobject 型。 targettype 変数で指定したデータ型のオブジェ ク ト です。

例 次のコードは、返されたメ ッセージを msgA データ型から msgB データ型に変更します。

Try msgA = myReport.GetMessage() MessageB msgB msgB = lsc_connection.dynamiccast(msgA, "MessageB")

Catch (SoapException e)...End Try

解説 一部の Web サービスは、 Web サービス メ ソ ッ ドの定義でベース ク ラスを使用するよ うにしていても、 サブク ラスのランタイム データを返します。DynamicCast メ ソ ッ ドを呼び出して、ベース ク ラスのプロキシオブジェ ク ト にサブク ラスのプロキシ オブジェ ク ト をキャス ト します。

望むデータ型にオブジェク ト を変換した後、 そのオブジェク ト内の各フ ィールドにアクセスします。

RemoveAuthentication機能 Web サービス接続のための認証を削除します。 このメ ソ ッ ドは .NET

Web サービスでのみ使用できます。

引数 説明

conn 接続を確立する SoapConnection オブジェク トの名前 src 変換する PowerScript データ型

targettype オブジェク ト を変換するデータ型を指定する文字列

36 PowerBuilder

Page 53: · PDF file(PBDOM : PowerBuilder Document Object Model

第 3 章 Web サービス クライアン ト

構文 conn.RemoveAuthentication ()

戻り値 Long 型。 正常に終了した場合は 0 を返し、失敗した場合は 50 を返します。

解説 このメ ソ ッ ドは基本認証、 ダイジェス ト認証、 および統合 Windows 認証の情報を消去します。 SetBasicAuthentication メ ソ ッ ド、UseIntegratedWindowsAuthentication メ ソ ッ ド、 または SetOptions メ ソ ッドで認証を設定するこ とができます。

関連項目 SetBasicAuthenticationSetOptionsUseIntegratedWindowsAuthentication

SetBasicAuthentication機能 SoapConnection オブジェク トが、 Web サービス接続のための基本認証

を使用するかど うかを決定します。 このメ ソ ッ ドは .NET Web サービスでのみ使用できます。

構文 conn.SetBasicAuthentication (string domain, string userID, string password)

戻り値 Long 型。 正常に終了した場合は 0 を返し、失敗した場合は 50 を返します。

解説 SetOptions メ ソ ッ ドの options 引数にク ライアン ト識別情報を含めるかわりに SetBasicAuthentication メ ソ ッ ドを呼び出すこ とができます。統合Windows 認証では、 UseIntegratedWindowsAuthentication メ ソ ッ ド を呼び出すこ とができます。

関連項目 RemoveAuthenticationSetOptionsUseIntegratedWindowsAuthentication

引数 説明

conn 接続を確立する SoapConnection オブジェク トの名前

引数 説明

conn 接続を確立する SoapConnection オブジェク トの名前

domain ユーザが属する Web ド メ イ ン用の String 型の値。 これは「sybase.com」 などのド メ イン名、 またはマシン名

userID https 接続用の String 型の値

password https 接続用の String 型の値

PowerBuilder エクステンシ ョ ン リファレンス 37

Page 54: · PDF file(PBDOM : PowerBuilder Document Object Model

SOAPException

SetClientCertificateFile機能 Web サービスに接続するために使用する証明書ファ イルを設定しま

す。 このメ ソ ッ ドは .NET Web サービスでのみ使用できます。

構文 conn.SetClientCertificateFile (string filename)

戻り値 Long 型。 正常に終了した場合は 0 を返し、失敗した場合は 50 を返します。

解説 SetOptions メ ソ ッ ド の options 引数に証明書情報を含めるかわ り にSetClientCertificateFile メ ソ ッ ドを呼び出すこ とができます。

関連項目 SetBasicAuthenticationSetOptionsUseIntegratedWindowsAuthentication

SetOptions機能 SoapConnection ク ラスの接続オプシ ョ ンを設定します。 String 型の値の

オプシ ョ ンの名前は、 大文字と小文字を区別しません。 SetOptions メソ ッ ドの値は、 使用可能なすべてのオプシ ョ ンに関して単一の文字列引数を取り ますが、 さ らに個別のメ ソ ッ ドを使用してそれぞれのオプシ ョ ンを設定できます。

.NET Web サービスでは、 SetOptions メ ソ ッ ドのかわりに次のメ ソ ッ ドを使用するこ とができます。

• SetBasicAuthentication

• SetClientCertificateFile

• SetTimeout

• UseIntegratedWindowsAuthentication

• RemoveAuthentication

引数 説明

conn 接続を確立する SoapConnection オブジェク トの名前

filename Web サービスへの接続に使用する証明書ファ イルの名前を含む String 型の値。 複数ファ イルの場合は区切り記号と してセミ コ ロンを使用する必要がある。 値には リ モー ト の証明書ファ イルへの完全なパスおよび URL を持つローカル ファ イルを含める こ とができる。 証明書の使用を中断するには、 空の文字列 (“”) を入力する

38 PowerBuilder

Page 55: · PDF file(PBDOM : PowerBuilder Document Object Model

第 3 章 Web サービス クライアン ト

EasySoap Web サービスでは、SetOptions メ ソ ッ ドのかわりに次のメ ソ ッドを使用するこ とができます。

• SetSoapLogFile

• SetTimeout

• UseConnectionCache

構文 conn.SetOptions (string options)

引数 説明

conn 接続を確立する SoapConnection オブジェク トの名前 options 設定する接続オプシ ョ ン。 次のオプシ ョ ンを指定できる

SoapLog (EasySoap Web サービス エンジンのみ) SoapLog のファイル パス。 ログを無効にするには、 "" を入力する

UserID https 接続用の String 型の値

Password https 接続用の String 型の値

Domain (.NET Web サービス エンジンのみ) ユーザが属するWeb ド メ インの String 型の値。 これは 「sybase.com」 などのド メ イン名、 またはマシン名

UseWindowsAuthentication (.NET Web サービス エンジンのみ) 「統合 Windows 認証」 を使用するかど う かを決める「yes」 または 「no」 の値。 入力する値は、 Boolean 型の値または String 型の値。 このオプシ ョ ンに 「yes」 を設定する場合は、 UserID、 Password、および Domain オプシ ョ ンを設定する必要はない

AuthenticationMode (.NET Web サービス エンジンのみ) 使用する認証モードの String 型の値。 この値は 「basic」 または 「digest」 になる。 AuthenticationMode の値は、 Microsoft MSDN Web のサイ ト http://msdn2.microsoft.com/ja-jp/library/w67h0dw7(VS.80).aspx で説明

CertificateFile (.NET Web サービス エンジンのみ) Web サービス ク ラ イアン ト からサーバに送信したい証明書ファ イルの String 型の値。String 型の値にはリモートの証明書ファイルへの完全なパスおよび URL を持つローカル ファ イルを含めるこ とができる。 複数ファ イルの場合は区切り記号と してセ ミ コロンを使用する必要がある

Timeout 最大待ち時間の秒数デフォルトのタイムアウ ト値は 0 で、 これは接続時間に対する制限が設定されていないこ とを意味する

ConnectionCache (EasySoap Web サービス エンジンのみ) プロキシ呼出し後もプロキシ インスタンスの http 接続を維持するかど うかを決定する Boolean 型の値。 デフォル ト値はfalse。 EAServer 上の Web サービスの場合、 このデフォルトの値を変更してはならない

PowerBuilder エクステンシ ョ ン リファレンス 39

Page 56: · PDF file(PBDOM : PowerBuilder Document Object Model

SoapConnection

戻り値 Long 型。 正常に終了した場合は 0 を返し、 失敗した場合は 50 を返します。 複数の options を指定し、 戻り値が 50 であった場合は、 失敗する前に指定されたオプシ ョ ンはそのまま有効です。

例 次の例では、 アプ リ ケーシ ョ ンでログ機能を有効にし、 ユーザ ID、 パスワード、 タイムアウ トが設定されていないエンドポイン トへの接続を試みています。

lOpt=Conn.SetOptions("SoapLog=~"airportweather.log~"")

2 組めの引用符の前にエスケープ文字を使用した くない場合は、 かわりに単引用符を使用するこ とができます。 つま り、 外側の文字列を単引用符で囲み、 内側の文字列を二重引用符で囲みます。

lOpt=Conn.SetOptions('SoapLog="airportweather.log"')

解説 ユーザ ID とパスワードの値は、SoapConnection ク ラスが使用するエンドポイン ト で設定するか、 またはこれらの値を引数と して SetOptionsメ ソ ッ ドに含めるこ とによ り設定できます。

引数と して SoapConnection ク ラスの CreateInstance メ ソ ッ ドに渡されるエンドポイン ト (ポート ) で設定された値が優先されます。 ただし、CreateInstance メ ソ ッ ドでエンドポイン ト が設定されていない場合は、デフォルトのエンドポイン トが使用されます。 この場合は、 SetOptionsメ ソ ッ ドで定義されたユーザ ID とパスワードの値が優先されます。

SoapConnection ク ラスが使用するエン ドポイン ト にユーザ ID とパスワードの値が設定されておらず、 SetOptions メ ソ ッ ドでユーザ ID やパスワードを設定していない場合には、 SoapConnection ク ラスはユーザID やパスワードを指定せずに SOAP サーバに接続します。

エンドポイン ト または SetOptions メ ソ ッ ドのいずれかでユーザ ID が定義されていても、 パスワードが定義されていない場合は、 パスワードの値は空白の文字列と して処理されます。

タイムアウ ト をデフォルト以外の値に設定する と、 Web サービス接続がタイムアウ ト した後で例外が送出されます。 ク ラ イアン トからタイムアウ トの値を設定しない場合でも、 Web サーバはまだサーバ サイ ドでタイムアウ トする リ クエス ト を引き起こしているこ とがあ り ます。

ConnectionCache を引数と して SetOptions 呼び出しに含める場合は、 このオプシ ョ ンに設定する値を引用符で囲んではいけません。

関連項目 CreateInstanceRemoveAuthenticationSetBasicAuthenticationSetClientCertificateFileSetSoapLogFile

40 PowerBuilder

Page 57: · PDF file(PBDOM : PowerBuilder Document Object Model

第 3 章 Web サービス クライアン ト

SetProxyServerOptionsSetTimeoutUseConnectionCacheUseIntegratedWindowsAuthentication

SetProxyServer機能 プロキシ サーバ用のアドレス、 ポート、 ユーザ名、 およびパスワー

ドを設定します。 このメ ソ ッ ドには以下の 2 つの構文があ り ます。

構文 conn.SetProxyServer (string address, string userID, string password)

conn.SetProxyServer (string hostname, long port, string userID, string password)

戻り値 Long 型。 正常に終了した場合は 0 を返し、失敗した場合は 50 を返します。

例 次の例では、 SetProxyServer の 4 つの引数の構文を使用します。

long ll_returnll_return = Conn.SetProxyServer & (“http://myProxyServer”,8080, “My Name”, “My Pass”)

解説 このメ ソ ッ ドは、SetProxyServerOptions メ ソ ッ ド と同じこ とを行いますが、 SetProxyServerOptions メ ソ ッ ド とは構文が異なり ます。

このメ ソ ッ ド または SetProxyServerOptions メ ソ ッ ドは、 プロキシ サーバで認証が必要な場合に使用します。 SetOptions またはほかの認証メソ ッ ドで指定するユーザ ID とパスワードは、 プロキシ サーバではなく Web サービスの URL に適用されます。

関連項目 SetOptionsSetProxyServerOptions

引数 説明

conn 接続を確立する SoapConnection オブジェク トの名前 address プロキシ サーバのホス ト名とポート、 およびオプシ ョ ンのエ

ンドポイン ト を含む String 型の値。 形式は以下のとおり

http://hostname:port/pathhostname ホス ト名を含む String 型の値

port プロキシ サーバ ポート用の long 型の値

userID プロキシ サーバ用のユーザ ID を含む String 型の値

password プロキシ サーバ パスワードを含む String 型の値

PowerBuilder エクステンシ ョ ン リファレンス 41

Page 58: · PDF file(PBDOM : PowerBuilder Document Object Model

SoapConnection

SetProxyServerOptions機能 プロキシ サーバ用のプロキシ アドレス、ユーザ名、およびパスワード

を設定します。

構文 conn.SetProxyServerOptions (string optionstring)

戻り値 Long 型。 正常に終了した場合は 0 を返し、 失敗した場合は 50 を返します。

例 次の例では、 ユーザ名、 パスワード、 およびプロキシ エンドポイン トを指定します。

long ll_returnstring ls_stringls_string = "address='http://Srvr:8080/endpnt',"ls_string += "userID='MyName', password='mypass'"ll_return = Conn.SetProxyServerOptions (ls_string)

解説 このメ ソ ッ ドあるいは SetProxyServer メ ソ ッ ドは、 プロキシ サーバで認証が必要な場合に使用します。SetOptions またはほかの認証メ ソ ッ ドで指定するユーザ ID とパスワードは、 プロキシ サーバではなく Webサービスの URL に適用されます。

関連項目 CreateInstanceSetOptionsSetProxyServer

引数 説明

conn 接続を確立する SoapConnection オブジェク トの名前 optionstring 名前と値のカンマ区切りの文字列。 構文は次のとおり

"address='proxy_endpoint '{, userID='name ', password='password '} "

アドレスは必要で、 次の形式が可能 http://hostname:port/path

プロキシ サーバでユーザ ID とパスワードが必要な場合には、ユーザ ID とパスワードの値を指定

42 PowerBuilder

Page 59: · PDF file(PBDOM : PowerBuilder Document Object Model

第 3 章 Web サービス クライアン ト

SetSoapLogFile機能 未加工の SOAP メ ッセージのログのためのファ イル名を設定します。

このメ ソ ッ ドは EasySoap Web サービスでのみ使用できます。

構文 conn.SetSoapLogFile (string filename)

戻り値 Long 型。 正常に終了した場合は 0 を返し、 失敗した場合は 50 を返します。

解説 SetOptions メ ソ ッ ドの options 引数にログ ファ イル名を含めるかわりにSetSOAPLogFile メ ソ ッ ドを呼び出すこ とができます。

関連項目 SetOptions

SetTimeout機能 SOAP 接続のためのタイムアウ トの値を設定します。

構文 conn.SetTimeout (long seconds)

戻り値 Long 型。 正常に終了した場合は 0 を返し、 失敗した場合は 50 を返します。

解説 SetOptions メ ソ ッ ドの options 引数にタイムアウ トの値を含めるかわりに SetTimeout メ ソ ッ ドを呼び出すこ とができます。

関連項目 SetOptions

引数 説明

conn 接続を確立する SoapConnection オブジェク トの名前 filename SOAP ログ ファ イルの完全なファイル名を含む String 型の値。

ログを無効にするには、 空の文字列 (“”) を入力する

引数 説明

conn 接続を確立する SoapConnection オブジェク トの名前 seconds 秒でのタイムアウ ト値。 このオプシ ョ ンに 0 を設定する場

合、 タイムアウ ト をク ラ イアン ト サイ ドで設定しない。(Web サービスはサーバ サイ ドでタ イムアウ ト値を持つ)

PowerBuilder エクステンシ ョ ン リファレンス 43

Page 60: · PDF file(PBDOM : PowerBuilder Document Object Model

SoapConnection

UseConnectionCache機能 接続キャ ッシュを Web サービス接続で使用するかど う かを決定しま

す。 このメ ソ ッ ドは EasySoap Web サービスでのみ使用できます。

構文 conn.UseConnectionCache (boolean cache)

戻り値 Long 型。 正常に終了した場合は 0 を返し、 失敗した場合は 50 を返します。

解説 SetOptions メ ソ ッ ドの options 引数で接続キャ ッシュを設定するかわりに UseConnectionCache メ ソ ッ ドを呼び出すこ とができます。

関連項目 SetOptionsSetSoapLogFile

UseIntegratedWindowsAuthentication機能 SoapConnection オブジェク トが Web サービスへの接続に統合 Windows

認証を使用するかど う かを決定します。 この メ ソ ッ ドは、 .NET Webサービスでのみ使用できます。

構文 conn.UseIntegratedWindowsAuthentication (boolean useIWA)

戻り値 Long 型。 正常に終了した場合は 0 を返し、 失敗した場合は 50 を返します。

解説 SetOptions メ ソ ッ ド の options 引数に接続認証を設定するかわ り にUseIntegratedWindowsAuthentication メ ソ ッ ド を呼び出すこ と ができ ます。

引数 説明

conn 接続を確立する SoapConnection オブジェク トの名前

cache プロキシへの呼び出し後も、 プロキシ インスタンスの http 接続を維持するかど うかを決定する Boolean 型の値。デフォルト値は false。EAServer での Web サービスでは、デフォルト を変更する必要はない

引数 説明

conn 接続を確立する SoapConnection オブジェク トの名前

useIWA 統合 Windows 認証を使用するかを決定する Boolean 型の値。このオプシ ョ ンに 「yes」 を設定する場合は、 UserID、 Password、あるいは Domain オプシ ョ ンを設定する必要はない

44 PowerBuilder

Page 61: · PDF file(PBDOM : PowerBuilder Document Object Model

第 3 章 Web サービス クライアン ト

関連項目 RemoveAuthenticationSetBasicAuthenticationSetOptions

SoapException機能 SoapException ク ラスは、 PowerBuilder RuntimeError クラスから継承された

PBNI ク ラスです。 Web サービスのメ ソ ッ ド 呼び出しで例外が発生すると 、例外は SoapException に変換されて送出されます。PBSoapClient110.pbxのクラスのメ ソッ ド も 、 SoapException を送出できます。

プロパティ

メ ソ ッ ド 次の表に、RuntimeError ク ラスから SoapException オブジェク トが継承したメ ソ ッ ドを示します。

解説 次の例では、 SoapException ク ラ スの使い方を示します。 ServiceProxy が起動に失敗して、 エラー メ ッセージを返します。 コードでは、SoapException、 PBXRuntimeError、 および RuntimeError の 3 つの catch 句を使用した場合を示しています。 PBXRuntimeError は RuntimeError から継承された例外ク ラスであ り、 PowerBuilder エクステンシ ョ ンで捕捉されないエラーが生成されたと きに送出されます。

string s1,s2s1 = "abcd"SoapConnection connlong retServiceProxy proxy

//ServiceProxy は、 Web サービス ウィザードによって生成される// プロキシです。

Exception プロパティ データ型 説明

Text String 型 エラー メ ッセージのテキス トが含まれる

Exception メ ソ ッ ド戻り値のデータ型 説明

GetMessage String 型 RuntimeError 型のオブジェ ク ト からエラー メ ッセージを返す

SetMessage ― RuntimeError 型のオブジェク トのエラー メ ッセージを設定する

PowerBuilder エクステンシ ョ ン リファレンス 45

Page 62: · PDF file(PBDOM : PowerBuilder Document Object Model

UDDIProxy

tryconn = create SoapConnectionret = conn.CreateInstance(proxy, "ServiceProxy")if (ret <> 0)then

MessageBox("失敗 ", "ServiceProxy が " &+ "作成できません。 ")

returnend ifs2 = proxy.EchoString(s1)

MessageBox("成功 ", "戻り値は '" &+ s2 + " ' です。 ")

catch ( SoapException e )

MessageBox("失敗 ", "'Echostring' サービスを呼び出せません。 ")catch (PBXRuntimeError e2)

MessageBox("失敗 ", "Web サービス呼び出し時の " &+ " ランタイム エラーです。 ")

catch (RuntimeError e3)

MessageBox("失敗 ", "Web サービス呼び出し時に "& + "未知のエラーです。 ")

end try

関連項目 『PowerScript リ ファレンス』 マニュアルの 「GetMessage」『オブジェク ト と コン ト ロール』 マニュアルの 「RuntimeError オブジェク ト 」『PowerScript リ ファレンス』 マニュアルの 「SetMessage」

UDDIProxy機能 UDDIProxy ク ラスは、 UDDI 検索のプロキシ オブジェ ク ト を作成し、

検索用のオプシ ョ ンを設定する と きに使用します。

メ ソ ッ ド UDDIProxy ク ラスには次のメ ソ ッ ドがあ り ます。

setInquiryUrlsetOptionfindBusinessgetBusinessDetailfindService

46 PowerBuilder

Page 63: · PDF file(PBDOM : PowerBuilder Document Object Model

第 3 章 Web サービス クライアン ト

setInquiryUrl機能 UDDI 照会の URL を設定します。

構文 proxy.setinquiryurl (readonly string url)

戻り値 Integer 型。 正常に終了した場合は 1 を返し、 失敗した場合は 0 を返します。

例 次のコードは、 照会用 URL を IBM Web サイ トの UDDI レジス ト リに設定します。

uddiproxy proxyint retproxy = create uddiproxyret = proxy.setinquiryurl ("http:/www-3.ibm.com/services/uddi/inquiryapi")

...// 検索処理destroy proxy

setOption機能 UDDI の検索オプシ ョ ンを設定します。オプシ ョ ンでは一致の精度、大

文字と小文字の区別、 結果のソート順、 および返される最大行数を指定できます。

構文 proxy.setoption (boolean exactMatch, boolean caseSensitive, integer sort, integer maxRow)

引数 説明

proxy UDDIProxy オブジェク トの名前

url 有効な UDDI 照会の URL

引数 説明

proxy UDDIProxy オブジェク トの名前

exactMatch true の場合、 完全一致のみ検索する

caseSensitive true の場合、 検索結果は、 検索のキーワードで使われた大文字および小文字と一致しなければならない

sort 検索結果をソートするかど うか、 また、 ソー トする場合はソート方法を指定する値は以下のとおり

• -1 : 検索結果を降順にソート

• 0 : ソート しない

• 1 : 検索結果を昇順にソート

maxRow 検索が返すこ とのできる項目の最大数

PowerBuilder エクステンシ ョ ン リファレンス 47

Page 64: · PDF file(PBDOM : PowerBuilder Document Object Model

UDDIProxy

戻り値 Integer 型。 正常に終了した場合は 1 を返し、 失敗した場合は 0 を返します。

例 次のコードは、 大文字と小文字の区別および返される最大行数のオプシ ョ ンを設定します。

ret = proxy.setoption (false, true, 0, 5)

findBusiness機能 UDDI 検索内のビジネス名を使って、 ビジネス項目を検索します。

構文 proxy.findBusiness (readonly string businessName, ref integer count, ref string busNameResult [ ], ref string busDescriptionResult [ ], ref string busKeyResult [ ])

戻り値 Integer 型。 正常に終了した場合は 1 を返し、 失敗した場合は 0 を返します。

例 次のコードは、 IBM UDDI レジス ト リ内でビジネスの名前、 説明、 およびキーを検索します。

uddiproxy proxyproxy = create uddiproxyint countstring businessName[], businessDescription[]string businessKey []proxy.findbusiness("IBM", count, businessName, &businessDescription, businessKey)

引数 説明

proxy UDDIProxy オブジェク トの名前

businessName UDDI レジス ト リで検索するビジネス名

count 返される検索結果の数。 setOption の呼び出しに対応する入力パラ メータ、 maxRow の値以下でなければならない

busNameResult 検索条件に一致するビジネス名の配列

busDescriptionResult 検索条件に一致するビジネスの説明の配列

busKeyResult 検索条件に一致する各ビジネスの globally unique identifiers (GUID) の配列

48 PowerBuilder

Page 65: · PDF file(PBDOM : PowerBuilder Document Object Model

第 3 章 Web サービス クライアン ト

getBusinessDetail機能 findBusiness メ ソ ッ ドから通常取得するビジネス キーを使って、ビジネ

スの詳細を取得します。

構文 proxy.getBusinessDetail (readonly string businessKey, ref integer count, ref string serviceNameResult [ ], ref string serviceDescriptionResult [ ], ref string serviceKeyResult [ ], ref string wsdl [ ])

戻り値 Integer 型。 正常に終了した場合は 1 を返し、 失敗した場合は 0 を返します。

例 次のコードは、インスタンス化された UDDIProxy オブジェク ト (proxy)の findBusiness の呼び出しで取得したビジネス キーを使って、 ビジネスの詳細を取得します。

int i, count, count2string businessName[], businessDescription[]string businessKey []string serviceName[], serviceDescription[]string serviceKey [], wsdl [ ]

...// 検索オプシ ョ ンと照会用 URL を設定します。proxy.findbusiness ("IBM", count, businessName, &

businessDescription, businessKey)FOR i = 1 TO count

proxy.getbusinessdetail (businessKey [i], count2, &serviceName, serviceDescription, serviceKey, wsdl)

...// FOR/NEXT の 2 次ループ内で findService を呼び出します。NEXT

引数 説明

proxy UDDIProxy オブジェク トの名前

businessKey UDDI レジス ト リで検索するビジネス キー

count 返される検索結果の数。 setOption の呼び出しに対応する入力パラ メータ、 maxRow の値以下でなければならない

serviceNameResult 検索条件に一致するサービスの配列

serviceDescriptionResult 検索条件に一致するサービスの説明の配列

serviceKeyResult 検索条件に一致する各サービスの globally uniqueidentifiers (GUID) の配列

wsdl 検索条件に一致するサービスの WSDL ファ イル名の配列

PowerBuilder エクステンシ ョ ン リファレンス 49

Page 66: · PDF file(PBDOM : PowerBuilder Document Object Model

UDDIProxy

findService機能 サービス名を使ってサービスの詳細を検索します。

構文 proxy.findService (readonly string serviceName, ref integer count, ref string serviceNameResult [ ], ref string serviceDescriptionResult [ ], ref string serviceKeyResult [ ], ref string busNameResult [ ], ref string wsdl [ ])

戻り値 Integer 型。 正常に終了した場合は 1 を返し、 失敗した場合は 0 を返します。

例 次のコードは、インスタンス化された UDDIProxy オブジェク ト (proxy)を使って 「Weather」 サービスにおけるサービスの詳細を取得します。

int ret, countstring serviceName[], serviceDescription[]string serviceKey [], businessName [], wsdl [ ]ret = proxy.findService("Weather", count, serviceName,&

serviceDescription, serviceKey, businessName, wsdl)

引数 説明

proxy UDDIProxy オブジェク トの名前

serviceName UDDI レジス ト リで検索するサービス名

count 返される検索結果の数。 setOption の呼び出しに対応する入力パラ メータ、 maxRow の値以下でなければならない

serviceNameResult 検索条件に一致するサービスの配列

serviceDescriptionResult 検索条件に一致するサービスの説明の配列

serviceKeyResult 検索条件に一致する各サービスの globally uniqueidentifiers (GUID) の配列

busNameResult 検索条件に一致するビジネス名の配列

wsdl 検索条件に一致するサービスの WSDL フ ァ イルの配列

50 PowerBuilder

Page 67: · PDF file(PBDOM : PowerBuilder Document Object Model

第 4 章 PowerBuilder ドキュ メン ト オブジェク ト モデル

この章について この章では、 PowerBuilder ド キ ュ メ ン ト オブジェ ク ト モデル(PBDOM : PowerBuilder Document Object Model)の概要について説明します。 PBDOM の使用方法についての詳細は、 『アプ リ ケーシ ョ ン テクニッ ク』 マニュアルの XML サービスの使い方に関する章を参照して ください。

内容

PBDOM についてPBDOM は PowerBuilder に実装されている ドキュ メン ト オブジェク ト モデル (DOM : Document Object Model) であ り、XML ドキュメン トへのアクセスおよび操作方法を定義するプログラ ミ ング インタフェースです。

PBDOM は World Wide Web Consortium(W3C) DOM API を実装しているわけではあり ませんが、よく 似ています。PBDOM PowerBuilder APIは、PowerScript コード 内から標準形式の XML の読み書き、および操作を行う と きに使用できます。PBDOM では XML ド キュメ ント が相互関連オブジェク ト の集合と して表現され、 また各オブジェク ト の用途と 機能を直観的に示すメ ソッ ド が提供されています。

PBDOM は、 XML ファ イル用の Java ベースのドキュ メン ト オブジェク ト モデルである JDOM にも似ています。

W3C DOM についての詳細は、W3C Document Object Model Web のサ

イ ト http://www.w3.org/DOM/ を参照して ください。JDOM についての詳細は、JDOM Web のサイ ト http://www.jdom.org を参照して ください。

項目 ページ

PBDOM について 51PBDOM オブジェク ト 53

PowerBuilder エクステンシ ョ ン リファレンス 51

Page 68: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM について

ノード ツリー

PBDOM は、 親ノード と子ノードで構成されているツ リービュー モデルに従って、XML ドキュ メン ト とのやり取り を行います。 ドキュ メント要素は、 XML ドキュ メン トの最上位レベルのノードを表します。 ドキュ メン ト要素のそれぞれの子ノードには、 ツ リーの分岐を表す 1 つまたは複数の子ノードがあ り ます。 ツ リー内のノードには、 PBDOMク ラスのメ ソ ッ ドを使ってアクセスできます。

XML パーサ

PBDOM XML パーサを使用して、 XML ドキュ メ ン ト のロード と解析をしたり、ユーザ指定の DOM ノードに基づいて XML ドキュ メン ト を生成した り します。

PBDOM には、 ノード ツ リー内での移動、 ノード と属性値 (ある場合)へのアクセス、 ノードの挿入と削除を行うためのすべてのメ ソ ッ ドが用意されています。 また、 ノード ツ リーをほかのシステムで使用するために XML を変換するために必要なメ ソ ッ ド も用意されています。

オブジェク ト と メ ソ ッ ド

PBDOM オブジェク トの階層構造については、次の 「PBDOM オブジェク ト 」 で説明します。 各オブジェク トのメ ソ ッ ドについては、 以降の章で後述します。 メ ソ ッ ド説明の章は、 参照しやすいよ うにアルファベッ ト順に並んでいます。

第 18 章、 「PBDOM のまとめ」 には、 各 PBDOM オブジェク トで定義されている メ ソ ッ ドのシグネチャが、 ク イ ッ ク リ ファレンス表に記載されています。 この表は、 54 ページの 「オブジェク トの階層構造」 に表示されているオブジェク トの階層構造を反映した順序で並んでいます。

52 PowerBuilder

Page 69: · PDF file(PBDOM : PowerBuilder Document Object Model

第 4 章 PowerBuilder ドキュ メン ト オブジェク ト モデル

PBDOM オブジェク トXML ノ ード を表す PBDOM オブジェク ト の基本クラス PBDOM_OBJECTは、PowerBuilder の NonVisualObject ク ラスから継承されています。PBDOMでは、 ノ ード の種類を次のクラスによって表します。

• PBDOM_ATTRIBUTE

• PBDOM_CDATA

• PBDOM_CHARACTERDATA

• PBDOM_COMMENT

• PBDOM_DOCTYPE

• PBDOM_DOCUMENT

• PBDOM_ELEMENT

• PBDOM_ENTITYREFERENCE

• PBDOM_PROCESSINGINSTRUCTION

• PBDOM_TEXT

これらのク ラスから提供される メ ソ ッ ドを使用して、 PBDOM ノードツ リーのオブジェク トにアクセスします。

PBDOM_BUILDER ク ラスは DOM ノードを表していませんが、このクラスを使用する と、 XML から PBDOM オブジェク ト ツ リーを作成できます。PBDOM_BUILDER ク ラスは、PowerBuilder の NonVisualObjectク ラスから継承されています。

PBDOM_EXCEPTION ク ラスは PowerBuilder の Exception ク ラスから継承され、 エラー コードを取得する メ ソ ッ ドを提供します。

上記の各ク ラス とそのメ ソ ッ ドについては、 以降の章で説明します。

PBDOM オブジェク トと、 W3C DOM および JDOM オブジェクト との比較

次の表に、DOM ツ リーのノードを表す各 PBDOM オブジェク トに対応している W3C DOM オブジェク ト と JDOM オブジェク ト を示します。表に挙げた W3C DOM オブジェク ト と JDOM オブジェク トは PBDOMオブジェク ト に対応しているものですが、 PBDOM オブジェ ク ト と同じ ものではないこ とに注意して ください。

PowerBuilder エクステンシ ョ ン リファレンス 53

Page 70: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM オブジェク ト

表 4-1: PBDOM オブジェク トに対応している W3C DOM オブジェク ト と JDOM オブジェク ト

オブジェク トの階層構造

W3C DOM と JDOM オブジェク トの階層構造も、次の図に示す PBDOMオブジェク トの階層構造と異な り ます。

図 4-1: PBDOM オブジェク トの階層構造

PBDOM の操作方法についての詳細は、 『アプ リ ケーシ ョ ン テクニック』 マニュアルの PowerBuilder の XML サービスに関する章を参照して ください。

PBDOM W3C DOM JDOMPBDOM_ATTRIBUTE ATTRIBUTE_NODE AttributePBDOM_BUILDER なし DOMBuilderPBDOM_CDATA CDATA_SECTION_NODE CDATAPBDOM_CHARACTERDATA CHARACTER_DATA_NODE なし

PBDOM_COMMENT COMMENT_NODE CommentPBDOM_DOCUMENT DOCUMENT_NODE DocumentPBDOM_DOCTYPE DOCUMENT_TYPE_NODE DocTypePBDOM_ELEMENT ELEMENT_NODE ElementPBDOM_ENTITYREFERENCE ENTITY_REFERENCE_NODE EntityRefPBDOM_OBJECT NODE なし

PBDOM_PROCESSINGINSTURCTION PROCESSING_INSTRUCTION_NODE ProcessinginstructionPBDOM_TEXT TEXT_NODE Text

54 PowerBuilder

Page 71: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

この章について この章では、 PBDOM_ATTRIBUTE ク ラスについて説明します。

PBDOM_ATTRIBUTE機能 PBDOM_ATTRIBUTE ク ラ スは、 PowerScript でモデル化される

XML 属性の動作を定義します。 このク ラスのメ ソ ッ ドを使用すると、 属性値と名前空間の情報を取得できます。

PBDOM_ATTRIBUTE ク ラスには、 子 PBDOM_OBJECT のサブツリーが含まれています。 これらの子は、 PBDOM_TEXT オブジェク ト と PBDOM_ENTITYREFERENCE オブジェ ク ト の組み合わせでもかまいません。

PBDOM_ATTRIBUTE に親はない

PBDOM_ATTRIBUTE に親はあ り ません。 ただし、 オーナー PBDOM_ELEMENT があ り ます。 オーナーの取得には GetOwnerElementObject を使用し、 オーナーの設定には SetOwnerElementObject を使用します。

デフォルトの PBDOM_TEXT オブジェク トや、XML 名前空間に関する動作など、PBDOM_ATTRIBUTE オブジェク トについての詳細は、 『アプ リ ケーシ ョ ン テクニッ ク』 マニュアルの XML サービスの使い方に関する章を参照して ください。

メ ソ ッ ド PBDOM_OBJECT から継承されたメ ソ ッ ドの中には、 意味のある用途がな く、 デフォル トの機能や重要でない機能しか実行しないものもあ り ます。 これらのメ ソ ッ ドについて、 次の表で説明します。

メ ソ ッ ド 戻り値

GetParentObject null

SetParentObject 修正されずに PBDOM_OBJECT と して返された、 現行の PBDOM_ATTRIBUTE

PowerBuilder エクステンシ ョ ン リファレンス 55

Page 72: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

PBDOM_ATTRIBUTE ク ラスには次のメ ソ ッ ドがあ り ます。

AddContentCloneDetachEqualsGetBooleanValueGetContentGetDateValueGetDateTimeValueGetDoubleValueGetIntValueGetLongValueGetNameGetNamespacePrefixGetNamespaceUriGetObjectClassGetObjectClassStringGetOwnerDocumentObjectGetOwnerElementObjectGetQualifiedNameGetRealValueGetTextGetTextNormalizeGetTextTrimGetUintValueGetTimeValueGetUlongValueHasChildrenInsertContentIsAncestorObjectOfRemoveContentSetBooleanValueSetContentSetDateValueSetDateTimeValueSetDoubleValueSetIntValueSetLongValueSetNameSetNamespaceSetOwnerElementObjectSetRealValue

56 PowerBuilder

Page 73: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

SetTextSetTimeValueSetUintValueSetUlongValue

AddContent機能 入力された PBDOM_OBJECT を PBDOM_ATTRIBUTE の子と して追加

します。

構文 pbdom_attribute_name.AddContent( pbdom_object pbdom_object_ref)

戻り値 PBDOM_OBJECT。 修正された PBDOM_ATTRIBUTE です。

Throws EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT ― 入力さ れた PBDOM_OBJECT が、 PBDOM_TEXT または PBDOM_ENTITYREFERENCE オブジェク トでない場合

EXCEPTION_USE_OF_UNNAMED_OBJECT ― 入力された PBDOM_OBJECT にユーザ定義名が付いていない場合

解説 pbdom_object_ref は、 PBDOM_TEXT または PBDOM_ENTITYREFERENCE オブジェク ト への参照でなければなり ません。

関連項目 GetContentInsertContentRemoveContentSetContent

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

pbdom_object_ref 追加する PBDOM_OBJECT

PowerBuilder エクステンシ ョ ン リファレンス 57

Page 74: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

Clone機能 PBDOM_ATTRIBUTE オブジェク トのク ローンを作成します。

構文 pbdom_attribute_name.Clone(boolean bDeep)

戻り値 PBDOM_OBJECT。 PBDOM_OBJECT と して返された現行の PBDOM_ATTRIBUTE のクローンです。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_ATTRIBUTE オブジェク トの内部実装が null の場合。この例外が送出されるのはまれですが、 重大なメモ リの破損が発生した場合に送出されるこ とがある

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 現行の PBDOM_ATTRIBUTE にユーザ定義名がないか、 またはユーザ定義名が付いていない場合

例 次の例では、 文字列 <abc My_Attr="An Attribute"/> から PBDOM_DOCUMENT を作成し、 ルート要素から属性を取得して、 その属性から簡易クローンと 詳細クローンを作成します。 簡易クローンの場合は、 空の文字列がメ ッ セージ ボッ ク スに返されます。 詳細ク ローンの場合は、 文字列 An Attribute が返されます。

PBDOM_BUILDER pbdom_buildrPBDOM_DOCUMENT pbdom_docPBDOM_ATTRIBUTE pbdom_attrPBDOM_ATTRIBUTE pbdom_attr_clone_deepPBDOM_ATTRIBUTE pbdom_attr_clone_shallowstring strXML = "<abc My_Attr=~"An Attribute~"/>"

TRYpbdom_buildr = Create PBDOM_BUILDERpbdom_doc = pbdom_buildr.BuildFromString(strXML)

pbdom_attr = pbdom_doc.GetRootElement(). &GetAttribute("My_Attr")

pbdom_attr_clone_shallow = pbdom_attr.Clone(false)

MessageBox ("簡易クローンの属性テキスト ", &pbdom_attr_clone_shallow.GetText())

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

bDeep 詳細クローンを返すか、 簡易クローンを返すかを指定する Boolean 型の値。 指定する値は、 詳細クローンの場合は true、 簡易クローンの場合は false

58 PowerBuilder

Page 75: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

pbdom_attr_clone_deep = pbdom_attr.Clone(true)

MessageBox ("詳細クローンの属性テキスト ", &pbdom_attr_clone_deep.GetText())

CATCH (PBDOM_EXCEPTION pbdom_except)MessageBox ("PBDOM_EXCEPTION", &

pbdom_except.GetMessage())END TRY

解説 Clone メ ソ ッ ドは、現行の PBDOM_ATTRIBUTE の複製を作成して返します。

簡易ク ローンを指定した場合、 このメ ソ ッ ドは、 名前空間の情報の値を含んだ、 元の PBDOM_ATTRIBUTE のク ローンを作成し ます。 子PBDOM_TEXT と PBDOM_ENTITYREFERENCE オブジェ ク ト のサブツ リーのクローンは作成されません。

詳細クローンを指定した場合、 このメ ソ ッ ドは、 PBDOM_ATTRIBUTEとその下位サブツ リーすべてのク ローンを作成します。 このサブツリーは、 PBDOM_ATTRIBUTE の正当な子である、 PBDOM_TEXT とPBDOM_ENTITYREFERENCE オブジェ ク ト の組み合わせで構成されています。

PBDOM_ATTRIBUTE のクローンには親はあ り ません。ただし、ク ローンは元の PBDOM_ATTRIBUTE と同じ PBDOM_DOCUMENT に格納され、 元の PBDOM_ATTRIBUTE がスタンドアロンのと きは、 ク ローンもスタンドアロンです。

Detach機能 PBDOM_ATTRIBUTE を、 そのオーナー PBDOM_OBJECT である

PBDOM_ELEMENT から切り離します。

構文 pbdom_attribute_name.Detach()

戻り値 PBDOM_OBJECT。 オーナー オブジェク トから切り離された PBDOM_ATTRIBUTE オブジェク トです。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_ATTRIBUTE オブジェク トの内部実装が null の場合。この例外が送出されるのはまれですが、 重大なメモ リの破損が発生した場合に送出されるこ とがある

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

PowerBuilder エクステンシ ョ ン リファレンス 59

Page 76: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

例 Detach メ ソ ッ ドは、 次の例のよ うに XML 文書を操作する と きに使用できます。

PBDOM_BUILDER pbdombuilder_newPBDOM_DOCUMENT pbdom_docPBDOM_ATTRIBUTE pbdom_attrPBDOM_ELEMENT pbdom_elemstring strXML = "<abc My_Attr=~"My Attribute Value~"><data>Data</data></abc>"

TRYpbdombuilder_new = Create PBDOM_Builderpbdom_doc = pbdombuilder_new.BuildFromString (strXML)

pbdom_attr = pbdom_doc.GetRootElement(). &GetAttribute("My_Attr")

pbdom_attr.Detach()

pbdom_elem = pbdom_doc.GetRootElement(). &GetChildElement("data")

pbdom_elem.SetAttribute (pbdom_attr)

Destroy pbdombuilder_newDestroy pbdom_doc

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)END TRY

こ こでは、 PBDOM_Builder BuildFromString メ ソ ッ ドを使って、 XML 文字列から次の PBDOM_DOCUMENT オブジェク ト pbdom_doc を作成します。

<abc My_Attr="My Attribute Value"><data>Data </data>

</abc>

GetAttribute メ ソ ッ ドを使って、pbdom_doc のルート要素から属性を取得します。 この属性値を PBDOM_ATTRIBUTE オブジェ ク ト pbdom_attrに代入します。 pbdom_attr オブジェ ク ト をその親要素から切り離し、GetChildElement メ ソ ッ ドを使って data 要素を pbdom_doc から取得します。次に、data 要素を PBDOM_ELEMENT オブジェク ト pbdom_elem に代入します。 pbdom_attr に代入された属性を pbdom_elem に代入して、次のよ うに修正された pbdom_doc を生成しています。

<abc><data My_Attr="My Attribute Value">Data</data>

</abc>

60 PowerBuilder

Page 77: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

解説 PBDOM_ATTRIBUTE オブジェク トにオーナー PBDOM_ELEMENT がない場合、 Detach メ ソ ッ ドは何も実行しません。

Equals機能 指定された PBDOM_OBJECT と、 メ ソ ッ ドが呼び出された

PBDOM_ATTRIBUTE が同じであるかど うかを調べます。

構文 pbdom_attribute_name.Equals(pbdom_object pbdom_object_ref)

戻り値 Boolean 型。現行の PBDOM_ATTRIBUTE と PBDOM_OBJECT の入力内容が同じである場合は true を返し、それ以外の場合は false を返します。

Throws EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 現行の PBDOM_ATTRIBUTE にユーザ定義名がないか、 またはユーザ定義名が付いていない場合

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― PBDOM_OBJECT の入力内容が PBDOM_OBJECT から派生したオブジェク トへの参照でない場合

例 例 1 次の例では、 Equals メ ソ ッ ドを使って、 参照されている PBDOM_OBJECT と、 ク ローンと して作成されたオブジェク トが同じであるかど うかを調べます。

pbdom_attr = Create PBDOM_Attributepbdom_attr.SetName("My_Attr")pbdom_attr_clone = pbdom_attr.Clone(true)

if (pbdom_attr_clone.Equals(pbdom_attr)) thenMessageBox ("Equals", "Yes")

elseMessageBox ("Equals", "No")

end if

SetName メ ソ ッ ドで新規作成した PBDOM_ATTRIBUTE に名前を付けてから、 Clone メ ソ ッ ド を使って、 この PBDOM_ATTRIBUTE のク ローンを作成します。 Equals メ ソ ッ ドは、 ク ローンと して作成された PBDOM_ATTRIBUTE pbdom_attr_clone と、 参照されている PBDOM_OBJECT pbdom_attr が同じであるかど うかを調べます。Equals メ ソ ッ ドから返された結果をメ ッセージ ボッ クスに表示します。

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

pbdom_object_ref 比較対象の PBDOM_OBJECT

PowerBuilder エクステンシ ョ ン リファレンス 61

Page 78: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

この例では、 ク ローンと して作成されたオブジェク トは元のオブジェク ト と同じものではないため、 Equals メ ソ ッ ドは false を返します。

例 2 次の例では、 Equals メ ソ ッ ドを使って、 ク ローンと して作成された 2 つのオブジェク トが同じであるかど うかを調べます。

pbdom_attr = Create PBDOM_Attributepbdom_attr.SetName("My_Attr")pbdom_attr_clone = pbdom_attr.Clone(true)pbdom_attr_2 = pbdom_attr_clone

if (pbdom_attr_clone.Equals(pbdom_attr_2)) thenMessageBox ("Equals", "Yes")

elseMessageBox ("Equals", "No")

end if

新規作成された PBDOM_ATTRIBUTE のク ローンを作成し、 このクローンへの参照を pbdom_attr_2 に代入します。 Equals メ ソ ッ ドで、 クローンである PBDOM_ATTRIBUTE pbdom_attr_clone と、 このクローンへの参照である pbdom_attr_2 が同じであるかど うかを調べます。Equalsメ ソ ッ ドから返された結果をメ ッセージ ボッ クスに表示します。

この例では、 Equals メ ソ ッ ドは true を返します。

解説 PBDOM_ATTRIBUTE のクローンは、PBDOM_ATTRIBUTE そのものと同じ とみなされません。

GetBooleanValue機能 PBDOM_ATTRIBUTE オブジェ ク ト の値を Boolean 型の値にして取得

します。

構文 pbdom_attribute_name.GetBooleanValue()

戻り値 Boolean 型

次の表に、Boolean 型の値と して受け取る PBDOM_ATTRIBUTE 文字列値と、 GetBooleanValue メ ソ ッ ドから返される戻り値を示します。

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

PBDOM_ATTRIBUTE 文字列値 GetBooleanValue からの戻り値

1 true0 false

62 PowerBuilder

Page 79: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

文字列は大文字と小文字を区別せずに扱われます。 何も変換が行われない場合には、 GetBooleanValue メ ソ ッ ドは例外を送出します。

Throws EXCEPTION_DATA_CONVERSION ― データ変換に失敗した場合

例 GetBooleanValue は、 次のよ うに PBDOM_ATTRIBUTE オブジェク ト を評価する と きに使用できます。

PBDOM_BUILDER pbombuilder_newPBDOM_DOCUMENT pbdom_docPBDOM_ATTRIBUTE pbdom_attrstring strXML = "<abc My_Boolean_Attribute =~"on~"><data An_Attribute=~"Some Text~">Data</data></abc>"

TRYpbdombuilder_new = Create PBDOM_Builderpbdom_doc = pbdombuilder_new.BuildFromString (strXML)

pbdom_attr = pbdom_doc.GetRootElement(). &GetAttribute("My_Boolean_Attribute")

MessageBox ("Boolean Value", &string(pbdom_attr.GetBooleanValue()))

Destroy pbdombuilder_newDestroy pbdom_doc

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)END TRY

BuildFromString メ ソ ッ ド で、XML 文字列を使って PBDOM_DOCUMENT オブジェク ト pbdom_doc を作成します。 pbdom_doc のルート 要素の属性値を、 PBDOM_ATTRIBUTE オブジェク ト pbdom_attr に代入します。属性値on を GetBooleanValue メ ソ ッ ド で評価します。 GetBooleanValue メ ソッ ド の戻り 値をメ ッセージ ボッ クスに表示します。

関連項目 SetBooleanValue

TRUE trueFALSE falseON trueOFF falseYES trueNO false

PBDOM_ATTRIBUTE 文字列値 GetBooleanValue からの戻り値

PowerBuilder エクステンシ ョ ン リファレンス 63

Page 80: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

GetContent機能 PBDOM_ATTRIBUTE の子である PBDOM_OBJECT オブジェク ト の配列

を返します。 PBDOM_ATTRIBUTE の子になれるのは、 PBDOM_TEXT オブジェク ト または PBDOM_ENTITYREFERENCE オブジェク ト だけです。

構文 pbdom_attribute_name.GetContent(ref pbdom_object pbdom_object_array[ ])

戻り値 Boolean 型。 このメ ソ ッ ドは常に true を返します。

関連項目 AddContentInsertContentRemoveContentSetContent

GetDateValue機能 PBDOM_ATTRIBUTE オブジェク トの値を Date 型で返します。

構文 pbdom_attribute_name.GetDateValue(string strDateFormat)

strDateFormat パラ メータの値には、 区切り記号と してスラ ッシュやコロンを使用できます。 次の表に、 strDateFormat で特別な意味を持つ文字を示します。

戻り値 Date 型

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

pbdom_object_array PBDOM_OBJECT を受け取る、 PBDOM_OBJECT の配列の参照名

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

strDateFormat 戻り値の日付書式。たとえば MM:DD:YYYY のよ うに指定

文字 説明 例

D 先頭に 0 を付けない日付 5DD 必要に応じて先頭に 0 を付ける日付 05M 先頭に 0 を付けない月 5MM 必要に応じて先頭に 0 を付ける月 05YY 西暦の下 2 桁 05YYYY 西暦 2005

64 PowerBuilder

Page 81: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

Throws EXCEPTION_DATA_CONVERSION ― データ変換に失敗した場合

関連項目 SetDateValue

GetDateTimeValue機能 PBDOM_ATTRIBUTE オブジェク トの値を DateTime 型で返します。

構文 pbdom_attribute_name.GetDateTimeValue(stringstrDateFormat, string strTimeFormat)

strDateFormat パラ メータの値には、 区切り記号と してスラ ッシュやコロンを使用できます。 次の表に、 strDateFormat で特別な意味を持つ文字を示します。

strTimeFormat パラ メータの値には、 区切り記号と してスラ ッシュやコロンを使用できます。 次の表に、 strTimeFormat で特別な意味を持つ文字を示します。

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

strDateFormat 戻り値の日付書式。たとえば MM:DD:YYYY のよ うに指定

strTimeFormat 戻り値の時刻書式。たとえば HH:MM:SS のよ うに指定

文字 説明 例

D 先頭に 0 を付けない日付 5DD 必要に応じて先頭に 0 を付ける日付 05M 先頭に 0 を付けない月 5MM 必要に応じて先頭に 0 を付ける月 05YY 西暦の下 2 桁 05YYYY 西暦 2005

文字 説明 例

H 先頭に 0 を付けない時 5HH 必要に応じて先頭に 0 を付ける時 05M 先頭に 0 を付けない分 5MM 必要に応じて先頭に 0 を付ける分 05S 先頭に 0 を付けない秒 5SS 必要に応じて先頭に 0 を付ける秒 55

PowerBuilder エクステンシ ョ ン リファレンス 65

Page 82: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

戻り値 DateTime 型Throws EXCEPTION_DATA_CONVERSION ― データ変換に失敗した場合

関連項目 SetDateTimeValue

GetDoubleValue機能 PBDOM_ATTRIBUTE オブジェク トの値を Double 型で返します。

構文 pbdom_attribute_name.GetDoubleValue()

戻り値 Double 型

Throws EXCEPTION_DATA_CONVERSION ― データ変換に失敗した場合

解説 データ変換に失敗する と、 exception_data_conversion を送出します。

関連項目 SetDoubleValue

GetIntValue機能 PBDOM_ATTRIBUTE オブジェク トの値を Int 型で返します。

構文 pbdom_attribute_name.GetIntValue()

戻り値 Int 型Throws EXCEPTION_DATA_CONVERSION ― データ変換に失敗した場合

関連項目 SetIntValue

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

66 PowerBuilder

Page 83: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

GetLongValue機能 PBDOM_ATTRIBUTE オブジェク トの値を Long 型で返します。

構文 pbdom_attribute_name.GetLongValue()

戻り値 Long 型

Throws EXCEPTION_DATA_CONVERSION ― データ変換に失敗した場合

関連項目 SetLongValue

GetName機能 PBDOM_ATTRIBUTE オブジェク トのローカル名を取得します。

構文 pbdom_attribute_name.GetName()

戻り値 String 型

Throws EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 現行の PBDOM_ATTRIBUTE にユーザ定義名がないか、 またはユーザ定義名が付いていない場合

例 例 1 GetName メ ソ ッ ド を次の要素の属性名で呼び出す と、 文字列ATTRIBUTE_1 が返されます。

<abc ATTRIBUTE_1="My Attribute">

例 2 GetName メ ソ ッ ドを次の要素の eMusic:Type 属性名で呼び出すと、文字列 Type が返されます。

<eMusic:CD xmlns:eMusic="http://www.eMusic_Records.com" eMusic:Type="Jazz"/>

名前空間接頭辞は、 返される文字列には含まれません。

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

PowerBuilder エクステンシ ョ ン リファレンス 67

Page 84: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

解説 XML 属性が [namespace_prefix]:[attribute_name] とい う フォームで表示されている と きには、 ローカル属性名は attribute_name です。 XML 属性に名前空間の接頭辞がない場合は、 ローカル名は属性名のみにな ります。

PBDOM_ATTRIBUTE オブジェ ク ト の名前空間の接頭辞を取得するには、 GetNamespacePrefix メ ソ ッ ド を使用します。 PBDOM_ATTRIBUTEオブジェク トの完全な修飾名を取得するには、GetQualifiedName メ ソ ッドを使用します。

関連項目 GetNamespacePrefixGetNamespaceUriGetQualifiedNameSetNameSetNamespace

GetNamespacePrefix機能 PBDOM_ATTRIBUTE オブジェ ク ト の名前空間の接頭辞を取得し ま

す。 PBDOM_ATTRIBUTE に名前空間がない場合、 GetNamespacePrefixメ ソ ッ ドは空の文字列を返します。

構文 pbdom_attribute_name.GetNamespacePrefix()

戻り値 String 型

[namespacePrefix]:[attributeName] と い う 形式の PBDOM_ATTRIBUTEオブジェク トでは、 名前空間の接頭辞は [namespacePrefix] です。

関連項目 GetNamespaceUriGetQualifiedNameSetNameSetNamespace

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

68 PowerBuilder

Page 85: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

GetNamespaceUri機能 PBDOM_ATTRIBUTE オブジェ ク ト の名前空間の URI を取得します。

PBDOM_ATTRIBUTE に名前空間がない場合、 GetNamespaceUri メ ソ ッドは空の文字列を返します。

構文 pbdom_attribute_name.GetNamespaceUri()

戻り値 String 型

関連項目 GetNamespacePrefixGetQualifiedNameSetNameSetNamespace

GetObjectClass機能 現行の PBDOM_OBJECT のク ラスを示す Long 型の整数値コードを返

します。

構文 pbdom_object_name.GetObjectClass()

戻り値 Long 型。 現行の PBDOM_OBJECT のク ラ スを示す Long 型の整数値コードを返します。pbdom_object_name が PBDOM_ATTRIBUTE のと きは、 戻り値は 5 です。

例 次の例では、 pbdom_obj は PBDOM_OBJECT と して宣言されながら、PBDOM_ATTRIBUTE と してインスタンス化される とい う多相性を示します。PBDOM_ATTRIBUTE に対して GetObjectClass メ ソ ッ ドを呼び出した結果を、 メ ッセージ ボッ クスに表示します。 この例では、 結果は 5 とな り、pbdom_obj が PBDOM_ATTRIBUTE オブジェク トであることを示します。

PBDOM_OBJECT pbdom_obj

pbdom_obj = Create PBDOM_ATTRIBUTE

MessageBox (" クラス ", &string(pbdom_obj.GetObjectClass()))

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

引数 説明

pbdom_object_name PBDOM_OBJECT の名前

PowerBuilder エクステンシ ョ ン リファレンス 69

Page 86: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

解説 このメ ソ ッ ドを使用する と、 診断を目的と して、 実行時の PBDOM_OBJECT の種類を動的に調べるこ とができます。

関連項目 GetObjectClassString

GetObjectClassString機能 PBDOM_OBJECT のク ラスを文字列で返します。

構文 pbdom_object_name.GetObjectClassString()

戻り値 String 型。 現行の PBDOM_OBJECT のク ラスを示す文字列を返します。pbdom_object_name が PBDOM_ATTRIBUTE のと きは、返される文字列は 「pbdom_attribute」 です。

例 GetObjectClass メ ソ ッ ドは、 メ ソ ッ ドが呼び出されたオブジェク トのクラス固有の文字列を返します。

次の例では、 pbdom_obj は PBDOM_OBJECT と して宣言されながら、PBDOM_ATTRIBUTE と してインスタンス化される とい う多相性を示します。PBDOM_ATTRIBUTE に対して GetObjectClassString メ ソ ッ ドを呼び出した結果を、 メ ッセージ ボッ クスに表示します。 この例では、結果は pbdom_attribute とな り、 pbdom_obj が PBDOM_ATTRIBUTE オブジェク トであるこ とを示します。

PBDOM_OBJECT pbdom_obj

pbdom_obj = Create PBDOM_ATTRIBUTE

MessageBox (" クラス ", pbdom_obj.GetObjectClassString())

解説 このメ ソ ッ ドを使用する と、 診断を目的と して、 実行時の PBDOM_OBJECT の実際の種類を動的に調べるこ とができます。

関連項目 GetObjectClass

引数 説明

pbdom_object_name PBDOM_OBJECT の名前

70 PowerBuilder

Page 87: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

GetOwnerDocumentObject機能 PBDOM_ATTRIBUTE を所有している PBDOM_DOCUMENT オブジェ

ク ト を返します。

構文 pbdom_attribute_name.GetOwnerDocumentObject()

戻り値 PBDOM_DOCUMENT 。 GetOwnerDocumentObject メ ソ ッ ド から 呼び出された PBDOM_ATTRIBUTE オブジェク ト を所有する PBDOM_DOCUMENT です。

戻 り 値が null の と きは、 PBDOM_ATTRIBUTE オブジェ ク ト がどのPBDOM_DOCUMENT にも所有されていないこ とを示します。

例 GetOwnerDocumentObject メ ソ ッ ドを使用する と、 PBDOM_ATTRIBUTEオブジェク ト を所有する PBDOM_DOCUMENT オブジェク ト を識別できます。

こ こでは、 BuildFromString メ ソ ッ ド を使って、 XML 文字列から次のPBDOM_DOCUMENT オブジェク ト pbdom_doc を作成します。

<abc My_Attr="My Attribute Value"><data>Data </data>

</abc>

GetAttribute メ ソ ッ ドを使って、pbdom_doc のルート要素から属性を取得します。 この属性値を PBDOM_ATTRIBUTE オブジェ ク ト pbdom_attrに代入します。 GetOwnerDocumentObject メ ソ ッ ドを使って、 pbdom_attrを所有している pbdom_doc を取得します。 GetOwnerDocumentObject メソ ッ ドの結果を PBDOM_DOCUMENT オブジェク ト pbdom_doc_2 に代入します。 次に、 Equals メ ソ ッ ド を使って pbdom_doc_2 を pbdom_docと比較し、 その結果をメ ッセージ ボッ クスに表示します。

PBDOM_Builder pbdombuilder_newpbdom_document pbdom_docpbdom_document pbdom_doc_2PBDOM_ATTRIBUTE pbdom_attrstring strXML = "<abc My_Attr=~"My Attribute Value~"><data>Data </data></abc>"

TRYpbdombuilder_new = Create PBDOM_Builderpbdom_doc = pbdombuilder_new.BuildFromString (strXML)

pbdom_attr = pbdom_doc.GetRootElement(). &

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

PowerBuilder エクステンシ ョ ン リファレンス 71

Page 88: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

GetAttribute("My_Attr")pbdom_doc_2 = pbdom_attr.GetOwnerDocumentObject()

if (pbdom_doc.Equals(pbdom_doc_2)) thenMessageBox ("Equals", "pbdom_doc equals " &

+ "pbdom_attr.GetOwnerDocumentObject()")end if

Destroy pbdombuilder_new

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)END TRY

関連項目 GetOwnerElementObjectSetOwnerElementObject

GetOwnerElementObject機能 現行の PBDOM_ATTRIBUTE のオーナー PBDOM_ELEMENT を返しま

す。 オーナー要素がない場合は、 null を返します。

構文 pbdom_attribute_name.GetOwnerElementObject( )

戻り値 PBDOM_ELEMENT を返します。現行の PBDOM_ATTRIBUTE のオーナーPBDOM_ELEMENT を返します。この PBDOM_ATTRIBUTE にオーナー要素がない場合は、 null を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_ATTRIBUTE オブジェク トの内部実装が null の場合。この例外が送出されるのはまれですが、 重大なメモ リの破損が発生した場合に送出されるこ とがある

例 次の例では、 abc ルート要素に 1 つの属性 My_Attr を含む文字列 strXMLから、 PBDOM_DOCUMENT を作成します。 コードでは、 この属性を取得し、 この属性に対して GetOwnerElementObject を呼び出してオーナー要素を取得してから、 GetName を呼び出して文字列 abc を返します。 そして、 My_Attr を子要素 Data の属性と して設定します。

PBDOM_BUILDER pbdombuilder_newPBDOM_DOCUMENT pbdom_docPBDOM_ATTRIBUTE pbdom_attrPBDOM_ELEMENT pbdom_elem

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

72 PowerBuilder

Page 89: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

string strXML = "<abc My_Attr=~"My Attribute Value~"><data>Data</data></abc>"

TRYpbdombuilder_new = Create PBDOM_Builderpbdom_doc = pbdombuilder_new.BuildFromString (strXML)

// 属性を取得します。pbdom_attr = pbdom_doc.GetRootElement(). &

GetAttribute("My_Attr")

MessageBox ("pbdom_attr オーナー要素名 ", &pbdom_attr.GetOwnerElementObject().GetName())

pbdom_attr.Detach()

pbdom_elem = pbdom_doc.GetRootElement(). &GetChildElement("data")

pbdom_elem.SetAttribute (pbdom_attr)

MessageBox ("pbdom_attr オーナー要素名 ", &pbdom_attr.GetOwnerElementObject().GetName())

Destroy pbdombuilder_newDestroy pbdom_doc

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)END TRY

関連項目 SetOwnerElementObject

GetQualifiedName機能 PBDOM_ATTRIBUTE の修飾名を取得します。PBDOM_ATTRIBUTE に

名前空間がない場合は、GetQualifiedName メ ソ ッ ドはローカル名を返します。

構文 pbdom_attribute_name.GetQualifiedName()

戻り値 String 型

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

PowerBuilder エクステンシ ョ ン リファレンス 73

Page 90: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

解説 [namespacePrefix]:[attributeName] と い う 形式の PBDOM_ATTRIBUTEオブジェ ク ト では、 PBDOM_ATTRIBUTE の修飾名は、 完全な名前、[namespacePrefix]、 および [attributeName] からな り ます。

PBDOM_ATTRIBUTE のローカル名を取得するには、GetName メ ソ ッ ドを使用します。

PBDOM_ATTRIBUTE の名前空間の接頭辞を取得するには、GetNamespacePrefix メ ソ ッ ドを使用します。

関連項目 GetNameGetNamespacePrefixGetNamespaceUriSetNameSetNamespace

GetRealValue機能 PBDOM_ATTRIBUTE オブジェク トの値を Real 型で返します。

構文 pbdom_attribute_name.GetRealValue()

戻り値 Real 型Throws EXCEPTION_DATA_CONVERSION ― データ変換に失敗した場合

解説 GetRealValue は、 JDOM の getFloatValue メ ソ ッ ドに相当します。

関連項目 SetRealValue

GetText機能 PBDOM_ATTRIBUTE オブジェク トのテキス ト値を返します。

構文 pbdom_attribute_name.GetText()

戻り値 String 型

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

74 PowerBuilder

Page 91: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

Throws EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 現行の PBDOM_ATTRIBUTE にユーザ定義名がないか、 またはユーザ定義名が付いていない場合

例 例 1 次の要素の属性に対して、 GetText メ ソ ッ ドを呼び出します。

<abc ATTRIBUTE_1="My Attribute">

GetText メ ソ ッ ドは、 次の文字列を返します。

My Attribute

例 2 こ の例では、 テキスト 値 text part を持つルート 要素に対して、my_attr とい う属性を設定します。 ent_ref とい う名前を持つ PBDOM_ENTITYREFERENCE と、text part again という テキス ト値を持つ PBDOM_TEXT を、 my_attr の内容の一部と して追加します。my_attr に対して GetText を呼び出すと 、 このメ ソ ッ ド は次のテキスト を返します。

"text part &ent_ref; text part again."

エンティティ参照 &ent_ref; は展開されません。解析対象となる入力された XML 文書にエンティティ参照が含まれている場合は、 XML 文書がメモ リの DOM ツ リーに変換される前に、 そのエンティティの参照が展開されます。

PBDOM_DOCUMENT pbdom_docPBDOM_ATTRIBUTE pbdom_attrPBDOM_ENTITYREFERENCE pbdom_entrefPBDOM_TEXT pbdom_txt

trypbdom_doc = Create PBDOM_DOCUMENTpbdom_entref = Create PBDOM_ENTITYREFERENCEpbdom_txt = Create PBDOM_TEXT

// 文書オブジェク ト を新規作成します。pbdom_doc.NewDocument ("root")

// テキスト 「pbdom_txt」 を設定します。pbdom_txt.SetText (" text part again.")

// 属性 「my_attr」 をルート要素に追加します。pbdom_doc.GetRootElement().SetAttribute("my_attr", &

"text part ")

// PBDOM_ENTITYREFERENCE の名前を設定します。pbdom_entref.SetName ("ent_ref")

PowerBuilder エクステンシ ョ ン リファレンス 75

Page 92: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

// エンテ ィテ ィ参照をルート要素の// 「my_attr」 属性に追加します。pbdom_doc.GetRootElement(). &

GetAttribute("my_attr").AddContent(pbdom_entref)

// 新しいテキスト ノードを 「my_attr」 属性に追加します。pbdom_doc.GetRootElement(). &

GetAttribute("my_attr").AddContent (pbdom_txt)

// 「my_attr」 のテキスト内容をチェ ックします。

if pbdom_doc.GetRootElement(). &GetAttribute("my_attr").GetText() = &"text part &ent_ref; text part again." then

MessageBox ("正しい ", &"my_attr 上の GetText() は正しいです。 ")

else

MessageBox ("不正 ", &"my_attr 上の GetText() は不正です。 ")

end if

catch (pbdom_exception pbdom_e)MessageBox ("PBDOM_EXCEPTION", pbdom_e.GetMessage())

end try

解説 こ のメ ソ ッ ド は、引用符で囲まれたすべてのテキスト を含め、現行の PBDOM_ATTRIBUTE の実際のテキス ト値を返します。PBDOM_ATTRIBUTE 内に PBDOM_ENTITYREFERENCE オブジェク トが含まれている場合は、 PBDOM_ENTITYREFERENCE オブジェク ト の名前も、 先頭にアンパサンド (&)、 末尾にセミ コロン (;) を付けて返します。

関連項目 GetTextNormalizeGetTextTrimSetText

76 PowerBuilder

Page 93: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

GetTextNormalize機能 PBDOM_ATTRIBUTE オブジェ ク ト内に含まれるテキス ト データを、

テキス ト 前後の空白文字を削除し、 テキス ト内の空白文字を半角スペース 1 つに置き換えて返します。

構文 pbdom_attribute_name.GetTextNormalize()

戻り値 String 型

例 例 1 GetTextNormalize メ ソ ッ ドを、 次の要素の PBDOM_ATTRIBUTE に対して呼び出します。

<abc ATTRIBUTE_1=" My Attribute ">

GetTextNormalize メ ソ ッ ドは、 次の文字列を返します。

My Attribute

例 2 次の例では、 My_Attr 属性の 「My」 と 「Attribute」 の単語間にタブ文字が含まれ、 &#9; エンティティ参照で指定された次の DOM ツ リーに基づいて、 PBDOM_DOCUMENT を作成します。 これには、 空白文字もいくつか含まれています。

<abc My_Attr="My&#9;Attribute Value "><data>Data </data>

</abc>

GetAttribute を呼び出して、 pbdom_attr に My_Attr を格納します。 pbdom_attrに対して GetText を呼び出すと 、 最初のタブ文字を含む My_Attr の文字列全体が返されます。 GetTextNormalize を呼び出すと 、 前後の空白文字をすべて削除し、 タブ文字を含めた単語間の空白文字を半角スペース 1 つに置き換えた文字列が返されます。

PBDOM_BUILDER pbdombuilder_newPBDOM_DOCUMENT pbdom_docPBDOM_ATTRIBUTE pbdom_attrstring strXML = "<abc My_Attr=~"My&#9;Attribute Value ~"><data>Data</data></abc>"

TRYpbdombuilder_new = Create PBDOM_Builderpbdom_doc = pbdombuilder_new.BuildFromString (strXML)

pbdom_attr = pbdom_doc.GetRootElement(). &GetAttribute("My_Attr")

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

PowerBuilder エクステンシ ョ ン リファレンス 77

Page 94: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

MessageBox ("pbdom_attr のテキストは ", "[" &+ pbdom_attr.GetText() + "] です。 ")

MessageBox ("pbdom_attr のテキスト を正規化すると ", "[" &+ pbdom_attr.GetTextNormalize() + "] です。 ")

Destroy pbdombuilder_newDestroy pbdom_doc

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)END TRY

解説 返されたテキス ト データから、 前後の空白文字を削除し、 テキス ト内の空白文字を半角スペース 1 つに正規化します。 GetTextNormalize メソ ッ ドは、 PBDOM_ATTRIBUTE にテキス ト値がない場合や、 テキスト値に空白文字しか含まれていない場合は、 空の文字列を返します。

現行の PBDOM_ATTRIBUTE に PBDOM_ENTITYREFERENCE オブジェ ク ト が含まれている場合は、 PBDOM_ENTITYREFERENCE オブジェク トの名前を正規化された文字列に含めて返します。

JDOM では、 Attribute ク ラスの getTextNormalize メ ソ ッ ドは定義されていません。

関連項目 GetTextGetTextTrimSetText

GetTextTrim機能 PBDOM_ATTRIBUTE オブジェク ト内に含まれているテキス ト データ

を、 前後の空白を削除して返します。

構文 pbdom_attribute_name.GetTextTrim()

戻り値 String 型

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

78 PowerBuilder

Page 95: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

例 例 1 次の要素の PBDOM_ATTRIBUTE に対して GetTextTrim メ ソ ッ ドを呼び出します。

<abc ATTRIBUTE_1=" My Attribute ">

GetTextNormalize メ ソ ッ ドは、 次の文字列を返します。

My Attribute

文字列の前後の空白文字は削除されますが、 文字列内の空白文字はそのままです。

例 2 次の例では、以下の XML ツ リーに基づいて PBDOM_DOCUMENTを作成します。

<abc My_Attr="&#32;&#32;&#32;My&#9;Attribute Value&#32;&#32;&#32;">

<data>Data</data></abc>

My_Attr 属性には、 タブ文字のエンティティ参照 (&#9;) と、 いくつかの空白文字のエンティティ参照 (&#32;) が含まれています。次のコードで表示される メ ッセージ ボッ クスを見る と、GetText は属性の完全なテキス ト文字列を返し、 GetTextTrim は前後の空白文字を削除した文字列を返すこ とがわかり ます。 単語間のタブ文字は削除されません。

PBDOM_BUILDER pbdombuilder_newPBDOM_DOCUMENT pbdom_docPBDOM_ATTRIBUTE pbdom_attrstring strXML

TRYstrXML = "<abc

My_Attr=~"&#32;&#32;&#32;My&#9;Attribute Value&#32;&#32;&#32;~"><data>Data</data></abc>"

pbdombuilder_new = Create PBDOM_Builderpbdom_doc = pbdombuilder_new.BuildFromString (strXML)

pbdom_attr = pbdom_doc.GetRootElement(). &GetAttribute("My_Attr")

MessageBox ("pbdom_attr のテキストは ", "[" &+ "pbdom_attr.GetText() + "]")

MessageBox ("pbdom_attr のテキストを正規化すると ", &"[" + pbdom_attr.GetText() + "] です。 ")

Destroy pbdombuilder_newDestroy pbdom_doc

PowerBuilder エクステンシ ョ ン リファレンス 79

Page 96: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)END TRY

解説 返されるテキスト データから前後の空白文字を削除します。 GetTextTrimメ ソ ッ ド は、 PBDOM_ATTRIBUTE にテキスト 値がない場合や、 テキスト 値に空白文字しか含まれていない場合は、 空の文字列を返します。

現行の PBDOM_ATTRIBUTE に PBDOM_ENTITYREFERENCE オブジェ ク ト が含まれている場合は、 PBDOM_ENTITYREFERENCE オブジェク トの名前の前後の空白を詰めた上で文字列に含めて返します。

関連項目 GetTextGetTextNormalizeSetText

GetTimeValue機能 PBDOM_ATTRIBUTE オブジェク トの値を Time 型で返します。

構文 pbdom_attribute_name.GetTimeValue(string strTimeFormat)

strTimeFormat パラ メータの値には、 区切り記号と してスラ ッシュやコロンを使用できます。 次の表に、 strTimeFormat で特別な意味を持つ文字を示します。

戻り値 Time 型Throws EXCEPTION_DATA_CONVERSION ― データ変換に失敗した場合

関連項目 SetTimeValue

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

strTimeFormat 戻り値の時刻書式。たとえば HH:MM:SS のよ うに指定

文字 説明 例

H 先頭に 0 を付けない時 5HH 必要に応じて先頭に 0 を付ける時 05M 先頭に 0 を付けない分 5MM 必要に応じて先頭に 0 を付ける分 05S 先頭に 0 を付けない秒 5SS 必要に応じて先頭に 0 を付ける秒 55

80 PowerBuilder

Page 97: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

GetUintValue機能 PBDOM_ATTRIBUTE オブジェク トの値を Uint 型で返します。

構文 pbdom_attribute_name.GetUintValue()

戻り値 Uint 型Throws EXCEPTION_DATA_CONVERSION ― データ変換に失敗した場合

関連項目 SetUintValue

GetUlongValue機能 PBDOM_ATTRIBUTE オブジェク トの値を Ulong 型で返します。

構文 pbdom_attribute_name.GetUlongValue()

戻り値 Ulong 型

Throws EXCEPTION_DATA_CONVERSION ― データ変換に失敗した場合

関連項目 SetUlongValue

HasChildren機能 現行の PBDOM_ATTRIBUTE オブジェク トに、 子 PBDOM_OBJECT が

含まれているかど うかを調べます。

構文 pbdom_attribute_name.HasChildren()

戻り値 Boolean 型。現行の PBDOM_ATTRIBUTE に子オブジェク トが含まれている場合は true を返し、 それ以外の場合は false を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トが、 派生した PBDOM_OBJECTク ラス オブジェク トに関連付けられていない場合

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

PowerBuilder エクステンシ ョ ン リファレンス 81

Page 98: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

例 次の例では、 文字列から PBDOM_DOCUMENT を作成します。 この文字列の XML 文書には、 すでに root とい う名前のルート要素が含まれており、 このルート要素には、 空の文字列の属性 attr が含まれています。 次に、 attr を PBDOM_ATTRIBUTE オブジェ ク ト と して表して、HasChildren メ ソ ッ ド を呼び出します。 PBDOM_ATTRIBUTE には少なく と も 1 つの子オブジェク トが含まれているので、このメ ソ ッ ドは trueを返します。 GetContent を呼び出すと、 attr に空の文字列を表す子オブジェク ト PBDOM_TEXT が 1 つ含まれているこ とがメ ッセージ ボッ クスに表示されます。

PBDOM_BUILDER pbdom_buildrPBDOM_DOCUMENT pbdom_docPBDOM_ATTRIBUTE pbdom_attrstring strXML = "<root attr=~"~"></root>"

trypbdom_buildr = Create PBDOM_BUILDERpbdom_doc = pbdom_buildr.BuildFromString(strXML)

pbdom_attr = pbdom_doc.GetRootElement(). &GetAttribute("attr")

if (pbdom_attr.HasChildren()) thenPBDOM_OBJECT pbdom_obj_array[]long l = 0

pbdom_attr.GetContent(pbdom_obj_array)

for l = 1 to UpperBound (pbdom_obj_array)

MessageBox ("Attr の子オブジェク ト ", &pbdom_obj_array[l].GetObjectClassString())

next

end if

catch (pbdom_exception pbdom_e)MessageBox ("PBDOM_EXCEPTION", pbdom_e.GetMessage())

end try

解説 こ の メ ソ ッ ド は、 現行の PBDOM_ATTRIBUTE オブジ ェ ク ト に子PBDOM_OBJECT が含まれているかど うかを調べ、 含まれている場合に true を返します。W3C DOM 仕様による と、DOM 属性ノードに含める こ とができるのはテキス ト ノード とエンテ ィテ ィ参照ノードだけであ る ため、 PBDOM_ATTRIBUTE オブジェ ク ト に含まれるのは、PBDOM_TEXT オブジェ ク ト と PBDOM_ENTITYREFERENCE オブジェク トだけです。

82 PowerBuilder

Page 99: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

PBDOM_ATTRIBUTE オブジェ ク ト のテキス ト値が空の文字列の場合でも、 空の文字列を表す、 少なく と も 1 つの PBDOM_TEXT オブジェク トが必ず含まれています。

InsertContent機能 参照される PBDOM_OBJECT で指定する位置に、 PBDOM_OBJECT を

PBDOM_ATTRIBUTE の子と して挿入します。

構文 pbdom_attribute_name.InsertContent(pbdom_object pbdom_object_new, pbdom_object pbdom_object_ref)

戻り値 PBDOM_OBJECT。 PBDOM_OBJECT と して返された PBDOM_ATTRIBUTE です。

Throws EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 挿入される PBDOM_OBJECT に名前を付けるこ と ができるが、 ユーザ定義名が付いていない場合

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 挿入されるPBDOM_OBJECT にすでに親がある場合

EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT ― 挿入されるPBDOM_OBJECT が無効で、 現行の PBDOM_ATTRIBUTE の子と して挿入できない場合

EXCEPTION_WRONG_PARENT_ERROR ― 参照 PBDOM_OBJECT が現行の PBDOM_ATTRIBUTE の子でない場合

例 次の例では、 my_attr とい う名前と、 「attribute text」 とい う テキス ト内容を持つ属性をルート要素に追加します。 次に、 ent_ref とい う名前のPBDOM_ENTITYREFERENCE オブジェク ト を作成し、属性の現行の内容の前にそのオブジェク ト を挿入します。 属性の新しい内容を調べると、 「&ent_ref;attribute text」 が返されるはずです。

次のコードを考えてみまし ょ う。

PBDOM_DOCUMENT pbdom_docPBDOM_ATTRIBUTE pbdom_attr

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

pbdom_object_new 挿入する PBDOM_OBJECTpbdom_object_ref pbdom_object_new をPBDOM_OBJECT の前に挿入す

るための位置参照

PowerBuilder エクステンシ ョ ン リファレンス 83

Page 100: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

PBDOM_ENTITYREFERENCE pbdom_entrefPBDOM_OBJECT pbdom_obj_array[]

trypbdom_doc = Create PBDOM_DOCUMENTpbdom_entref = Create PBDOM_ENTITYREFERENCE

// 文書オブジェク ト を新規作成します。pbdom_doc.NewDocument ("root")

// 属性 「my_attr」 をルート要素に追加します。pbdom_doc.GetRootElement().SetAttribute("my_attr", &

"attribute text")

// PBDOM_ENTITYREFERENCE の名前を設定します。pbdom_entref.SetName ("ent_ref")

// 「my_attr」 の既存の内容を取得します。pbdom_doc.GetRootElement().GetAttribute("my_attr").&

GetContent(pbdom_obj_array)

// エンティテ ィ参照を、 ルート要素の my_attr 属性の// 属性テキストの前に挿入します。

pbdom_doc.GetRootElement().GetAttribute("my_attr").&InsertContent(pbdom_entref, pbdom_obj_array[1])

// 「my_attr」 のテキストの内容をチェ ックします。if pbdom_doc.GetRootElement(). &

GetAttribute("my_attr").GetText() = &"&ent_ref;attribute text" then

MessageBox ("正しい ", &"my_attr 上の GetText() は正しいです。 ")

else

MessageBox ("不正 ", &"my_attr 上の GetText() は不正です。 ")

end if

catch (pbdom_exception pbdom_except)MessageBox ("PBDOM_EXCEPTION", &

pbdom_except.GetMessage())end try

84 PowerBuilder

Page 101: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

解説 この メ ソ ッ ドは、 入力された PBDOM_OBJECT を、 指定された位置(参照 PBDOM_OBJECT の前) に子オブジェク ト と して挿入します。現在、 PBDOM_ATTRIBUTE の子と して挿入できるのは、 PBDOM_TEXTオブジェ ク ト と PBDOM_ENTITYREFERENCE オブジェ ク ト だけです。

参照 PBDOM_OBJECT が null の場合は、 挿入される PBDOM_OBJECTは、 現行の PBDOM_ATTRIBUTE オブジェク トの子のリ ス トの最後に挿入されます。

関連項目 AddContentGetContentRemoveContentSetContent

IsAncestorObjectOf機能 現行の PBDOM_ATTRIBUTE オブジェク ト が、 ほかの PBDOM_OBJECT

の先祖であるかどう かを調べます。

構文 pbdom_attribute_name.IsAncestorObjectOf(pbdom_object pbdom_object_ref)

戻り値 Boolean 型。 現行の PBDOM_ATTRIBUTE が入力された PBDOM_OBJECT の先祖である場合は true を返し、 それ以外の場合は false を返します。

Throws EXCEPTION_INVALID_ARGUMENT 入力された PBDOM_OBJECT が無効である場合。PBDOM_ELEMENT が正し く初期化されていないか、 nullオブジェク ト参照である場合に、 無効となるこ とがある

解説 このメ ソッ ド は、 現行の PBDOM_ATTRIBUTE が入力された PBDOM_OBJECT の先祖オブジェク ト であるかどう かを調べます。 W3C DOM 仕様によると 、 PBDOM_ATTRIBUTE の子オブジェク ト になれるのは PBDOM_TEXT と PBDOM_ENTITYREFERENCE オブジェク ト だけであるため、 PBDOM_TEXT または PBDOM_ENTITYREFERENCE オブジェク ト の先祖になれるのは PBDOM_ATTRIBUTE だけです。

引数 説明

pbdom_document_name PBDOM_ATTRIBUTE オブジェク トの名前

pbdom_object_ref チェッ ク対象の PBDOM_OBJECT に対する参照

PowerBuilder エクステンシ ョ ン リファレンス 85

Page 102: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

RemoveContent機能 入力された BDOM_OBJECT を PBDOM_ATTRIBUTE から削除します。

構文 pbdom_attribute_name.RemoveContent(pbdom_object pbdom_object_ref)

戻り値 Boolean 型。内容が正常に削除された場合は true を返し、それ以外の場合は false を返します。

Throws EXCEPTION_INVALID_ARGUMENT 入力された PBDOM_OBJECT が無効である場合。PBDOM_ELEMENT が正し く初期化されていないか、 nullオブジェク ト参照である場合に、 無効となるこ とがある

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_ATTRIBUTE オブジェク トや入力された PBDOM_OBJECT が、 派生した PBDOM_OBJECT ク ラス オブジェク トに関連付けられていない場合

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 現行の PBDOM_ATTRIBUTE や削除される PBDOM_OBJECT に名前を付けるこ とができるが、 ユーザ定義名が付いていない場合

EXCEPTION_WRONG_DOCUMENT_ERROR ― 入力された PBDOM_OBJECT が現行の PBDOM_ATTRIBUTE と同じPBDOM_DOCUMENT 内に含まれていない場合

EXCEPTION_WRONG_PARENT_ERROR ― 入力された PBDOM_OBJECTが現行の PBDOM_ATTRIBUTE の子でない場合

例 次の例では、 my_attr とい う名前と、 「attribute text」 とい う テキス ト内容を持つ属性をルート要素に追加します。 次に、 ent_ref とい う名前のPBDOM_ENTITYREFERENCE オブジェク ト を作成し、属性の現行の内容の前にそのオブジェク ト を挿入します。

この時点で、 「attribute text」 を含む PBDOM_TEXT と 、ent_ref と いう 名前が付いた PBDOM_ENTITYREFERENCE の 2 つの子 PBDOM_OBJECT がmy_attr に含まれます。シリ アライズすると 、要素は次のよう になり ます。

<root my_attr="attribute text&ent_ref;">

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

pbdom_object_ref 現行の PBDOM_ATTRIBUTE から削除する子 PBDOM_OBJECT

86 PowerBuilder

Page 103: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

GetContent を呼び出して、 これら 2 つの PBDOM_OBJECT を含む配列を返します。 pbdom_obj_array[1] は PBDOM_TEXT を指している必要があ り ます。my_attr から pbdom_obj_array[1] を削除した後でシ リ アライズする と、 要素は 「<root my_attr="&ent_ref;">」 とな り ます。

PBDOM_DOCUMENT pbdom_docPBDOM_ATTRIBUTE pbdom_attrPBDOM_ENTITYREFERENCE pbdom_entrefPBDOM_OBJECT pbdom_obj_array[]

trypbdom_doc = Create PBDOM_DOCUMENTpbdom_entref = Create PBDOM_ENTITYREFERENCE

// 文書オブジェク ト を新規作成します。pbdom_doc.NewDocument ("root")

// 属性 「my_attr」 をルート要素に追加します。pbdom_doc.GetRootElement().SetAttribute("my_attr", &

"attribute text")

// PBDOM_ENTITYREFERENCE の名前を設定します。pbdom_entref.SetName ("ent_ref")

// エンティテ ィ参照をルート要素の// 「my_attr」 属性に追加します。pbdom_doc.GetRootElement(). &

GetAttribute("my_attr").AddContent(pbdom_entref)

// 「my_attr」 の既存の内容を取得します。pbdom_doc.GetRootElement().GetAttribute("my_attr").&

GetContent(pbdom_obj_array)

// 「my_attr」 から PBDOM_TEXT オブジェク ト を削除します。pbdom_doc.GetRootElement().GetAttribute("my_attr").&

RemoveContent(pbdom_obj_array[1])

// 「my_attr 」 のテキスト内容をチェ ックします。if pbdom_doc.GetRootElement(). &

GetAttribute("my_attr").GetText() = &"&ent_ref;" then

MessageBox ("正しい ", &"my_attr 上の GetText() は正しいです。 ")

else

MessageBox ("不正 ", &"my_attr 上の GetText() は不正です。 ")

end if

PowerBuilder エクステンシ ョ ン リファレンス 87

Page 104: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

catch (pbdom_exception pbdom_e)MessageBox ("PBDOM_EXCEPTION", pbdom_e.GetMessage())

end try

解説 RemoveContent メ ソ ッ ド は、 入力された PBDOM_OBJECT を現行のPBDOM_ATTRIBUTE から削除します。現在、 PBDOM_ATTRIBUTE の内容に含める こ と ができ るのは、 PBDOM_TEXT オブジ ェ ク ト とPBDOM_ENTITYREFERENCE オブジェク トだけです。したがって、入力する PBDOM_OBJECT は、 PBDOM_TEXT オブジェ ク ト またはPBDOM_ENTITYREFERENCE オブジェ ク ト のどちらかでなければなり ません。

関連項目 AddContentGetContentInsertContentSetContent

SetBooleanValue機能 PBDOM_ATTRIBUTE オブジェク トのテキス ト値を設定します。

SetBooleanValue メ ソ ッ ド は、 受け取った Boolean 型の値を文字列にシ リアライズするこ とによって、 このテキス トの値を作成します。

構文 pbdom_attribute_name.SetBooleanValue(boolean boolValue)

戻り値 PBDOM_ATTRIBUTE。 SetBooleanValue メ ソ ッ ドが呼び出された PBDOM_ATTRIBUTE です。

関連項目 GetBooleanValue

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

boolValue PBDOM_ATTRIBUTE に設定する Boolean 型の値

88 PowerBuilder

Page 105: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

SetContent機能 現行の PBDOM_ATTRIBUTE の内容を設定します。

構文 pbdom_attribute_name.SetContent(pbdom_object pbdom_object_array)

戻り値 PBDOM_OBJECT。 修正された現行の PBDOM_ATTRIBUTE です。

Throws EXCEPTION_ILLEGAL_PBOBJECT ― いずれかの配列項目が、 有効なPBDOM オブジェ ク ト でない場合。 配列項目が正し く初期化されていないか、 null オブジェク ト参照である場合に、 無効となるこ とがある。これは、 EXCEPTION_INVALID_ARGUMENT に類似している

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― いずれかの配列項目に名前を付けるこ とができるが、 ユーザ定義名が付いていない場合

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― いずれかの配列項目が、 派生した PBDOM_OBJECT に関連付けられていない場合

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― いずれかの配列項目にすでに親がある場合

EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT ― いずれかの配列項目が PBDOM_ATTRIBUTE の内容の一部と して設定できない場合

例 次の例では、 PBDOM_ATTRIBUTE オブジェク トの内容を設定します。ルート要素 root を持つ PBDOM_DOCUMENT を作成し、 次の内部サブセッ ト を持つ PBDOM_DOCTYPE をこれにアタ ッチします。

<!ELEMENT root ANY><!ATTLIST root attr CDATA #REQUIRED><!ENTITY ent_ref "MY ENTITY REFERENCE">

また、PBDOM_ATTRIBUTE attr を作成し、次の 3 つの PBDOM_OBJECTを含む配列をその内容と して設定します。

• テキス ト値 「start text」 を持つ PBDOM_TEXT

• ent_ref とい う名前の PBDOM_ENTITYREFERENCE

• テキス ト値 「end text」 を持つ PBDOM_TEXT

これで、 attr の元の内容が削除され、新しい内容が設定されるため、文書を外部ファ イルにシ リ アラ イズする と、 ルート要素は次のよ うになり ます。

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

pbdom_object_array PBDOM_OBJECT の配列

PowerBuilder エクステンシ ョ ン リファレンス 89

Page 106: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

<root attr="start text &ent_ref; end text."/>

最後に、GetAttributeText とい うユーザ定義関数で、シ リ アライズされた外部 XML ファ イルを解析し、 attr 属性のテキス ト値を取得します。

GetAttributeText 関数のコードは次のとおりです。

PBDOM_BUILDER pbdom_buildrPBDOM_DOCUMENT pbdom_docstring strReturn

trypbdom_buildr = Create PBDOM_BUILDERpbdom_doc = pbdom_buildr. &

BuildFromFile (strXMLFileName)

strReturn = pbdom_doc.GetRootElement(). &GetAttribute(strAttributeName).GetText()

catch (PBDOM_EXCEPTION pbdom_except)strReturn = ""

end tryreturn strReturn

この関数は、外部 XML ファイル(最初の引数)から PBDOM_DOCUMENTを作成し、 ルート 要素から属性のテキスト 値 (2 番目の引数) を取得します。

PBDOM_ATTRIBUTE の内容を設定するコードは次のとおりです。

PBDOM_DOCUMENT pbdom_docPBDOM_DOCTYPE pbdom_doctypPBDOM_ATTRIBUTE pbdom_attrPBDOM_TEXT pbdom_txtPBDOM_OBJECT pbdom_obj_array_set[]long l = 0

trypbdom_doc = Create PBDOM_DOCUMENTpbdom_doc.NewDocument ("root")

pbdom_doctyp = Create PBDOM_DOCTYPEpbdom_doctyp.SetName ("root")pbdom_doctyp.setinternalsubset("<!ELEMENT root

ANY><!ATTLIST root attr CDATA #REQUIRED><!ENTITY ent_ref ~"MY ENTITY REFERENCE~">")

pbdom_doc.SetDocType(pbdom_doctyp)

90 PowerBuilder

Page 107: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

pbdom_doc.GetRootElement().SetAttribute("attr", "")

pbdom_obj_array_set[1] = Create PBDOM_TEXTpbdom_txt = pbdom_obj_array_set[1]pbdom_txt.SetText ("start text ")

pbdom_obj_array_set[2] = Create PBDOM_ENTITYREFERENCE pbdom_obj_array_set[2].SetName("ent_ref")

pbdom_obj_array_set[3] = Create PBDOM_TEXTpbdom_txt = pbdom_obj_array_set[3]pbdom_txt.SetText (" end text.")

pbdom_doc.GetRootElement().GetAttribute("attr"). &SetContent(pbdom_obj_array_set)

pbdom_doc.SaveDocument &("c:\xmltests\attr_set_content.xml")

MessageBox ("Attribute Text", GetAttributeText &("c:\xmltests\attr_set_content.xml", "attr"))

catch (PBDOM_EXCEPTION pbdom_e)MessageBox ("PBDOM_EXCEPTION", pbdom_e.GetMessage())

end try

解説 こ のメ ソ ッ ド は、 現行の PBDOM_ATTRIBUTE の内容を設定します。指定する配列に含めるオブジェク トは、 PBDOM_TEXT と PBDOM_ENTITYREFERENCE だけにして ください。

指定された配列のすべてのオブジェク トが正当なオブジェク トで、 新しい内容が追加される前である場合、 古い内容のすべてのオブジェクトの親の存在が null (親がいない) に設定されて、 古い内容のリ ス トが現行の PBDOM_ATTRIBUTE から消去されます。

これによ り、GetContent を呼び出してすでに取得したすべてのアクティブな配列の項目も、新たな状態を反映するよ うに変更されます。 また、指定された配列のすべてのオブジェ ク ト も、 その親の存在が現行のPBDOM_ATTRIBUTE に設定されます。 null 値または空の配列を渡すと、 この PBDOM_ATTRIBUTE の既存の内容が消去されます。

関連項目 AddContentGetContentRemoveContentSetContent

PowerBuilder エクステンシ ョ ン リファレンス 91

Page 108: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

SetDateValue機能 PBDOM_ATTRIBUTE オブジェク トのテキス ト値を設定します。

SetDateValue メ ソ ッ ド は、受け取った Date 型の値を文字列にシリ アライズするこ とによって、 このテキス トの値を作成します。

構文 pbdom_attribute_name.SetDateValue(date dateValue, strDateFormat)

strDateFormat パラ メータの値には、 区切り記号と してスラ ッシュやコロンを含めるこ とができます。 次の表に、 strDateFormat で特別な意味を持つ文字を示します。

戻り値 PBDOM_ATTRIBUTE。 SetDateValue メ ソ ッ ドが呼び出された PBDOM_ATTRIBUTE です。

関連項目 GetDateValue

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

dateValue PBDOM_ATTRIBUTE に設定する Date 型の値

strDateFormat PBDOM_ATTRIBUTE に設定する Date 型の値。 たとえば MM:DD:YYYY のよ うな書式で指定

文字 説明 例

D 先頭に 0 を付けない日付 5DD 必要に応じて先頭に 0 を付ける日付 05M 先頭に 0 を付けない月 5MM 必要に応じて先頭に 0 を付ける月 05YY 西暦の下 2 桁 05YYYY 西暦 2005

92 PowerBuilder

Page 109: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

SetDateTimeValue機能 PBDOM_ATTRIBUTE オブジェク トのテキス ト値を設定します。

SetDateTimeValue メ ソ ッ ド は、受け取った DateTime 型の値を文字列にシリ アライズするこ とによって、 このテキス トの値を作成します。

構文 pbdom_attribute_name.SetDateTimeValue(datetime datetimeValue, string strDateFormat, string strTimeFormat)

strDateFormat パラ メータの値には、 区切り記号と してスラ ッシュやコロンを使用できます。 次の表に、 strDateFormat で特別な意味を持つ文字を示します。

strTimeFormat パラ メータの値には、 区切り記号と してスラ ッシュやコロンを含めるこ とができます。 次の表に、 strTimeFormat で特別な意味を持つ文字を示します。

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

datetimeValue PBDOM_ATTRIBUTE に設定する DateTime 型の値

strDateFormat PBDOM_ATTRIBUTE に設定する DateTime 型の値の日付部分を、たとえば MM:DD:YYYY のよ うな書式で指定

strTimeFormat PBDOM_ATTRIBUTE に設定する DateTime 型の値の時刻部分を、たとえば MM:DD:YYYY のよ うな書式で指定

文字 説明 例

D 先頭に 0 を付けない日付 5DD 必要に応じて先頭に 0 を付ける日付 05M 先頭に 0 を付けない月 5MM 必要に応じて先頭に 0 を付ける月 05YY 西暦の下 2 桁 05YYYY 西暦 2005

文字 説明 例

H 先頭に 0 を付けない時 5HH 必要に応じて先頭に 0 を付ける時 05M 先頭に 0 を付けない分 5MM 必要に応じて先頭に 0 を付ける分 05S 先頭に 0 を付けない秒 5SS 必要に応じて先頭に 0 を付ける秒 55

PowerBuilder エクステンシ ョ ン リファレンス 93

Page 110: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

戻り値 PBDOM_ATTRIBUTE。 SetDateTimeValue メ ソ ッ ドが呼び出された PBDOM_ATTRIBUTE です。

関連項目 GetDateTimeValue

SetDoubleValue機能 PBDOM_ATTRIBUTE オブジェク トのテキス ト値を設定します。

SetDoubleValue メ ソ ッ ド は、受け取った Double 型の値を文字列にシリ アライズするこ とによって、 このテキス トの値を作成します。

構文 pbdom_attribute_name.SetDoubleValue( double doubleValue)

戻り値 PBDOM_ATTRIBUTE。 SetDoubleValue メ ソ ッ ドが呼び出された PBDOM_ATTRIBUTE です。

関連項目 GetDoubleValue

SetIntValue機能 PBDOM_ATTRIBUTE オブジェク トのテキス ト値を設定します。

SetIntValue メ ソ ッ ドは、 受け取った Int 型の値を文字列にシ リ アライズするこ とによって、 このテキス トの値を作成します。

構文 pbdom_attribute_name.SetIntValue(integerintValue)

戻り値 PBDOM_ATTRIBUTE。 SetIntValue メ ソ ッ ドが呼び出された PBDOM_ATTRIBUTE です。

関連項目 GetIntValue

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

doubleValue PBDOM_ATTRIBUTE に設定する Double 型の値

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

intValue PBDOM_ATTRIBUTE に設定する Int 型の値

94 PowerBuilder

Page 111: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

SetLongValue機能 PBDOM_ATTRIBUTE オブジェク トのテキス ト値を設定します。

SetLongValue メ ソ ッ ドは、 受け取った Long 型の値を文字列にシ リ アライズするこ とによって、 このテキス トの値を作成します。

構文 pbdom_attribute_name.SetLongValue( long longValue)

戻り値 PBDOM_ATTRIBUTE。 SetLongValue メ ソ ッ ドが呼び出された PBDOM_ATTRIBUTE です。

関連項目 GetLongValue

SetName機能 PBDOM_ATTRIBUTE オブジェク トのローカル名を設定します。

構文 pbdom_attribute_name.SetName(string strName)

戻り値 Boolean 型。 PBDOM_ATTRIBUTE のローカル名が変更された場合はtrue を返し、 それ以外の場合は false を返します。

Throws EXCEPTION_INVALID_NAME ― PBDOM_ATTRIBUTE のローカル名と して入力された名前が無効の場合。 名前が空の文字列である場合、 名前に名前空間の接頭辞が含まれている場合、 すでに名前が所有している要素の既存の属性名である場合に、 無効となるこ とがある

EXCEPTION_MEMORY_ALLOCATION_FAILURE このメ ソ ッ ドの実行中に、メモ リ不足が発生した場合

例 次の例では、PBDOM_ATTRIBUTE のローカル名の設定方法を示し、さらに、 ローカル名を含む名前空間の情報はローカル名を変更しても影響を受けないこ とを示します。

最初のサンプル コード では、 名前空間の宣言と 属性 a が指定されている1 つのルート 要素を持つ XML を含む文字列から、 PBDOM_DOCUMENTを作成しています。

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

longValue PBDOM_ATTRIBUTE に設定する Long 型の値

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

strName PBDOM_ATTRIBUTE の新規ローカル名

PowerBuilder エクステンシ ョ ン リファレンス 95

Page 112: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

GetAttribute メ ソ ッ ドは、 名前空間に含まれていない属性 a を取得します。 返された PBDOM_ATTRIBUTE を調べて、 これを有効にする必要があ り ます。 SetName を呼び出した後、 名前の変更を確認し、 名前空間の情報が変更されていないこ と を調べます。 名前空間の接頭辞とURI は空の文字列のままです。

PBDOM_BUILDER pbdom_buildrPBDOM_DOCUMENT pbdom_docPBDOM_ATTRIBUTE pbdom_attrstring strXML = "<root xmlns:n1=~"http://www.n.com~" a=~"123~"/>"

trypbdom_buildr = Create PBDOM_BUILDERpbdom_doc = pbdom_buildr.BuildFromString(strXML)

pbdom_attr = pbdom_doc.GetRootElement(). &GetAttribute("a")

if (IsValid(pbdom_attr)) then

MessageBox ("正しい ", &"NONAMESPACE GetAttribute() メ ソッ ド を使用して " &+ "PBDOM_ATTRIBUTE a を取り出しました。 ")

else

MessageBox ("不正 ", &"PBDOM_ATTRIBUTE は取り出し可能でなければいけません。 ")

end if

pbdom_attr.SetName ("b")

if pbdom_attr.GetName() = "b" then

MessageBox ("正しい ", "名前が b に変更されました。 ")else

MessageBox ("不正 ", &"名前は b に変更されていなければいけません。 ")

end if

if pbdom_attr.GetNamespacePrefix() = "" then

MessageBox ("正しい ", &"名前空間の接頭辞は空の文字列です。 ")

else

MessageBox("不正 ", "名前空間の接頭辞は : " &+ pbdom_attr.GetNamespacePrefix() &

+ " は不正です。 ")end if

96 PowerBuilder

Page 113: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

if pbdom_attr.GetNamespaceURI() = "" then

MessageBox ("正しい ", &"名前空間の URI は空の文字列です。 ")

else

MessageBox ("不正 ", "名前空間の URI : " &+ pbdom_attr.GetNamespaceURI() &

+ " は不正です。 ")end if

catch (PBDOM_EXCEPTION pbdom_e)MessageBox ("PBDOM_EXCEPTION", pbdom_e.GetMessage())

end try

解説 こ のメ ソ ッ ド は、 PBDOM_ATTRIBUTE のロ ーカル名を設定し ます。PBDOM_ATTRIBUTE を初めて作成すると きには、 PBDOM_ATTRIBUTEには名前がなく 、 名前空間の情報はデフォルト で NONAMESPACE と いう 名前空間 (名前空間の接頭辞と URI がいずれも空の文字列) に設定されます。

SetName メ ソ ッ ドを使って、PBDOM_ATTRIBUTE のローカル名を設定します。 SetNamespace メ ソ ッ ド を使って、 PBDOM_ATTRIBUTE の名前空間の接頭辞と URI を設定します。

PBDOM_ATTRIBUTE をスク リ プト によって解析済み文書から取得する場合には、PBDOM_ATTRIBUTE の名前と 名前空間情報は、解析済み文書の参照対象の属性から継承されます。しかし、PBDOM_ATTRIBUTE の名前と 名前空間の情報は、 SetName メ ソッ ド と SetNamespace メ ソ ッ ド を使用して修正できます。

W3C の 「Namespaces in XML」 仕様に従って、 SetName メ ソ ッ ドを PBDOM_ATTRIBUTE に対して呼び出す際に、 PBDOM_ATTRIBUTE(PBDOM_ATTRIBUTE 1) に既存の PBDOM_ATTRIBUTE(PBDOM_ATTRIBUTE 2) を含むオーナー PBDOM_ELEMENT があり、 これが PBDOM_ATTRIBUTE 1 と同じ名前 (PBDOM_ATTRIBUTE 1 に設定される名前) と名前空間 URI を持っている場合には、EXCEPTION_INVALID_NAME 例外が送出されます。

関連項目 GetNameSetOwnerElementObject

PowerBuilder エクステンシ ョ ン リファレンス 97

Page 114: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

SetNamespace機能 指定された名前空間の接頭辞と URI に基づいて、PBDOM_ATTRIBUTE

オブジェク トの名前空間を設定します。

構文 pbdom_attribute_name.SetNamespace(stringstrNamespacePrefix, string stringstrNamespaceUri, boolean bVerifyNamespace)

戻り値 Long 型。 名前空間の情報が正し く設定された場合は 0 を返し、 入力された名前空間の接頭辞と URI に一致するスコープ内に名前空間が存在しない場合は -1 を返します。

Throws EXCEPTION_INVALID_NAME 入力された名前空間の接頭辞または URI、あるいは接頭辞と URI の組み合わせが無効である場合。 この例外は次の場合に送出されます。

• 名前空間の接頭辞が空の文字列で、 URI が空の文字列でない場合。両方が空の文字列である場合は、NONAMESPACE 名前空間が指定されるこ とにな り、 この接頭辞と URI の組み合わせは正しいものになる

• 名前空間の接頭辞が xmlns であ りながら、 URI が http://www.w3.org/2000/xmlns/ でない場合。 こ の名前空間の接頭辞と URI の組み合わせは一意で排他的。 この組み合わせの各要素を別々に使用するこ と はできない。 こ の組み合わせで使用すると 、 名前空間の宣言と なる

• 名前空間の接頭辞の文字列が無効である場合。 つまり 、 接頭辞と して指定した文字列が、 接頭辞の名前に関する W3C の 「Namespaces inXML」 仕様に準拠していない場合

• 名前空間 URI の文字列が無効である場合。 つま り、 URI 文字列に関する W3C 仕様に準拠していない場合

• 現行の PBDOM_ATTRIBUTE のオーナー要素に、 この PBDOM_ATTRIBUTE と 同じ名前の属性がすでに含まれており 、 現行の PBDOM_ATTRIBUTE に設定される名前空間に属している場合

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

strNamespacePrefix PBDOM_ATTRIBUTE に設定する名前空間の接頭辞を含む文字列

strNamespaceUri PBDOM_ATTRIBUTE に設定する名前空間 URI を含む文字列

bVerifyNamespace 入力された名前空間の接頭辞と URI に一致するスコープ内名前空間の宣言を検索するかど うかを示すブール値

98 PowerBuilder

Page 115: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

EXCEPTION_INVALID_ARGUMENT ― 入力された名前空間の接頭辞の文字列や URI 文字列が null に設定されていた場合

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― 内部文字列に対して割り当てる メモ リが十分にない場合

EXCEPTION_INTERNAL_XML_ENGINE_ERROR ― XML エンジンで何らかの内部エラーが発生した場合

例 次の例では、 PBDOM_ATTRIBUTE に名前空間の接頭辞と URI を設定する方法を示します。次の XML 文書に基づいて、PBDOM_DOCUMENT を作成します。

<root xmlns:pre1="http://www.pre.com"><child1 pre1:a="123" b="456"/>

</root>

接頭辞 pre1 を持つ名前空間 http://www.pre.com をルート要素で定義します。 子要素 child1 は、 宣言された名前空間に属する属性 a と、 名前空間に属していない属性 b を持っています。

この例では、 GetAttribute を使って属性 b を取得して pbdom_attr に格納します。次に、文字列 「pre1」 と 「http://www.pre.com」 を接頭辞と URIと し て指定し、 bVerifyNamespace パラ メ ータ を true に設定し て、pbdom_attr に対して SetNamespace を呼び出します。 このパラ メータの指定は、 b のオーナー要素、 またはそのオーナー要素の先祖の要素が、pre1 と http://www.pre.com とい う名前空間の接頭辞と URI の組み合わせの名前空間の宣言に含まれてい る かど う かを調べる よ う に、SetNamespace に指示します。

ルート要素にはこれらの名前空間の宣言が含まれているので、 この名前空間の接頭辞と URI の組み合わせの検索は正常に行われます。

PBDOM_BUILDER pbdom_buildrPBDOM_DOCUMENT pbdom_docPBDOM_ATTRIBUTE pbdom_attrstring strXML = "<root xmlns:pre1=~"http://www.pre.com~"><child1 pre1:a=~"123~" b=~"456~"/></root>"

trypbdom_buildr = Create PBDOM_BUILDERpbdom_doc = pbdom_buildr.BuildFromString(strXML)

pbdom_attr = pbdom_doc.GetRootElement().GetChildElement("child1").GetAttribute("b", "", "")

PowerBuilder エクステンシ ョ ン リファレンス 99

Page 116: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

pbdom_attr.SetNamespace("pre1", "http://www.pre.com", true)

MessageBox ("NS Prefix", pbdom_attr.GetNamespacePrefix())

MessageBox ("NS URI", pbdom_attr.GetNamespaceURI())MessageBox ("Name", pbdom_attr.getName())MessageBox ("Text", pbdom_attr.getText())

pbdom_doc.SaveDocument ("ns.xml")

catch (PBDOM_EXCEPTION pbdom_except)MessageBox ("PBDOM_EXCEPTION",

pbdom_except.GetMessage())end try

child1 には、 b とい う名前を持ち、 http://www.pre.com namespace に属している属性はほかにないので、 SetNamespace メ ソ ッ ドは正常に実行されます。 PBDOM_DOCUMENT をシ リ アラ イズする と、 次のよ うになり ます。

<root xmlns:pre1="http://www.pre.com"><child1 pre1:b="456" pre1:a="123" />

</root>

解説 こ の メ ソ ッ ド は、 入力された接頭辞 と URI に基づいて、 現行のPBDOM_ATTRIBUTE オブジェ ク ト の名前空間を設定します。 接頭辞に空の文字列を入力するこ とができますが、 接頭辞が空の文字列でない限り、 URI を空の文字列にするこ とはできません。

入力された接頭辞と URI が両方と も空の文字列の場合、PBDOM_ATTRIBUTE に名前空間はあり ません。 bVerifyNamespace パラメ ータは、 入力された名前空間の接頭辞と URI に一致するスコープ内名前空間の宣言を検索するかどう かをメ ソッ ド に指示し ます。

W3C の「Namespaces in XML」仕様に従って、現行の PBDOM_ATTRIBUTEに、 既存の PBDOM_ATTRIBUTE を含むオーナー PBDOM_ELEMENT があり 、 こ れが現行の PBDOM_ATTRIBUTE と 同じ 名前を持ち、 現行のPBDOM_ATTRIBUTE に設定されるものと 同じ名前空間 URI を持っている場合には、 EXCEPTION_INVALID_NAME 例外が送出されます。

関連項目 GetNameGetNamespacePrefixGetNamespaceUriGetQualifiedNameSetName

100 PowerBuilder

Page 117: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

SetOwnerElementObject機能 入力された PBDOM_ELEMENT を現行の PBDOM_ATTRIBUTE のオー

ナーと して設定します。

構文 pbdom_attribute_name.SetOwnerElementObject(pbdom_element pbdom_element_ref)

戻り値 PBDOM_ATTRIBUTE を返します。 修正された現行の PBDOM_ATTRIBUTE そのものです。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力された PBDOM_ELEMENT が無効である場合。PBDOM_ELEMENT が正し く初期化されていないか、null オブジェク ト参照である場合に、 無効となるこ とがある

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_ATTRIBUTE オブジェク トの内部実装や、 入力された PBDOM_ELEMENT オブジェク トが null の場合。 この例外が送出されるのはまれですが、 重大なメモ リの破損が発生した場合に送出されるこ とがある

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_OWNER ― 現行の PBDOM_ATTRIBUTE がすでにオーナー要素を持っている場合

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 入力された PBDOM_ELEMENT に名前が付いていない場合

EXCEPTION_INVALID_NAME ― 入力された PBDOM_ELEMENT に、現行の PBDOM_ATTRIBUTE と同じ名前を持ち、 同じ名前空間に属している属性がすでに含まれている場合

例 次の例では、 2 つの PBDOM_ATTRIBUTE オブジェク ト の位置を一方の要素からも う一方の要素に移動します。

PBDOM_DOCUMENT が作成される文字列 strXML では、 名前空間の宣言と 2 つの属性が abc ルート要素に含まれています。 My_Attr は名前空間に属しておらず、 pre:My_Attr_NS は http://www.pre.com 名前空間に属しています。

この例では、 2 つの属性と data 要素のハンドルを取得してから、 両方の属性を abc から切り離して、 data を両方の属性の新規オーナーと して設定します。

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

pbdom_element_ref 現行の PBDOM_ATTRIBUTE のオーナーと して設定する PBDOM_ELEMENT

PowerBuilder エクステンシ ョ ン リファレンス 101

Page 118: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

PBDOM_BUILDER pbdombuilder_newPBDOM_DOCUMENT pbdom_docPBDOM_ATTRIBUTE pbdom_attrPBDOM_ATTRIBUTE pbdom_attr_nsPBDOM_ELEMENT pbdom_elem_datastring strXML = "<abc My_Attr=~"Attribute Value~" pre:My_Attr_NS=~"Attribute Value NS~" xmlns:pre=~"http://www.pre.com~"><data>Data</data></abc>"

TRYpbdombuilder_new = Create PBDOM_Builderpbdom_doc = pbdombuilder_new.BuildFromString (strXML)

pbdom_attr = pbdom_doc.GetRootElement(). &GetAttribute("My_Attr")

pbdom_attr_ns = pbdom_doc.GetRootElement(). &GetAttribute("My_Attr_NS", "pre", &"http://www.pre.com")

pbdom_elem_data = pbdom_doc.GetRootElement(). &GetChildElement("data")

pbdom_attr.Detach()pbdom_attr.SetOwnerElementObject (pbdom_elem_data)

pbdom_attr_ns.Detach()pbdom_attr_ns.SetOwnerElementObject (pbdom_elem_data)

pbdom_doc.SaveDocument("setownerelementobject.xml")

Destroy pbdombuilder_newDestroy pbdom_doc

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)

END TRY

XML 文書をシ リ アライズする と、 次のよ うにな り ます。

<abc xmlns:pre="http://www.pre.com">

<data pre:My_Attr_NS="Attribute Value NS" My_Attr="Attribute Value">Data</data>

</abc>

102 PowerBuilder

Page 119: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

解説 「Namespace in XML」 仕様に従って、要素には、同じローカル名と名前空間 URI を持つ 2 つの属性を含めるこ とはできません。 2 つの属性の接頭辞が異なる場合であっても、 要素に含める こ とはでき ません。SetOwnerElementObject を呼び出した と きにこの規則に違反していると、 例外が送出されます。

関連項目 GetOwnerElementObject

SetRealValue機能 PBDOM_ATTRIBUTE オブジェク トのテキス ト値を設定します。

SetRealValue メ ソ ッ ド は、 受け取った Real 型の値を文字列にシリ アライズするこ とによって、 このテキス トの値を作成します。

構文 pbdom_attribute_name.SetRealValue(real realValue)

戻り値 PBDOM_ATTRIBUTE。 SetRealValue メ ソ ッ ドが呼び出された PBDOM_ATTRIBUTE です。

関連項目 GetRealValue

SetText機能 PBDOM_ATTRIBUTE オブジェク トの文字列値を設定します。

構文 pbdom_attribute_name.SetText(string strText)

戻り値 PBDOM_ATTRIBUTE。

解説 このメ ソ ッ ドは、 現行の PBDOM_ATTRIBUTE に入力された文字列値を設定して返します。

このメ ソ ッ ドは、 JDOM の setValue メ ソ ッ ドに相当します。

関連項目 GetTextGetTextNormalizeGetTextTrim

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

realValue PBDOM_ATTRIBUTE に設定する Real 型の値

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

strText PBDOM_ATTRIBUTE に設定する文字列値

PowerBuilder エクステンシ ョ ン リファレンス 103

Page 120: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

SetTimeValue機能 PBDOM_ATTRIBUTE オブジェク トのテキス ト値を設定します。

SetTimeValue メ ソ ッ ドは、 受け取った Time 型の値を文字列にシ リ アライズするこ とによって、 このテキス トの値を作成します。

構文 pbdom_attribute_name.SetTimeValue(time timeValue, string strTimeFormat)

strTimeFormat パラ メータの値には、 区切り記号と してスラ ッシュやコロンを使用できます。 次の表に、 strTimeFormat で特別な意味を持つ文字を示します。

戻り値 PBDOM_ATTRIBUTE。 SetTimeValue メ ソ ッ ドが呼び出された PBDOM_ATTRIBUTE です。

関連項目 GetTimeValue

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

timeValue PBDOM_ATTRIBUTE に設定する Time 型の値

strTimeFormat PBDOM_ATTRIBUTE に設定する Time 型の値を、たとえば HH:MM:SS のよ うな書式で指定します。

文字 説明 例

H 先頭に 0 を付けない時 5HH 必要に応じて先頭に 0 を付ける時 05M 先頭に 0 を付けない分 5MM 必要に応じて先頭に 0 を付ける分 05S 先頭に 0 を付けない秒 5SS 必要に応じて先頭に 0 を付ける秒 55

104 PowerBuilder

Page 121: · PDF file(PBDOM : PowerBuilder Document Object Model

第 5 章 PBDOM_ATTRIBUTE クラス

SetUintValue機能 PBDOM_ATTRIBUTE オブジェク トのテキス ト値を設定します。

SetUintValue メ ソ ッ ド は、 受け取った UInt 型の値を文字列にシリ アラ イズするこ とによって、 このテキス トの値を作成します。

構文 pbdom_attribute_name.SetUintValue(unsignedinteger uintValue)

戻り値 PBDOM_ATTRIBUTE。 SetUintValue メ ソ ッ ドが呼び出された PBDOM_ATTRIBUTE です。

関連項目 GetUintValue

SetUlongValue機能 PBDOM_ATTRIBUTE オブジェク トのテキス ト値を設定します。

SetUlongValue メ ソ ッ ドは、 受け取った ULong 型の値を文字列にシ リ アライズするこ とによって、 このテキス トの値を作成します。

構文 pbdom_attribute_name.SetUlongValue(unsignedlong ulongValue)

戻り値 PBDOM_ATTRIBUTE。 SetUlongValue メ ソ ッ ドが呼び出された PBDOM_ATTRIBUTE です。

関連項目 GetUlongValue

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

uintValue PBDOM_ATTRIBUTE に設定する UInt 型の値

引数 説明

pbdom_attribute_name PBDOM_ATTRIBUTE の名前

ulongValue PBDOM_ATTRIBUTE に設定する ULong 型の値

PowerBuilder エクステンシ ョ ン リファレンス 105

Page 122: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ATTRIBUTE

106 PowerBuilder

Page 123: · PDF file(PBDOM : PowerBuilder Document Object Model

第 6 章 PBDOM_BUILDER クラス

この章について この章では、 PBDOM_BUILDER ク ラスについて説明します。

PBDOM_BUILDER機能 PBDOM_BUILDER ク ラスは、文字列やデータスト アなどのさまざま

な入力ソースから PBDOM_DOCUMENT を作成する DOM ファ ク トリ と して機能します。 PBDOM_BUILDER ク ラスは PBDOM_OBJECTではあり ません。 PBDOM_BUILDER クラスをマップできる DOM オブジェク ト はあり ません。

PBDOM_BUILDER メ ソッ ド は、 PBDOM_DOCUMENT の新規作成時に使用され、 多重定義される PBDOM_DOCUMENT NewDocument メソ ッ ド と 対比できます。

メ ソ ッ ド PBDOM_BUILDER ク ラスには次のメ ソ ッ ドがあ り ます。

BuildFromDataStoreBuildFromFileBuildFromStringGetParseErrors

PowerBuilder エクステンシ ョ ン リファレンス 107

Page 124: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_BUILDER

BuildFromDataStore機能 参照されているデータス ト ア オブジェク トから PBDOM_DOCUMENT

を作成します。

構文 pbdom_builder_name.BuildFromDataStore(datastore datastore_ref)

戻り値 PBDOM_DOCUMENT

Throws EXCEPTION_INVALID_ARGUMENT ― 入力されたデータス ト ア オブジェク トが無効である場合。 PBDOM_DOCTYPE が正し く初期化されていないか、 null オブジェク ト参照である場合に、 無効となるこ とがある

例 次のスク リ プト フラグメ ント では、参照されるデータスト ア オブジェクト を指定して BuildFromDataStore メ ソ ッ ド を使用する方法を示します。

PBDOM_Builder pbdom_bldrpbdom_document pbdom_docdatastore ds

ds = Create datastoreds.DataObject = "d_customer"ds.SetTransObject (SQLCA)ds.Retrieve()

pbdom_doc = pbdom_bldr.BuildFromDataStore(ds)

この例では、データス ト ア オブジェク ト ds を作成してデータを検索してから、BuildFromDataStore メ ソ ッ ド に渡しています。BuildFromDataStore メソ ッ ド は、 データスト ア用の大部分の現行 XML テンプレート を使って、データスト アからデータを XML へエクスポート してから、その XML を使って PBDOM_DOCUMENT を作成します。 PBDOM_DOCUMENT オブジェク ト は pbdom_doc に代入します。

解説 このメ ソ ッ ドは、ユーザの TMP 環境変数がポイン トするディ レク ト リ内に一時ファイルを作成します。このディ レク ト リが無効である場合、一時ファ イルは Windows\temp ディ レク ト リに作成されます。

XML エクスポート テンプレートでエンコードを指定しても、BuildFromDataStore を使って作成されたドキュ メン トのエンコードには効果があ り ません。 常に UTF-16LE エンコードが使用されます。

関連項目 BuildFromFileBuildFromString

引数 説明

pbdom_builder_name PBDOM_BUILDER オブジェク トの名前

datastore_ref データス ト ア オブジェク ト

108 PowerBuilder

Page 125: · PDF file(PBDOM : PowerBuilder Document Object Model

第 6 章 PBDOM_BUILDER クラス

BuildFromFile機能 入力さ れた URL 文字列が指し示すファ イルから PBDOM_DOCUMENT

を作成します。 URL にローカル ファ イル パスを指定するこ と もできます。

構文 pbdom_builder_name.BuidFromFile (string strURL)

戻り値 PBDOM_DOCUMENT

Throws EXCEPTION_MEMORY_ALLOCATION_FAILURE ― PBDOM_DOCUMENTオブジェク ト を作成するためのメモ リが十分にない場合

例 ファ イル c:\pbdom_doc_1.xml に次の XML 文字列が格納されている とします。

<!DOCTYPE abc [<!ENTITY text "Some Text" >]><abc>

<data><child_data>Child Data Text</child_data><child_data An_Attribute="Some Attribute Value"/>&text;<!--Comment String--><![CDATA[Some CDATA String]]>

</data></abc>

このファ イルには、 <abc> がルート要素である こ とを示す文書型宣言と、 「Some Text」 に展開するテキス ト エンティティの宣言が格納されています。

ルート要素 abc には子要素 data が含まれ、 この子要素には、PBDOM_ELEMENT オブジェク トが 2 つと、 PBDOM_TEXT、PBDOM_COMMENT、 および PBDOM_CDATA オブジェク トがそれぞれ 1 つ、 合計 5 つの子 PBDOM_OBJECT が格納されています。

1 つめの child_data 要素は、 文字列 「Child Data Text」 が含まれた PBDOM_TEXT です。 2 つめの child_data 要素には子 PBDOM_OBJECT はあり ませんが、 PBDOM_ATTRIBUTE An_Attribute が含まれており 、 これは 「Some Attribute Value」 とい う値です。

引数 説明

pbdom_builder_name PBDOM_BUILDER オブジェク トの名前

strURL PBDOM_DOCUMENT の作成用ファイルの URL を示す文字列

PowerBuilder エクステンシ ョ ン リファレンス 109

Page 126: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_BUILDER

この例では、 c:\pbdom_doc_1.xml から pbdom_doc とい う PBDOM_DOCUMENT を作成し、 pbdom_doc の内容を調べてから、pbdom_doc 内に格納されている DOM ツ リーを c:\pbdom_doc_2.xml とい う別のファイルに保存します。 入力ファ イルと出力ファ イルは同じ内容にならなければなり ません。

PBDOM_Builder pbdom_bldrPBDOM_Document pbdom_docPBDOM_Object pbdom_obj_array[]PBDOM_Element pbdom_eleminteger iFileNum1long l = 0

// XML ファイルから PBDOM_DOCUMENT を作成します。pbdom_bldr = Create PBDOM_Builderpbdom_doc = pbdom_bldr.BuildFromFile &

("c:\pbdom_doc_1.xml")

// PBDOM_DOCUMENT の内容を調べます。// まず、 この文書の PBDOM_DOCTYPE を調べます。

MessageBox ("PBDOM_DOCTYPE GetName()", &pbdom_doc.GetDocType().GetName())

MessageBox ("PBDOM_DOCTYPE GetInternalSubset()", &pbdom_doc.GetDocType().GetInternalSubset())

// ルート要素を調べます。MessageBox ("PBDOM_DOC ルート要素名 ", &

pbdom_doc.GetRootElement().GetName())

// ルート要素の子要素を調べます。MessageBox ("PBDOM_DOC <data> 要素名 ", &

pbdom_doc.GetRootElement().GetChildElement &("data").GetName())

// <data> 要素の子 PBDOM_OBJECT を// すべて収集します。

pbdom_doc.GetRootElement().GetChildElement &("data").GetContent(pbdom_obj_array)

// 各 PBDOM_OBJECT 配列項目内に格納されている// クラス名、 子オブジェク ト名、 およびテキストを表示します。

for l = 1 to UpperBound (pbdom_obj_array)MessageBox ("Child Object " + string(l) + " Class",&

pbdom_obj_array[l].GetObjectClassString())MessageBox ("Child Object " + string(l) + " Name",&pbdom_obj_array[l].GetName())

110 PowerBuilder

Page 127: · PDF file(PBDOM : PowerBuilder Document Object Model

第 6 章 PBDOM_BUILDER クラス

MessageBox ("Child Object " + string(l) + " Text",&pbdom_obj_array[l].GetText())

next

// <child_data> 要素から 「An_Attribute」 属性の// 名前とテキストの値を取得して表示します。

pbdom_elem = pbdom_obj_array[2]

MessageBox ("child_data Attribute の名前 ", &pbdom_elem.GetAttribute("An_Attribute").GetName())

MessageBox ("child_data Attribute の値 ", &pbdom_elem.GetAttribute("An_Attribute").GetText())

// pbdom_doc 内に格納されている DOM ツリーを// 別のファイル 「c:\pbdom_doc_2.xml」 に保存します。

pbdom_doc.SaveDocument ("c:\pbdom_doc_2.xml")

Destroy pbdom_bldr

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)END TRY

解説 入力する URL 文字列には、 ローカル ファ イル パスを指定するこ と もできます。

XML エク スポー ト テンプレー ト で指定されるエンコードによ り、BuildFromFile を使って作成される ドキュ メ ン ト のエンコードが決定されます。

関連項目 BuildFromDataStoreBuildFromString

PowerBuilder エクステンシ ョ ン リファレンス 111

Page 128: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_BUILDER

BuildFromString機能 文字列から PBDOM_DOCUMENT を作成します。

構文 pbdom_builder_name.BuildFromString(string strXMLStream)

戻り値 PBDOM_DOCUMENT

Throws EXCEPTION_INVALID_ARGUMENT ― 入力された文字列が無効である場合。文字列が正し く初期化されていないか、null オブジェク ト参照である場合に、 無効となるこ とがある

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リ不足が発生した場合

例 次のブロッ クのスク リ プト では、入力文字列を指定して BuildFromString メソ ッ ド を使用する方法を示します。 XML を含む文字列を BuildFromStringメ ソ ッ ド に渡して、 戻り 値を PBDOM_DOCUMENT に代入します。

PBDOM_Builder pbdom_bldrpbdom_document pbdom_docstring strXML

strXML = "<Music:abc xmlns:ZMusic="strXML += "~"http://www.ZMusic.com~">"strXML += "Root Element Data<data>ABC Data"strXML += "<inner_data>My Inner Data</inner_data>"strXML += "My Data</data></abc>"

pbdom_bldr = Create PBDOM_Builderpbdom_doc = pbdom_bldr.BuildFromString (strXML)

解説 XML エクスポート テンプレートで指定されるエンコードによ り、BuildFromString を使って作成されるド キュメ ント のエンコード が決定されます。

関連項目 BuildFromDataStoreBuildFromFile

引数 説明

pbdom_builder_name PBDOM_BUILDER オブジェク トの名前

strXMLStream XML を含む文字列

112 PowerBuilder

Page 129: · PDF file(PBDOM : PowerBuilder Document Object Model

第 6 章 PBDOM_BUILDER クラス

GetParseErrors機能 文書解析時に検出された解析エラーのリ ス ト を取得します。

構文 pbdom_builder_name.GetParseErrors(ref string strErrorMessageArray[])

戻り値 Boolean 型。解析エラーのリ ス ト を取得した場合は true を返し、それ以外の場合は false を返します。解析エラーがない場合にも、 false を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力された文字列配列が無効である場合。文字列配列が正し く初期化されていないか、null オブジェク ト参照である場合に、 無効となるこ とがある

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リ不足が発生した場合

例 次の例では、 次の XML に基づいて PBDOM_DOCUMENT を作成します。

<!DOCTYPE root [<!ELEMENT root ANY><!ELEMENT data (#PCDATA)> <!ENTITY text "Some Text">]><root><abc/><def/></root>

この XML は整形式の XML ですが、要素 root に DOCTYPE で宣言されていない abc と def の 2 つの要素が含まれているため、有効な XML ではあ り ません。 GetParseErrors を呼び出すと、 1 つ以上の解析エラーが発生したこ とを示す true が返され、次のエラー リ ス トが生成されます。

"1,103,Unknown element 'abc'""1,109,Unknown element 'def'"

両方のエラー メ ッセージの 1 は XML 文字列の 1 行目でエラーが発生したこ とを示し、 103 と 109 はそれぞれカラム 103 と 109 でエラーが発生したこ とを示しています。

PBDOM_BUILDER pbdom_buildrPBDOM_DOCUMENT pbdom_doclong l = 0

引数 説明

pbdom_builder_name PBDOM_BUILDER オブジェク トの名前

strErrorMessageArray 文字列の可変長配列。各配列には、解析エラーが書式付き文字列で格納される

PowerBuilder エクステンシ ョ ン リファレンス 113

Page 130: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_BUILDER

string strXML = "<!DOCTYPE root [<!ELEMENT root ANY><!ELEMENT data (#PCDATA)> <!ENTITY text ~"Some Text~">]> <root><abc/><def/></root>"string strParseErrors[]BOOLEAN bRetTemp = FALSE

trypbdom_buildr = Create PBDOM_BUILDERpbdom_doc = pbdom_buildr.BuildFromString(strXML)bRetTemp = &

pbdom_buildr.GetParseErrors(strParseErrors)

if bRetTemp = true thenfor l = 1 to UpperBound(strParseErrors)

MessageBox ("解析エラー ", strParseErrors[l])next

end ifcatch (PBDOM_EXCEPTION pbdom_except)

MessageBox ("PBDOM_EXCEPTION", &pbdom_except.GetMessage())

end try

解説 このメ ソ ッ ドは、 現行の PBDOM_BUILDER によって実行された最後の解析処理中に検出されたエラーのリ ス ト を取得します。 配列の各文字列は次の書式で表示されます。

[Line Number],[Column Number],[Error Message]

こ こで、 Line Number と Column Number は、 XML 文書内でエラーが発生した行番号とカラム番号を示します。 Error Message は、 解析エラーメ ッセージです。

114 PowerBuilder

Page 131: · PDF file(PBDOM : PowerBuilder Document Object Model

第 7 章 PBDOM_CDATA クラス

この章について この章では、 PBDOM_CDATA ク ラスについて説明します。

PBDOM_CDATA機能 PBDOM_CDATA ク ラスは、 XML DOM の CDATA セクシ ョ ンを表

します。 PBDOM_CDATA ク ラスは、 PBDOM_CHARACTERDATAから継承された PBDOM_TEXT から派生しています。

PBDOM_CDATA オブジェ ク ト は、 エンテ ィ テ ィ参照を使用せずに、 「<」 や 「&」 などのテキス ト オブジェク トで禁止されている文字が含まれているテキス ト を保持する と きに使います。 たとえば、 次の PBDOM_CDATA オブジェク ト を考えてみます。

<some_text><![CDATA[ (x < y) & (y < z) => x < z ]]>

</some_text>

同じテキス ト内容を持つ PBDOM_TEXT オブジェク トは、 次のように記述されるはずです。

<some_text>(x &lt; y) &amp; (y &lt; z) =&gt; x &lt; z

</some_text>

しかし、PBDOM_CDATA ク ラスは PBDOM_TEXT から派生していますが、 PBDOM_CDATA オブジェク トは必ずしも PBDOM_TEXTと同じコンテキス トに挿入できるわけではあ り ません。たとえば、PBDOM_TEXT オブジェ ク トは PBDOM_ATTRIBUTE の子と して追加できますが、 PBDOM_CDATA オブジェ ク ト は追加できません。

PowerBuilder エクステンシ ョ ン リファレンス 115

Page 132: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CDATA

メ ソ ッ ド PBDOM_OBJECT から継承されたメ ソ ッ ドの中には、 意味のある用途を持たず、 デフォルトの機能や重要でない機能しか実行しないものもあ り ます。 これらのメ ソ ッ ドについて、 次の表で説明します。

PBDOM_CDATA ク ラスには、 次の重要なメ ソ ッ ドがあ り ます。

AppendCloneDetachEqualsGetObjectClassGetObjectClassStringGetOwnerDocumentObjectGetParentObjectGetTextGetTextNormalizeGetTextTrimSetParentObjectSetText

メ ソ ッ ド 戻り値

AddContent 現行の PBDOM_CDATAGetContent false

GetName 文字列 「#cdata」HasChildren false

InsertContent 現行の PBDOM_CDATAIsAncestorObjectOf false

RemoveContent false

SetContent 現行の PBDOM_CDATASetName false

116 PowerBuilder

Page 133: · PDF file(PBDOM : PowerBuilder Document Object Model

第 7 章 PBDOM_CDATA クラス

Append機能 PBDOM_CHARACTERDATA オブジェク ト の入力文字列または入力テ

キス ト データを、 現行の PBDOM_CDATA オブジェク ト内にすでに存在しているテキス ト内容に追加します。

構文 pbdom_cdata_name.Append(string strAppend)

pbdom_cdata_name.Append(pbdom_characterdata pbdom_characterdata_ref)

戻り値 PBDOM_CHARACTERDATA

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_CHARACTERDATA が PBDOM_CHARACTERDATA から派生したオブジェク ト への参照でない場合。 こ の場合には、 2 番目の構文を適用する

Clone機能 現行の PBDOM_CDATA のクローンを作成して返します。

構文 pbdom_cdata_name.Clone(boolean bDeep)

戻り値 PBDOM_OBJECT。 PBDOM_OBJECT に格納されている現行の PBDOM_CDATA のクローンです。

引数 説明

pbdom_cdata_name PBDOM_CDATA の名前

strAppend 現行の PBDOM_CDATA オブジェク トの既存テキス トに追加する文字列

pbdom_characterdata_ref 現行の PBDOM_CDATA オブジェク トの既存テキス ト に追加するテキス ト データが含まれている、 参照される PBDOM_CHARACTERDATAオブジェク ト

引数 説明

pbdom_cdata_name PBDOM_CDATA の名前 bDeep 詳細クローンを返すか、 簡易クローンを返すか

を指定する Boolean 型の値。 指定する値は、 詳細クローンの場合は true、 簡易クローンの場合は false。 この引数は現在無視される

PowerBuilder エクステンシ ョ ン リファレンス 117

Page 134: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CDATA

例 次の例では、 複製された PBDOM_CDATA オブジェク ト について、 次の特性を調べます。

• 元の PBDOM_CDATA オブジェク ト と複製された PBDOM_CDATAオブジェク トの内容がまった く同一であるこ と

• 複製された PBDOM_CDATA には初期状態では親オブジェク トがないこ と

• 複製された PBDOM_CDATA は、初期状態では元のオブジェク ト と同じオーナー文書内に格納されているこ と

PBDOM_BUILDER pbdom_buildrPBDOM_DOCUMENT pbdom_docPBDOM_CDATA pbdom_cdatPBDOM_OBJECT pbdom_obj_array[]string strXML = "<!DOCTYPE root [<!ELEMENT root (#PCDATA)>]><root><![CDATA[This is a CDATA Section.]]></root>"

try

// strXML に基づいた PBDOM_DOCUMENT を作成します。pbdom_buildr = Create PBDOM_BUILDERpbdom_doc = pbdom_buildr.BuildFromString(strXML)

// ルート要素の内容を取得します。pbdom_doc.GetRootElement().GetContent(pbdom_obj_array)

// ルート要素に含まれているのが 1 つの子オブジェク トのみであるかどうかを調べます。if (UpperBound(pbdom_obj_array) = 1) then

MessageBox ("正しい ", "ルート要素は 1 子オブジェク トのみ含んでいます。 ")else

MessageBox ("不正 ", "ルート要素に子オブジェク トは 1 つだけです。 ")end if

// ルート要素の唯一の子のクローンを作成します。pbdom_cdat = pbdom_obj_array[1].Clone(true)

// クローンが PBDOM_CDATA オブジェク トであるかどうかを調べます。if (pbdom_cdat.GetObjectClassString() = "pbdom_cdata") then

MessageBox ("正しい ", &

" クローン後、 先頭の子は確かに PBDOM_CDATA オブジェク トです。 ")else

MessageBox ("不正 ", " クローン後、 先頭の子は " &+ pbdom_cdat.GetObjectClassString()

+ " オブジェク トであるべきです。 ")end if

118 PowerBuilder

Page 135: · PDF file(PBDOM : PowerBuilder Document Object Model

第 7 章 PBDOM_CDATA クラス

// クローンが CDATA セクシ ョ ンであるかどうかを調べます。if (pbdom_cdat.GetText() = "This is a CDATA Section.") then

MessageBox ("正しい ", " クローンのテキスト内容は正しいです。 ")else

MessageBox ("不正 ", " クローンのテキスト内容 : [" &+ pbdom_cdat.GetText() + "]は、 不正です。 ")

end if

// クローンには親がないことを確認します。if (Not IsValid(pbdom_cdat.GetParentObject())) then

MessageBox ("正しい ", " クローンには親がありません。 ")else

MessageBox ("不正 ", " クローンには親があってはいけません。 ")end if

// クローンのオーナー文書が// 元のオーナー文書と同じであるかどうかテスト します。if (pbdom_cdat.GetOwnerDocumentObject() = pbdom_doc) then

MessageBox ("正しい ", " クローンのオーナー文書は正しいです。 ")else

MessageBox ("不正 ", " クローンのオーナー文書は不正です。 ")end if

catch (PBDOM_EXCEPTION pbdom_except)MessageBox ("PBDOM_EXCEPTION", pbdom_except.GetMessage())

end try

解説 Clone メ ソ ッ ドは、元の PBDOM_CDATA オブジェク トのク ローンであり、 かつ独立したオブジェク ト である、 新しい PBDOM_CDATA を作成します。 PBDOM_CDATA オブジェ ク ト には子 PBDOM_OBJECT のサブツ リーが含まれていないため、PBDOM_CDATA のクローンは、詳細ク ローンと簡易クローンのどちらを呼び出したかに関係なく、 必ず元の PBDOM_CDATA と同じものにな り ます。

PBDOM_CDATA のクローンには親はあ り ません。ただし、 ク ローンは元の PBDOM_CDATA と同じ PBDOM_DOCUMENT に格納され、 元のPBDOM_CDATA がスタンドアロンのと きは、ク ローンもスタンドアロンです。

PowerBuilder エクステンシ ョ ン リファレンス 119

Page 136: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CDATA

Detach機能 PBDOM_CDATA をその親 PBDOM_OBJECT から切り離します。

構文 pbdom_cdata_name.Detach()

戻り値 PBDOM_OBJECT。 親から切り離された現行の PBDOM_CDATA です。

解説 現行の PBDOM_CDATA オブジェ ク ト に親がない場合は、 何も修正は行われません。

Equals機能 現行の PBDOM_CDATA と参照される PBDOM_OBJECT が同じである

かど うかを調べます。

構文 pbdom_cdata_name.Equals(pbdom_object pbdom_object_ref)

戻り値 Boolean 型。 現行の PBDOM_CDATA オブジェク トが参照される PBDOM_OBJECT と同じである場合は true を返し、 それ以外の場合は false を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_OBJECT が PBDOM_OBJECT から派生したオブジェク トへの参照でない場合

解説 参照される PBDOM_OBJECT も派生した PBDOM_CDATA オブジェクトであ り、現行の PBDOM_CDATA と同じ DOM オブジェク ト を参照している場合にのみ、 True が返されます。 たとえば、 別々に作成された2 つの PBDOM_CDATA オブジェ ク ト にまった く同じテキス ト が含まれていても、 同じものとはいえません。

引数 説明

pbdom_cdata_name PBDOM_CDATA の名前

引数 説明

pbdom_cdata_name PBDOM_CDATA の名前

pbdom_object_ref 現行の PBDOM_CDATA と同じであるかど うかを調べる PBDOM_OBJECT

120 PowerBuilder

Page 137: · PDF file(PBDOM : PowerBuilder Document Object Model

第 7 章 PBDOM_CDATA クラス

GetObjectClass機能 現行の PBDOM_OBJECT のク ラスを示す Long 型の整数値コードを返

します。

構文 pbdom_object_name.GetObjectClass()

戻り値 Long 型。 現行の PBDOM_OBJECT のク ラ スを示す Long 型の整数値コードを返します。pbdom_object_name が PBDOM_CDATA オブジェクトのと きは、 戻り値は 8 です。

関連項目 GetObjectClassString

GetObjectClassString機能 PBDOM_OBJECT のク ラスを文字列で返します。

構文 pbdom_object_name.GetObjectClassString()

戻り値 String 型。 現行の PBDOM_OBJECT のク ラスを示す文字列を返します。pbdom_object_name が PBDOM_CDATA オブジェク トのと きは、返される文字列は 「pbdom_cdata」 です。

関連項目 GetObjectClass

GetOwnerDocumentObject機能 現行の PBDOM_CDATA を所有している PBDOM_DOCUMENT を返し

ます。

構文 pbdom_cdata_name.GetOwnerDocumentObject()

戻り値 PBDOM_OBJECT

解説 所有している PBDOM_DOCUMENT がない場合は、 null が返されます。

引数 説明

pbdom_object_name PBDOM_OBJECT の名前

引数 説明

pbdom_object_name PBDOM_OBJECT の名前

引数 説明

pbdom_cdata_name PBDOM_CDATA の名前

PowerBuilder エクステンシ ョ ン リファレンス 121

Page 138: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CDATA

関連項目 GetParentObjectSetParentObject

GetParentObject機能 PBDOM_CDATA の親 PBDOM_OBJECT を返します。親がない場合は、

null を返します。

構文 pbdom_cdata_name.GetParentObject()

戻り値 PBDOM_OBJECT

関連項目 GetOwnerDocumentObjectSetParentObject

GetText機能 現行の PBDOM_CDATA オブジェ ク ト 内に格納されているテキス ト

データを返します。

構文 pbdom_cdata_name.GetText()

戻り値 String 型。 現行の PBDOM_CDATA オブジェク トのテキス ト内容です。

関連項目 GetTextNormalizeGetTextTrimSetText

引数 説明

pbdom_cdata_name PBDOM_CDATA の名前

引数 説明

pbdom_cdata_name PBDOM_CDATA の名前

122 PowerBuilder

Page 139: · PDF file(PBDOM : PowerBuilder Document Object Model

第 7 章 PBDOM_CDATA クラス

GetTextNormalize機能 現行の PBDOM_CDATA オブジェ ク ト 内に格納されているテキス ト

データを、 テキス ト前後の空白文字をすべて削除し、 テキス ト内の空白文字を半角スペース 1 つに正規化して返します。

構文 pbdom_cdata_name.GetTextNormalize()

戻り値 String 型

解説 現行の PBDOM_OBJECT にテキス ト値が含まれていない場合、 または含まれているのが空白文字のみである場合は、空の文字列を返します。

関連項目 GetTextGetTextTrimSetText

GetTextTrim機能 現行の PBDOM_CDATA オブジェ ク ト のテキス ト内容を、 前後の空白

文字をすべて削除して返します。

構文 pbdom_cdata_name.GetTextTrim()

戻り値 String 型

解説 現行の PBDOM_CDATA にテキス ト値が含まれていない場合、 または含まれているのが空白文字のみである場合は、空の文字列を返します。

関連項目 GetTextGetTextNormalizeSetText

引数 説明

pbdom_cdata_name PBDOM_CDATA の名前

引数 説明

pbdom_cdata_name PBDOM_CDATA の名前

PowerBuilder エクステンシ ョ ン リファレンス 123

Page 140: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CDATA

SetParentObject機能 参照される PBDOM_OBJECT を現行の PBDOM_CDATA の親と して設

定します。

構文 pbdom_cdata_name.SetParentObject(pbdom_object pbdom_object_ref)

戻り値 PBDOM_OBJECT

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_OBJECT が PBDOM_OBJECT から派生したオブジェク トへの参照でない場合

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 現行の PBDOM_CDATA にすでに親がある場合

EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT ― 入力されたPBDOM_OBJECT が、PBDOM_CDATA ク ラス と正当な親子関係を持たないク ラスのオブジェク トである場合

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 入力された PBDOM_OBJECT にユーザ定義名が必要であっても、 名前が付いていない場合

解説 現行の PBDOM_CDATA の親と して設定する PBDOM_OBJECT は、 正当な親子関係を持っている必要があ り ます。 このよ う な親子関係がない場合は、例外が送出されます。PBDOM_CDATA オブジェク トの親として設定できるのは、 PBDOM_ELEMENT オブジェク トだけです。

関連項目 GetParentObject

引数 説明

pbdom_cdata_name PBDOM_CDATA の名前

pbdom_object_ref 現行の PBDOM_CDATA オブジェク トの親と して設定する PBDOM_OBJECT

124 PowerBuilder

Page 141: · PDF file(PBDOM : PowerBuilder Document Object Model

第 7 章 PBDOM_CDATA クラス

SetText機能 入力された文字列を、 現行の PBDOM_CDATA オブジェ ク トのテキス

ト内容と して設定します。

構文 pbdom_cdata_name.SetText(string strSet)

戻り値 PBDOM_CHARACTERDATA。 修正されて PBDOM_CHARACTERDATA オブジェク ト と して返された PBDOM_CDATA です。

関連項目 GetTextGetTextNormalizeGetTextTrim

引数 説明

pbdom_cdata_name PBDOM_CDATA の名前

strSet PBDOM_CDATA のテキス ト と して設定する文字列

PowerBuilder エクステンシ ョ ン リファレンス 125

Page 142: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CDATA

126 PowerBuilder

Page 143: · PDF file(PBDOM : PowerBuilder Document Object Model

第 8 章 PBDOM_ENTITYREFERENCE クラス

この章について この章では、PBDOM_ENTITYREFERENCE ク ラスについて説明します。

PBDOM_ENTITYREFERENCE機能 PBDOM_ENTITYREFERENCE ク ラ スは、 XML エンティ ティ 参照

ノ ード の動作を定義します。 こ のク ラスを使用すると 、 要素ノ ード と属性ノード内にエンティティ参照を挿入できます。PBDOM_ENTITYREFERENCE ク ラ スは PBDOM_OBJECT から 派生しています。

メ ソ ッ ド PBDOM_OBJECT から継承されたメ ソ ッ ドの中には、 意味のある用途を持たず、 デフォル トの機能や重要でない機能しか実行しないものもあ り ます。 これらのメ ソ ッ ドについて、 次の表で説明します。

メ ソ ッ ド 戻り値

AddContent 現行の PBDOM_ENTITYREFERENCEGetContent false

GetText 空の文字列

GetTextNormalize 空の文字列

GetTextTrim 空の文字列

HasChildren false

InsertContent 現行の PBDOM_ENTITYREFERENCEIsAncestorObjectOf false

RemoveContent false

SetContent 現行の PBDOM_ENTITYREFERENCE

PowerBuilder エクステンシ ョ ン リファレンス 127

Page 144: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ENTITYREFERENCE

PBDOM_ENTITYREFERENCE ク ラスには、次の重要なメ ソ ッ ドがあ ります。

CloneDetachEqualsGetNameGetObjectClassGetObjectClassStringGetOwnerDocumentObjectGetParentObjectSetNameSetParentObject

Clone機能 現行の PBDOM_ENTITYREFERENCE オブジェク ト のク ローンを作成

して返します。

構文 pbdom_entityref_name.Clone(boolean bDeep)

戻り値 PBDOM_OBJECT。 PBDOM_OBJECT に格納されている現行の PBDOM_ENTITYREFERENCE オブジェク トのク ローンです。

例 次の例では、 XML 文書に含まれている文字列に基づいて PBDOM_DOCUMENT を作成し、DOCTYPE で定義された ENTITY my_er を参照する PBDOM_ENTITYREFERENCE オブジェク ト を作成します。DOCTYPE は、 ルート要素が child という名前が付いた子要素を含まないか、 または 1 つ以上含まなければならないこ と と 、 それぞれの子には解析済みの文字データだけを含めるこ と ができるこ と も 示しています。

FOR ループで 10 個の子要素を作成し、 新規作成した pbdom_er のクローンを各子要素に挿入します。 同じオブジェク ト を複数の親を持つ子と して挿入するこ とはできないため、 ク ローンを使用する必要があり ます。

引数 説明

pbdom_entityref_name PBDOM_ENTITYREFERENCE オブジェ ク ト の名前

bDeep 詳細クローンを返すか、簡易クローンを返すかを指定する Boolean 型の値。指定する値は、詳細クローンの場合は true、 簡易ク ローンの場合は false。 このパラ メータは現在無視される

128 PowerBuilder

Page 145: · PDF file(PBDOM : PowerBuilder Document Object Model

第 8 章 PBDOM_ENTITYREFERENCE クラス

PBDOM_BUILDER pbdom_buildrPBDOM_DOCUMENT pbdom_docPBDOM_ENTITYREFERENCE pbdom_erstring strXML = "<!DOCTYPE root [<!ELEMENT root (child)*><!ELEMENT child (#PCDATA)><!ENTITY my_er ~"MY ENTITY~">]><root/>"long l = 0

TRYpbdom_buildr = Create PBDOM_BUILDERpbdom_doc = pbdom_buildr.BuildFromString(strXML)pbdom_er = Create PBDOM_ENTITYREFERENCEpbdom_er.SetName("my_er")

// ルート要素の子要素を 10 個作成します。for l = 1 to 10

PBDOM_ELEMENT pbdom_elem_child

pbdom_elem_child = Create PBDOM_ELEMENTpbdom_elem_child.SetName("child")

// pbdom_er のクローンを内容として追加します。pbdom_elem_child.AddContent(pbdom_er.Clone(true))

pbdom_doc.GetRootElement(). &AddContent(pbdom_elem_child)

next

pbdom_doc.SaveDocument("clone_er.xml")CATCH(PBDOM_EXCEPTION pbdom_e)

MessageBox ("PBDOM_EXCEPTION", pbdom_e.GetMessage())END TRY

PBDOM_DOCUMENT オブジェク ト をシ リ アライズする と、次の XML文書が作成されます。

<!DOCTYPE root [<!ELEMENT root (child)*><!ELEMENT child (#PCDATA)*><!ENTITY my_er "MY ENTITY">]> <root> <child>MY ENTITY</child> <child>MY ENTITY</child> <child>MY ENTITY</child> <child>MY ENTITY</child> <child>MY ENTITY</child>

PowerBuilder エクステンシ ョ ン リファレンス 129

Page 146: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ENTITYREFERENCE

<child>MY ENTITY</child> <child>MY ENTITY</child> <child>MY ENTITY</child> <child>MY ENTITY</child> <child>MY ENTITY</child> </root>

解説 Clone メ ソ ッ ドは、 元のオブジェク トの複製である PBDOM_ENTITYREFERENCE オブジェク ト を新規作成します。PBDOM_ENTITYREFERENCE オブジェク ト には子 PBDOM_OBJECT を含めるこ と ができないため、 PBDOM_ENTITYREFERENCE オブジェクト の下にはサブツリ ーはあり ません。 したがって、PBDOM_ENTITYREFERENCE オブジェク ト の簡易ク ローンと 詳細クローンには構造的な違いはあ り ません。

このメ ソッ ド では、 何度もエンティ ティ 参照ノ ード を使う こ と ができます。 PBDOM_ENTITYREFERENCE オブジェク ト を複数の PBDOM_OBJECT の子と して追加するこ とはできませんが、PBDOM_ENTITYREFERENCE オブジェク トのク ローンを作成して、そのクローンをほかの PBDOM_OBJECT の子と して追加するこ とができます。

PBDOM_ENTITYREFERENCE のクローンには親はあ り ません。 ただし、 ク ローンは元の PBDOM_ENTITYREFERENCE と同じ PBDOM_DOCUMENT に格納されます。 元の PBDOM_ENTITYREFERENCE オブジェク ト がスタンド アロンのと きは、 ク ローンもスタンドアロンです。

Detach機能 PBDOM_ENTITYREFERENCE オブジェ ク ト をその親 PBDOM_OBJECT

から切り 離します。

構文 pbdom_entityref_name.Detach()

戻り値 PBDOM_OBJECT。 親から切り離された現行の PBDOM_ENTITYREFERENCE オブジェク トです。

解説 現行の PBDOM_ENTITYREFERENCE オブジェ ク ト に親がない場合は、 何も修正は行われません。

引数 説明

pbdom_entityref_name PBDOM_ENTITYREFERENCE オブジェ ク ト の名前

130 PowerBuilder

Page 147: · PDF file(PBDOM : PowerBuilder Document Object Model

第 8 章 PBDOM_ENTITYREFERENCE クラス

Equals機能 現行の PBDOM_ENTITYREFERENCE オブジェク ト と参照される

PBDOM_OBJECT が同じであるかど うかを調べます。

構文 pbdom_entityref_name.Equals(pbdom_object pbdom_object_ref)

戻り値 Boolean 型。現行の PBDOM_ENTITYREFERENCE オブジェク トが入力された PBDOM_OBJECT と同じである場合は true を返し、 それ以外の場合は false を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_OBJECT が、 PBDOM_OBJECT から派生したオブジェク トでない場合

解説 このメ ソ ッ ドは、 参照される PBDOM_OBJECT が派生した PBDOM_ENTITYREFERENCE オブジェク トでもあ り、 かつ現行の PBDOM_ENTITYREFERENCE オブジェク ト と 同じ DOM オブジェク トを参照している場合にのみ、 true を返します。 たと えば、 別々に作成された 2 つの PBDOM_ENTITYREFERENCE オブジェク トにまった く同じテキス トが含まれていても、 同じものとはいえません。

GetName機能 現行の PBDOM_ENTITYREFERENCE オブジェク トの名前を取得しま

す。

構文 pbdom_entityref_name.GetName()

戻り値 String 型

関連項目 SetName

引数 説明

pbdom_entityref_name PBDOM_ENTITYREFERENCE オブジェク ト の名前

引数 説明

pbdom_entityref_name PBDOM_ENTITYREFERENCE オブジェク ト の名前

PowerBuilder エクステンシ ョ ン リファレンス 131

Page 148: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ENTITYREFERENCE

GetObjectClass機能 現行の PBDOM_OBJECT のク ラスを示す Long 型の整数値コードを返

します。

構文 pbdom_object_name.GetObjectClass()

戻り値 Long 型。 現行の PBDOM_OBJECT のク ラスを示すコードを返します。pbdom_object_name が PBDOM_ENTITYREFERENCE オブジェ ク ト のと きは、 戻り値は 11 です。

関連項目 GetObjectClassString

GetObjectClassString機能 PBDOM_OBJECT のク ラスを文字列で返します。

構文 pbdom_object_name.GetObjectClassString()

戻り値 String 型。 現行の PBDOM_OBJECT のク ラスを示す文字列を返します。pbdom_object_name が PBDOM_ENTITYREFERENCE オブジェ ク ト のと きは、 返される文字列は 「pbdom_entityreference」 です。

関連項目 GetObjectClass

GetOwnerDocumentObject機能 現行の PBDOM_ENTITYREFERENCE オブジェク ト を所有している

PBDOM_DOCUMENT を返します。

構文 pbdom_entityref_name.GetOwnerDocumentObject()

戻り値 PBDOM_DOCUMENT

解説 所有している PBDOM_DOCUMENT がない場合は、 null を返します。

引数 説明

pbdom_object_name PBDOM_OBJECT の名前

引数 説明

pbdom_object_name PBDOM_OBJECT の名前

引数 説明

pbdom_entityref_name PBDOM_ENTITYREFERENCE オブジェク ト の名前

132 PowerBuilder

Page 149: · PDF file(PBDOM : PowerBuilder Document Object Model

第 8 章 PBDOM_ENTITYREFERENCE クラス

関連項目 GetParentObjectSetParentObject

GetParentObject機能 現行の PBDOM_ENTITYREFERENCE オブジェク トの親

PBDOM_OBJECT を返します。

構文 pbdom_entityref_name.GetParentObject()

戻り値 PBDOM_OBJECT

解説 GetParentObject メ ソ ッ ドは、 現行の PBDOM_ENTITYREFERENCE オブジェク トの親 PBDOM_OBJECT を返します。PBDOM_ENTITYREFERENCE オブジェク トに親がない場合は、 null を返します。

関連項目 GetOwnerDocumentObjectSetParentObject

SetName機能 PBDOM_ENTITYREFERENCE オブジェ ク ト がほかの DOM エンテ ィ

ティ オブジェク ト を効果的に参照するよ うに、 このオブジェク トの名前を変更します。

構文 pbdom_entityref_name.SetName(string strName)

戻り値 Boolean 型。現行の PBDOM_ENTITYREFERENCE オブジェク トの名前が変更された場合は true を返し、変更されなかった場合は false を返します。

関連項目 GetName

引数 説明

pbdom_entityref_name PBDOM_ENTITYREFERENCE オブジェク ト の名前

引数 説明

pbdom_entityref_name PBDOM_ENTITYREFERENCE オブジェク ト の名前

strName 現行の PBDOM_ENTITYREFERENCE オブジェ クトに設定する新しい名前

PowerBuilder エクステンシ ョ ン リファレンス 133

Page 150: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ENTITYREFERENCE

SetParentObject機能 参照される PBDOM_OBJECT を、 現行の PBDOM_ENTITYREFERENCE

オブジェク ト の親と して設定します。

構文 pbdom_entityref_name.SetParentObject(pbdom_object pbdom_object_ref)

戻り値 PBDOM_OBJECT

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_OBJECT が、 PBDOM_OBJECT から派生したオブジェク トでない場合

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 現行の PBDOM_ENTITYREFERENCE オブジェク ト にすでに親がある場合

EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT ― 入力されたPBDOM_OBJECT が、PBDOM_ENTITYREFERENCE ク ラス と正当な親子関係を持たないク ラスのオブジェク トである場合

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 入力された PBDOM_OBJECT はユーザ定義名が必要であるが、 名前が付いていない場合、 またはエンティティ参照オブジェク トの名前が設定されていない場合

解説 このメ ソ ッ ドは、 入力された PBDOM_OBJECT を現行の PBDOM_ENTITYREFERENCE オブジェク トの親と して設定します。呼び出し側には、現行の PBDOM_ENTITYREFERENCE と 入力さ れた PBDOM_OBJECT に正当な親子関係があるこ とを確認する責任があ ります。 現在、 PBDOM_ENTITYREFERENCE オブジェク ト の親と して設定できるのは、 PBDOM_ELEMENT と PBDOM_ATTRIBUTE だけです。

関連項目 GetOwnerDocumentObjectGetParentObject

引数 説明

pbdom_entityref_name PBDOM_ENTITYREFERENCE オブジェク ト の名前

pbdom_object_ref 現行の PBDOM_ENTITYREFERENCE オブジェ クトの親と して設定する PBDOM_OBJECT

134 PowerBuilder

Page 151: · PDF file(PBDOM : PowerBuilder Document Object Model

第 9 章 PBDOM_CHARACTERDATA クラス

この章について この章では、 PBDOM_CHARACTERDATA ク ラスについて説明します。

PBDOM_CHARACTERDATA機能 PBDOM_CHARACTERDATA ク ラスは、XML 文書内の文字ベース

の内容 (マークアップではない) を表します。 このク ラスは、 特に DOM の文字データの操作を目的 と し た一連の メ ソ ッ ド でPBDOM_OBJECT ク ラスを拡張します。

PBDOM_CHARACTERDATA ク ラスは、 次の 3 つの PBDOM ク ラスの親ク ラスです。

• PBDOM_TEXT

• PBDOM_CDATA

• PBDOM_COMMENT

PBDOM_CHARACTERDATA ク ラスは、 その親ク ラスである PBDOM_OBJECT のよう に 「仮想」 クラスです。 「仮想」 ク ラスは、仮想 C++ ク ラス と同様、 直接インスタンス化して使用するものではあ り ません。

たとえば、 次のスク リプ ト例では、 pbdom_chrdata のテキス ト を設定しよ う とする と、 例外が発生します。

PBDOM_CHARACTERDATA pbdom_chrdatapbdom_chrdata = CREATE PBDOM_CHARACTERDATA

pbdom_chrdata.SetText ("文字列 ")// エラー発生

この例では、pbdom_chrdata は PBDOM_CHARACTERDATA と して宣言されていますが、 PBDOM_TEXT と してインスタンス化されているため、 pbdom_chrdata のテキス ト を設定しよ う とする試みは成功します。

PBDOM_CHARACTERDATA pbdom_chrdatapbdom_chrdata = CREATE PBDOM_TEXT

pbdom_chrdata.SetText ("文字列 ")//正常に実行される

PowerBuilder エクステンシ ョ ン リファレンス 135

Page 152: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CHARACTERDATA

メ ソ ッ ド PBDOM_OBJECT から継承されたメ ソ ッ ドの中には、 意味のある用途を持たず、 デフォルトの機能や重要でない機能しか実行しないものもあ り ます。 これらのメ ソ ッ ドについて、 次の表で説明します。

PBDOM_CHARACTERDATA ク ラスには、 次の重要なメ ソ ッ ドがあ ります。

AppendCloneDetachEqualsGetNameGetObjectClassGetObjectClassStringGetOwnerDocumentObjectGetParentObjectGetTextGetTextNormalizeGetTextTrimHasChildrenIsAncestorObjectOfSetParentObjectSetText

メ ソ ッ ド 戻り値

AddContent 現行の PBDOM_CHARACTERDATAGetContent false

InsertContent 現行の PBDOM_CHARACTERDATARemoveContent false

SetContent 現行の PBDOM_CHARACTERDATASetName false

136 PowerBuilder

Page 153: · PDF file(PBDOM : PowerBuilder Document Object Model

第 9 章 PBDOM_CHARACTERDATA クラス

Append機能 Append メ ソ ッ ドは、 次のよ うに上書きされます。

• 構文 1 は、入力された文字列を、現行の PBDOM_CHARACTERDATAオブジェク ト 内にすでに格納さ れているテキスト 内容に追加します。

• 構文 2 は、 PBDOM_CHARACTERDATA オブジェク トのテキス トデータを、 現行の PBDOM_CHARACTERDATA オブジェク ト内にすでに格納されているテキス ト内容に追加します。

構文

Append 構文 1機能 入力された文字列を、 現行の PBDOM_CHARACTERDATA オブジェク

ト内にすでに格納されているテキス ト内容に追加します。

構文 pbdom_text_name.Append(string strAppend)

戻り値 PBDOM_CHARACTERDATA。修正されて PBDOM_CHARACTERDATA オブジェク ト と して返された、 現行の PBDOM_CHARACTERDATA です。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_CHARACTERDATA オブジェク トが PBDOM_CHARACTERDATA から派生したオブジェク トへの参照でない場合

例 次の例では、 以下の DOM ツ リーに基づいて PBDOM_DOCUMENT を作成します。

<abc><data>

<child_1>My Text

構文 参照先

Append(string strAppend) Append 構文 1Append(pbdom_characterdata pbdom_characterdata_ref)

Append 構文 2

引数 説明

pbdom_text_name PBDOM_CHARACTERDATA オブジェク ト の名前を指定

strAppend 現行の PBDOM_CHARACTERDATA オブジェク トの既存テキス トに追加する文字列を指定

PowerBuilder エクステンシ ョ ン リファレンス 137

Page 154: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CHARACTERDATA

</child_1><child_2>

<!--My Comment--></child_2><child_3>

<![CDATA[My CDATA]]></child_3>

</data></abc>

ルート要素 abc には子要素 data があ り、 これにはさ らに 3 つの子要素が含まれています。 child_1 は、 文字列 「My Text」 が格納された子PBDOM_TEXT です。 child_2 は、 文字列 「My Comment」 が格納された子 PBDOM_COMMENT です。 child_3 は、 文字列 「My CDATA」 が格納された子 PBDOM_CDATA です。

次のスク リプ トでは、 コ メン ト 「// child_1 の子 PBDOM_TEXT を取得

します。」 の後に続く 1 ステート メン トで次のこ とを実行しています。

1 GetRootElement を使って、 PBDOM_DOCUMENT pbdom_doc のルート要素を取得します。 ルート要素 abc を表す新しい PBDOM_ELEMENT を メモ リに作成して返します。

2 データをパラ メ ータ と して使用して、返さ れたルート 要素 abc の PBDOM_ELEMENT に対して GetChildElement メ ソ ッ ド を呼び出して、 データの子要素を選択します。 データ要素を表す PBDOM_ELEMENT を メモ リに作成して返します。

3 child_1 をパラ メータ と して使用して、 返されたデータ PBDOM_ELEMENT に対して GetChildElement メ ソ ッ ド を呼び出して、 child_1 の子要素を選択します。 child_1 要素を表す PBDOM_ELEMENT を メモ リに作成して返します。

4 可変長配列 pbdom_chardata_array への参照を指定して、 返された child_1 PBDOM_ELEMENT に対して GetContent メ ソ ッ ド を呼び出します。

PBDOM_CHARACTERDATA は PBDOM_OBJECT のサブク ラスなので、 PBDOM_OBJECT 配列のかわり に PBDOM_CHARACTERDATA 配列を指定すること ができます。 ただし、 child_1 に PBDOM_CHARACTERDATA オブジェク ト 以外のオブジェク ト が含まれている場合は、 GetContent は失敗します。

child_1 に格納されているのは文字列 「My Text」 を含む PBDOM_TEXTだけであるので、 このステート メン トは項目が 1 つだけ含まれた配列を返します。 次のステート メ ン トで、 この配列項目に別の文字列を追加し ます。 次に、 child_2 と child_3 についても同じ手順を繰 り 返し、pbdom_doc をファ イルに保存します。

138 PowerBuilder

Page 155: · PDF file(PBDOM : PowerBuilder Document Object Model

第 9 章 PBDOM_CHARACTERDATA クラス

PBDOM_Builder pbdombuilder_newpbdom_document pbdom_docPBDOM_CHARACTERDATA pbdom_chardata_array[]

string strXML = "<abc><data><child_1>My Text</child_1><child_2><!--My Comment--></child_2><child_3><![CDATA[My CDATA]]></child_3></data></abc>"

TRYpbdombuilder_new = Create PBDOM_Builderpbdom_doc = pbdombuilder_new.BuildFromString (strXML)

// child_1 の子 PBDOM_TEXT を取得します。pbdom_doc.GetRootElement().GetChildElement("data").&

GetChildElement("child_1"). &GetContent(pbdom_chardata_array)

// 文字列 「Now Appended」 を、 GetContent を呼び出して返された// テキストに追加します。

pbdom_chardata_array[1].Append (" Now Appended")

// child_2 と child_3 についてもこの手順を繰り返します。pbdom_doc.GetRootElement().GetChildElement("data").&

GetChildElement("child_2"). &GetContent(pbdom_chardata_array)

pbdom_chardata_array[1].Append (" Now Appended")

pbdom_doc.GetRootElement().GetChildElement("data").&GetChildElement("child_3"). &GetContent(pbdom_chardata_array)

pbdom_chardata_array[1].Append (" Now Appended")

// pbdom_doc をファイルに保存します。pbdom_doc.SaveDocument ("c:\pbdom_doc_1.xml")

Destroy pbdombuilder_new

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)

END TRY

PowerBuilder エクステンシ ョ ン リファレンス 139

Page 156: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CHARACTERDATA

保存されたファ イルには、 次の DOM ツ リーが格納されます。

<abc><data>

<child_1>My Text Now Appended

</child_1><child_2>

<!--My Comment Now Appended--></child_2><child_3>

<![CDATA[My CDATA Now Appended]]></child_3>

</data></abc>

Append 構文 2機能 PBDOM_CHARACTERDATA オブジェク トのテキス ト データを、 現行

の PBDOM_CHARACTERDATA オブジェク ト内にすでに格納されているテキス ト内容に追加します。

構文 pbdom_text_name.Append(pbdom_characterdata pbdom_characterdata_ref)

戻り値 PBDOM_CHARACTERDATA。修正されて PBDOM_CHARACTERDATAオブジェク ト と して返された、 現行の PBDOM_CHARACTERDATA です。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_CHARACTERDATA または入力さ れた PBDOM_CHARACTERDATA が、 PBDOM_CHARACTERDATA から派生したオブジェク ト への参照でない場合

引数 説明

pbdom_text_name PBDOM_CHARACTERDATA の名前を指定

pbdom_characterdata_ref 現行の PBDOM_CHARACTERDATA オブジェク トの既存テキス トに追加するテキス ト データが含まれている、 参照される PBDOM_CHARACTERDATA オブジェク ト を指定

140 PowerBuilder

Page 157: · PDF file(PBDOM : PowerBuilder Document Object Model

第 9 章 PBDOM_CHARACTERDATA クラス

解説 JDOM では、CHARACTERDATA ク ラスの Append メ ソ ッ ドは定義されていません。 PBDOM は、 基本の PBDOM_CHARACTERDATA ク ラスで Append メ ソ ッ ドを実装しています。 PBDOM_TEXT オブジェク ト 、PBDOM_CDATA オブジェク ト 、 および PBDOM_COMMENT オブジェク トはすべて PBDOM_CHARACTERDATA から派生したオブジェク トであるので、 その内部テキス ト データを相互に追加できます。

Clone機能 現行の PBDOM_CHARACTERDATA のクローンを作成して返します。

構文 pbdom_chardata_name.Clone(boolean bDeep)

戻り値 PBDOM_OBJECT

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_CHARACTERDATA が PBDOM_CHARACTERDATA から派生したオブジェク トへの参照でない場合

例 次の例では、 以下の DOM ツ リーに基づいて PBDOM_DOCUMENT を作成します。

<abc><data>Data</data>

</abc>

次のスク リプ ト例では、 ルート要素のデータ要素を PBDM_ELEMENTと して取得し、 その子の配列を取得し ます。 この配列には、 文字列「data」 を含む PBDOM_TEXT 1 項目だけが格納されます。

PBDOM_BUILDER pbdombuilder_newPBDOM_DOCUMENT pbdom_docPBDOM_ELEMENT pbdom_elemPBDOM_CHARACTERDATA pbdom_chardata_1PBDOM_CHARACTERDATA pbdom_chardata_2PBDOM_CHARACTERDATA pbdom_chardata_3PBDOM_OBJECT pbdom_obj_array[]string strXML = "<abc><data>Data</data></abc>"

引数 説明

pbdom_chardata_name PBDOM_CHARACTERDATA の名前を指定

bDeep 詳細クローンを返すか、 簡易クローンを返すかを指定する Boolean 型の値を指定。 指定する値は、 詳細クローンの場合は true、 簡易クローンの場合は false。 この引数は現在無視される

PowerBuilder エクステンシ ョ ン リファレンス 141

Page 158: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CHARACTERDATA

TRYpbdombuilder_new = CREATE PBDOM_BUILDERpbdom_doc = pbdombuilder_new.BuildFromString

(strXML)

// データ要素を取得して pbdom_elem に格納し、// その子の配列を取得します。

pbdom_elem = pbdom_doc.GetRootElement(). &GetChildElement("data")

pbdom_elem.GetContent(pbdom_obj_array)

こ の PBDOM_TEXT を、PBDOM_CHARACTERDATA オブジェク ト pbdom_chardata_1 に代入します。 pbdom_chardata_1 に対して GetObjectClassString を呼び出して、 そこ に格納さ れている実際のオブジェク ト pbdom_text のク ラ ス名を取得します。 pbdom_chardata_1 に対して GetText を呼び出して、 文字列 Data を取得します。

pbdom_chardata_1 = pbdom_obj_array[1]

MessageBox (" クラス ", &pbdom_chardata_1.GetObjectClassString())

MessageBox (" テキスト ", pbdom_chardata_1.GetText())

pbdom_chardata_1 に対して Clone を呼び出して、PBDOM_CHARACTERDATA オブジェク ト を新規作成します。 ただし、pbdom_chardata_1 が参照する実際のオブジェク ト は PBDOM_TEXT であるため、 ク ローンは PBDOM_TEXT オブジェク トにな り ます。

ク ローンに対して GetObjectClassString と GetText を呼び出すと、pbdom_chardata_1 の場合と 同じ結果になり ます。 ク ローンと 元のオブジェク トは別個のオブジェク トであ り、 Equals を呼び出すと false が返されます。

pbdom_chardata_2 = pbdom_chardata_1.Clone(TRUE)

MessageBox (" クラス ", &pbdom_chardata_2.GetObjectClassString())

MessageBox (" テキスト ", pbdom_chardata_2.GetText())

if (pbdom_chardata_1.Equals(pbdom_chardata_2)) thenMessageBox ("Equals", &

"pbdom_chardata_1 equals pbdom_chardata_2")elseMessageBox ("Equals", &

"pbdom_chardata_1 NOT equals pbdom_chardata_2")end if

142 PowerBuilder

Page 159: · PDF file(PBDOM : PowerBuilder Document Object Model

第 9 章 PBDOM_CHARACTERDATA クラス

ただし、pbdom_chardata_1 と比較するオブジェク トが pbdom_chardata_1への参照である場合は、 Equals を呼び出すと true が返されます。

pbdom_chardata_3 = pbdom_chardata_1if (pbdom_chardata_1.Equals(pbdom_chardata_3)) then

MessageBox ("Equals", &"pbdom_chardata_1 equals pbdom_chardata_3")

elseMessageBox ("Equals", &

"pbdom_chardata_1 NOT equals pbdom_chardata_3")end if

DESTROY pbdombuilder_new

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)END TRY

解説 Clone メ ソ ッ ド は、 元の PBDOM_CHARACTERDATA オブジェク ト の複製であ り、 かつ独立したオブジェク トである、 新しい PBDOM_CHARACTERDATA を作成します。こ れら 2 つのオブジェクト を使って Equals を呼び出すと、 false が返されます。

PBDOM_CHARACTERDATA オブジェク トには子 PBDOM_OBJECT のサブツ リーが含まれていないので、 PBDOM_CHARACTERDATA オブジェク トのク ローンは、 bDeep が true であるか false であるかにかかわらず、 必ず元のオブジェク ト と同じにな り ます。

PBDOM_CHARACTERDATA のク ローンには親はあ り ませんが、 元のオブジェ ク ト と同じ PBDOM_DOCUMENT に格納されており、 元のPBDOM_CHARACTERDATA がスタンドアロンのと きは、 ク ローンもスタンドアロンです。

Detach機能 PBDOM_CHARACTERDATA オブジェ ク ト をその親から切 り 離し ま

す。

構文 pbdom_chardata_name.Detach()

戻り値 PBDOM_OBJECT

引数 説明

pbdom_chardata_name PBDOM_CHARACTERDATA オブジェク トの名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 143

Page 160: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CHARACTERDATA

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_CHARACTERDATA が PBDOM_CHARACTERDATA から派生したオブジェク トへの参照でない場合

例 次の例では、 以下の DOM ツ リーに基づいて PBDOM_DOCUMENT を作成します。

<abc><data>Data</data>

</abc>

このスク リプ トでは、 ルート要素を取得し、 そのルート要素を使って子要素を取得してから、 子要素自体の子の配列を取得します。 この配列の項目は、 「Data」 と いう テキスト が格納された PBDOM_TEXT オブジェク ト 1 つだけです。 この配列には PBDOM_CHARACTERDATA から派生していないオブジェク トは含まれていないため、PBDOM_CHARACTERDATA オブジェク トにキャス トできます。

Detach を呼び出すと、 PBDOM_TEXT オブジェク トがその親 PBDOM_OBJECT である data から切り離されます。

PBDOM_Builder pbdombuilder_newpbdom_document pbdom_docpbdom_document pbdom_owner_docPBDOM_CHARACTERDATA pbdom_chardataPBDOM_OBJECT pbdom_obj_array[]string strXML = "<abc><data>Data</data></abc>"

TRYpbdombuilder_new = Create PBDOM_Builderpbdom_doc = pbdombuilder_new.BuildFromString

(strXML)

pbdom_doc.GetRootElement(). &GetChildElement("data"). &GetContent(pbdom_obj_array)

pbdom_chardata = pbdom_obj_array[1]pbdom_chardata.Detach()pbdom_doc.SaveDocument("c:\pbdom_doc_1.xml")Destroy pbdombuilder_new

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)END TRY

144 PowerBuilder

Page 161: · PDF file(PBDOM : PowerBuilder Document Object Model

第 9 章 PBDOM_CHARACTERDATA クラス

文書をファ イルに保存する と、 PBDOM_TEXT オブジェク トは data から削除されたので、 ファ イルの内容は次のよ うにな り ます。

<abc><data/>

</abc>

解説 PBDOM_CHARACTERDATA オブジェク ト に親がない場合は、 何も実行されません。

Equals機能 現行の PBDOM_CHARACTERDATA と参照される PBDOM_OBJECT が

同じであるかど うかを調べます。

構文 pbdom_chardata_name.Equals(pbdom_object pbdom_object_ref)

戻り値 Boolean 型。 現行の PBDOM_CHARACTERDATA が入力された PBDOM_OBJECT と同じである場合は true を返し、 それ以外の場合は false を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_CHARACTERDATA が PBDOM_CHARACTERDATA から派生したオブジェク トへの参照でない場合

解説 参照される PBDOM_OBJECT も派生した PBDOM_CHARACTERDATAオブジェク トであ り、現行の PBDOM_CHARACTERDATA と同じ DOMオブジェ ク ト を参照している場合にのみ、 true が返されます。 たとえば、別々に作成された 2 つの PBDOM_COMMENT オブジェク トにまったく同じテキス トが含まれていても、 同じ ものとはいえません。

関連項目 Clone

引数 説明

pbdom_chardata_name PBDOM_CHARACTERDATA オブジェク トの名前を指定

pbdom_object_ref 現行の PBDOM_CHARACTERDATA オブジェク ト と同じであるかど うかを調べる PBDOM_OBJECT への参照を指定

PowerBuilder エクステンシ ョ ン リファレンス 145

Page 162: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CHARACTERDATA

GetOwnerDocumentObject機能 現行の PBDOM_CHARACTERDATA を所有している

PBDOM_DOCUMENT を返します。

構文 pbdom_chardata_name.GetOwnerDocumentObject()

戻り値 PBDOM_OBJECT

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_CHARACTERDATA が、 派生した PBDOM_CHARACTERDATA ク ラスに関連付けられていない場合

例 例 1 次の例では、以下の DOM ツ リーに基づいて PBDOM_DOCUMENTを作成します。

<abc><data>Data</data>

</abc>

このスク リプ トでは、 ルート要素を取得し、 そのルート要素を使って子要素を取得してから、 子要素自体の子の配列を取得します。 この配列の項目は、 「Data」 と いう テキスト が格納さ れた PBDOM_TEXT オブジェク ト 1 つだけです。 この配列には PBDOM_CHARACTERDATA から派生していないオブジェク トは含まれていないため、PBDOM_CHARACTERDATA オブジェク トにキャス トできます。

GetOwnerDocumentObject を 呼び出し て、 pbdom_owner_doc と いうPBDOM_DOCUMENT に格納さ れている PBDOM_OBJECT を取得します。Equals を呼び出して、「Data」と いう PBDOM_TEXT のオーナー文書と 、 pbdom_doc で参照さ れる メ イ ン文書が、同じ文書を参照しているかどう かを調べます。

PBDOM_Builder pbdombuilder_newpbdom_document pbdom_docpbdom_document pbdom_owner_docpbdom_element pbdom_elemPBDOM_CHARACTERDATA pbdom_chardataPBDOM_OBJECT pbdom_obj_array[]string strXML = "<abc><data>Data</data></abc>"

TRYpbdombuilder_new = Create PBDOM_Builderpbdom_doc = pbdombuilder_new.BuildFromString

引数 説明

pbdom_chardata_name PBDOM_CHARACTERDATA オブジェ ク ト の名前を指定

146 PowerBuilder

Page 163: · PDF file(PBDOM : PowerBuilder Document Object Model

第 9 章 PBDOM_CHARACTERDATA クラス

(strXML)

pbdom_elem = pbdom_doc.GetRootElement(). &GetChildElement("data")

pbdom_elem.GetContent(pbdom_obj_array)

pbdom_chardata = pbdom_obj_array[1]

pbdom_owner_doc = &pbdom_chardata.GetOwnerDocumentObject()

if (pbdom_doc.Equals(pbdom_owner_doc)) thenMessageBox ("Equals", &

"pbdom_doc Equals pbdom_owner_doc")else

MessageBox ("Equals", &"pbdom_doc Not Equals pbdom_owner_doc")

end if

Destroy pbdombuilder_new

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)END TRY

例 2 次の例では、 例 1 と同じ DOM ツ リーに基づいて PBDOM_DOCUMENT を作成します。 PBDOM_TEXT を作成し 、 こ れを PBDOM_CHARACTERDATA 変数 pbdom_chardata に格納して、 これにテキスト 「Some Text」 を代入します。 この方法で作成されたオブジェク ト は、 スタンドアロン オブジェク ト 、 つま り、 オーナー文書や親を持たないオブジェク トです。 pbdom_chardata に対して GetOwnerDocumentObject を呼び出すと、 null が返されます。

次に、 pbdom_chardata を子と して data 要素に追加します。 これにより 、pbdom_chardata は自動的に元の文書にイ ンポート さ れます。 こ れで、pbdom_chardata はオーナー文書と 親(data要素)を持ちます。pbdom_chardataに対して GetOwnerDocumentObject を呼び出して、 元の文書を取得します。取得した PBDOM_DOCUMENT が pbdom_owner_doc に代入されていた場合は、 Equals を呼び出して pbdom_doc と pbdom_owner_doc を比較すると 、true が返されます。

PBDOM_Builder pbdombuilder_newpbdom_document pbdom_docpbdom_document pbdom_owner_docPBDOM_CHARACTERDATA pbdom_chardatastring strXML = "<abc><data>Data</data></abc>"

PowerBuilder エクステンシ ョ ン リファレンス 147

Page 164: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CHARACTERDATA

TRYpbdombuilder_new = Create PBDOM_Builderpbdom_doc = pbdombuilder_new.BuildFromString (strXML)

pbdom_chardata = Create PBDOM_TEXTpbdom_chardata.SetText(" Some Text")

if (IsValid (pbdom_chardata.GetOwnerDocumentObject())) then

MessageBox (" オーナー文書 ", &"PBDOM_TEXT (~'Some Text~') はすでにオーナー文書を持っています。 ")

else

MessageBox (" オーナー文書 ", &"PBDOM_TEXT (~'Some Text~') はオーナー文書を持っていません。 ")

end if

pbdom_doc.GetRootElement().GetChildElement("data"). &AddContent(pbdom_chardata)

pbdom_owner_doc = pbdom_chardata.GetOwnerDocumentObject()

if (pbdom_doc.Equals(pbdom_owner_doc)) thenMessageBox ("Equals", "pbdom_doc Equals pbdom_owner_doc")

elseMessageBox ("Equals", "pbdom_doc Not Equals pbdom_owner_doc")

end if

Destroy pbdombuilder_newDestroy pbdom_chardata

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)END TRY

解説 所有している PBDOM_DOCUMENT がない場合は、 null を返します。

関連項目 GetParentObjectSetParentObject

148 PowerBuilder

Page 165: · PDF file(PBDOM : PowerBuilder Document Object Model

第 9 章 PBDOM_CHARACTERDATA クラス

GetName機能 現行の PBDOM_CHARACTERDATA の名前を取得します。

構文 pbdom_chardata_name.GetName()

戻り値 String 型Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ―

現行の PBDOM_CHARACTERDATA が PBDOM_CHARACTERDATA から派生したオブジェク トへの参照でない場合

解説 返される文字列は、 PBDOM_CHARACTERDATA 内に含まれているDOM オブジェク トの種類に依存します。

注意

PBDOM_CHARACTERDATA は抽象クラスであり 、 それ自体のオブジェク ト へはインスタンス化されません。したがって、名前は「#characterdata」と しては返されません。

次の表に、 PBDOM_CHARACTERDATA 内に格納されている DOM オブジェク トの種類ごとの戻り値を示します。

引数 説明

pbdom_chardata_name PBDOM_CHARACTERDATA オブジェ ク ト の名前を指定

DOM オブジェク ト 戻り値

PBDOM_CDATA 「#cdata-section」PBDOM_COMMENT 「#comment」PBDOM_TEXT 「#text」

PowerBuilder エクステンシ ョ ン リファレンス 149

Page 166: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CHARACTERDATA

GetObjectClass機能 現行の PBDOM_OBJECT のク ラスを示す Long 型の整数値コードを返

します。

構文 pbdom_object_name.GetObjectClass()

戻り値 Long 型。 現行の PBDOM_OBJECT のク ラスを示す Long 型の整数値を返します。

PBDOM_CHARACTERDATA から継承される ク ラスについて、 有効な戻り値は次のとおりです。

• PBDOM_TEXT ク ラスは 7

• PBDOM_CDATA ク ラスは 8

• PBDOM_COMMENT ク ラスは 9

PBDOM_CHARACTERDATA ク ラス自体をインスタンス化するこ とはできないため、 PBDOM_CHARACTERDATA のク ラス ID 6 が返されるこ とはあ り ません。

関連項目 GetObjectClassString

GetObjectClassString機能 PBDOM_OBJECT のク ラスを文字列で返します。

構文 pbdom_object_name.GetObjectClassString()

戻り値 String 型。 現行の PBDOM_OBJECT のク ラスを示す文字列を返します。

PBDOM_CHARACTERDATA から継承される ク ラスについて、 有効な戻り値は次のとおりです。

• pbdom_text

• pbdom_cdata

• pbdom_comment

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

150 PowerBuilder

Page 167: · PDF file(PBDOM : PowerBuilder Document Object Model

第 9 章 PBDOM_CHARACTERDATA クラス

PBDOM_CHARACTERDATA ク ラス自体をインスタンス化するこ とはできないため、文字列 「pbdom_characterdata」 が返されるこ とはあ り ません。

例 次の例では、 以下の DOM ツ リーに基づいて PBDOM_DOCUMENT を作成します。

<abc><data>

Data with a &lt; character<!-- Comment with a &lt; character --><![CDATA[ CDATA with an actual > character and an entity reference &lt; ]]>

</data></abc>

このスク リ プト では、 ルート要素を取得し、 そのルート要素を使って子要素を取得してから、 子要素自体の子の配列を取得します。 この配列は3 つの PBDOM_OBJECT が配列と なったもので、 各 PBDOM_OBJECT はdata の子ノ ード です。 この配列には子ノ ード にアクセスして操作する機能があり ますが、 PBDOM_CHARACTERDATA ク ラ スの実際の性質と 、PBDOM_CHARACTERDATA ク ラスのメ ソ ッ ド の呼び出しについて説明するために、 次の例では PBDOM_CHARACTERDATA オブジェク ト の配列を定義します。

pbdom_obj_array の各配列項目がどのサブク ラスに属しているかを知る必要な し にその メ ソ ッ ド を 呼び出せ る よ う に、 各配列項目 をpbdom_chardata 配列に代入します。

子は PBDOM_CHARACTERDATA のサブクラスでなければならない

data 要素に PBDOM_CHARACTERDATA のサブク ラスでない子が含まれていた場合、 pbdom_obj_array の各項目を対応する pbdom_chardata の配列項目に代入する FOR ループ文は、サブク ラスでない子の項目に達したと きに失敗します。

MessageBox 呼び出しは、 エンティティ参照 &lt; が異なる PBDOM_CHARACTERDATA サブク ラスで処理さ れる方法を示しています。 PBDOM_TEXT オブジェク ト では、 こ のエンティ ティ 参照は展開されます。 PBDOM_COMMENT と PBDOM_CDATA オブジェク トでは、 展開されません。 エンティティ参照の参照用文字 「>」 も PBDOM_CDATA オブジェク トに含めるこ とができます。

PBDOM_Builder pbdombuilder_newpbdom_document pbdom_docpbdom_element pbdom_elem

PowerBuilder エクステンシ ョ ン リファレンス 151

Page 168: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CHARACTERDATA

PBDOM_CHARACTERDATA pbdom_chardata[]PBDOM_OBJECT pbdom_obj_array[]long l = 0string strXML = "<abc><data>Data with a &lt; character<!-- Comment with a &lt; character --><![CDATA[ CDATA with an actual > character and an entity reference &lt; ]]></data></abc>"

TRYpbdombuilder_new = Create PBDOM_Builderpbdom_doc = pbdombuilder_new.BuildFromString

(strXML)

pbdom_elem = pbdom_doc.GetRootElement(). &GetChildElement("data")

pbdom_elem.GetContent(pbdom_obj_array)

// PBDOM_CHARACTERDATA オブジェク トの配列に値を指定します。for l = 1 to UpperBound(pbdom_obj_array) pbdom_chardata[l] = pbdom_obj_array[l]

next for l = 1 to UpperBound(pbdom_chardata)

MessageBox (" クラス ", &pbdom_chardata_2.GetObjectClassString())

MessageBox (" テキスト ", pbdom_chardata[l].GetText())

next

Destroy pbdombuilder_new

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)END TRY

関連項目 GetObjectClass

152 PowerBuilder

Page 169: · PDF file(PBDOM : PowerBuilder Document Object Model

第 9 章 PBDOM_CHARACTERDATA クラス

GetParentObject機能 現行の PBDOM_CHARACTERDATA の親 PBDOM_OBJECT を返し ま

す。

構文 pbdom_chardata_name.GetParentObject()

戻り値 PBDOM_OBJECT

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_CHARACTERDATA が PBDOM_CHARACTERDATA から派生したオブジェク トへの参照でない場合

例 次の例では、 以下の DOM ツ リーに基づいて PBDOM_DOCUMENT を作成し、 PBDOM_CHARACTERDATA インスタンスをその親から切り離せるよ うにする方法を示します。

<abc><data>Data</data>

</abc>

このスク リプ トでは、 ルート要素を取得し、 そのルート要素を使って子要素を取得してから、 子要素自体の子の配列を取得します。 この配列の項目は、 「Data」 と いう テキスト が格納された PBDOM_TEXT オブジェク ト 1 つだけです。 この配列には PBDOM_CHARACTERDATA から派生していないオブジェク トは含まれていないため、PBDOM_CHARACTERDATA オブジェク トにキャス トできます。

pbdom_chardata_1 の親は data 要素です。 次の手順で、 pbdom_chardata_1を親から切り離します。

• PBDOM_COMMENT を PBDOM_CHARACTERDATA オブジェクト pbdom_chardata_2 に作成し、 これにテキス ト 「Some Comments」を代入する

• pbdom_chardata_2 を pbdom_obj_array の配列項目と して設定する

• pbdom_chardata_1 (data 要素) の親に対して SetContent を呼び出す

SetContent を呼び出すと、data の内容がリセッ ト されます。 このメ ソ ッドは、 pbdom_obj_array 内に格納されている ものに応じて、 元の内容(pbdom_chardata_1 を含む) を削除します。 pbdom_obj_array に含まれているのは新規作成された PBDOM_COMMENT の pbdom_chardata_2 だけであるため、data にはこの PBDOM_COMMENT だけが子と して格納されます。

引数 説明

pbdom_chardata_name PBDOM_CHARACTERDATA オブジェ ク ト の名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 153

Page 170: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CHARACTERDATA

pbdom_chardata_1 は自動的に親から切り離されたため、 親はあ り ません。 この pbdom_chardata_1 に対して GetParentObject を呼び出すと、 nullが返されます。

PBDOM_Builder pbdombuilder_newpbdom_document pbdom_docpbdom_document pbdom_owner_docPBDOM_CHARACTERDATA pbdom_chardata_1PBDOM_CHARACTERDATA pbdom_chardata_2PBDOM_OBJECT pbdom_obj_array[]string strXML = "<abc><data>Data</data></abc>"

TRYpbdombuilder_new = Create PBDOM_Builderpbdom_doc = pbdombuilder_new.BuildFromString (strXML)

pbdom_doc.GetRootElement(). &GetChildElement("data"). &GetContent(pbdom_obj_array)

pbdom_chardata_1 = pbdom_obj_array[1]

pbdom_chardata_2 = Create PBDOM_COMMENTpbdom_chardata_2.SetText ("Some Comments")

pbdom_obj_array[1] = pbdom_chardata_2

pbdom_chardata_1.GetParentObject(). &SetContent(pbdom_obj_array)

if (IsValid(pbdom_chardata_1.GetParentObject())) then

MessageBox ("親オブジェク ト を持つ ", &"PBDOMTEXT (~'Data~') は親を持ちます。 ")

else

MessageBox ("親オブジェク ト を持つ ", &"PBDOMTEXT (~'Data~') は親を持ちません。 ")

end if

pbdom_doc.SaveDocument("c:\pbdom_doc_1.xml")

Destroy pbdombuilder_newDestroy pbdom_chardata_2

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)END TRY

154 PowerBuilder

Page 171: · PDF file(PBDOM : PowerBuilder Document Object Model

第 9 章 PBDOM_CHARACTERDATA クラス

最終的に作成された PBDOM_DOCUMENT をファ イルに保存する と、次のよ うにな り ます。

<abc><data>

<!-- Some Comments --></data>

</abc>

解説 親も PBDOM_CHARACTERDATA から派生し たオブジェ ク ト です。PBDOM_OBJECT に親がない場合は、 null が返されます。

関連項目 SetParentObject

GetText機能 現行の PBDOM_CHARACTERDATA 内に格納されている テキス ト

データを取得します。

構文 pbdom_chardata_name.GetText()

戻り値 String 型。 現行の PBDOM_CHARACTERDATA から派生したオブジェク トのテキス ト を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_CHARACTERDATA が PBDOM_CHARACTERDATA から派生したオブジェク トへの参照でない場合

解説 次の表に、 PBDOM_CHARACTERDATA 内に格納されている DOM オブジェク トの種類ごとの戻り値を示します。

引数 説明

pbdom_chardata_name PBDOM_CHARACTERDATA オブジェク トの名前を指定

DOM オブジェク ト 戻り値

PBDOM_TEXT PBDOM_TEXT オブジェク ト自体に格納されているテキス ト データを返します。

たとえば、 次の要素がある と します。

<abc>MY TEXT</abc>

テキス ト ノード 「MY TEXT」 を表す PBDOM_TEXT オブジェク トがある と き、 この PBDOM_TEXT に対して呼び出す GetText は、文字列「MY TEXT」 を返します。

PowerBuilder エクステンシ ョ ン リファレンス 155

Page 172: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CHARACTERDATA

関連項目 GetTextNormalizeGetTextTrimSetText

GetTextNormalize機能 現行の PBDOM_CHARACTERDATA オブジェク ト内に格納されている

テキス ト データから前後の空白文字をすべて削除し、 テキス ト内の空白文字を半角スペース 1 つに正規化して取得します。

構文 pbdom_chardata_name.GetTextNormalize()

PBDOM_CDATA CDATA セクシ ョ ン自体に格納されている文字列データを返します。 たとえば、 次の CDATA があると します。<![CDATA[ They’re saying "x < y" & that "z > y" so I guess that means that z > x ]]>

上記の CDATA セクシ ョ ンを表す PBDOM_CDATA がある と き、 GetText は次の文字列を返します。

They’re saying "x < y" & that "z > y" so I guess that means that z > x

PBDOM_COMMENT コ メン ト そのものを返します。 たとえば、 次のコ メン トがある と します。

<!--This is a comment. -->

このコ メン トに対して GetText は次の文字列を返します。This is a comment.

DOM オブジェク ト 戻り値

引数 説明

pbdom_chardata_name PBDOM_CHARACTERDATA オブジェ ク ト の名前を指定

156 PowerBuilder

Page 173: · PDF file(PBDOM : PowerBuilder Document Object Model

第 9 章 PBDOM_CHARACTERDATA クラス

戻り値 String 型の値。次の表に、 PBDOM_CHARACTERDATA 内に格納されている DOM オブジェク トの種類ごとの戻り値を示します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_CHARACTERDATA が PBDOM_CHARACTERDATA から派生したオブジェク トへの参照でない場合

例 次の例では、 以下のこ とを示します。

1 外部一般解析対象エンティティ を使用する

2 1 行のステート メ ント を使って、要素の子 PBDOM_OBJECT を取得する

3 異なる 3 種類の PBDOM_CHARACTERDATA オブジェク ト のテキスト を取得する。PBDOM_TEXT、PBDOM_COMMENT、PBDOM_CDATA

4 異なる 3 種類の PBDOM_CHARACTERDATA オブジェク ト と同じオブジェク ト を正規化したテキス ト を取得する

DOM オブジェク ト 戻り値

PBDOM_TEXT たとえば、 次の要素がある と します。

<abc>MY TEXT</abc>

テキスト ノ ード 「MY TEXT」 を表す PBDOM_TEXT オブジェク ト があると き、 この PBDOM_TEXT に対して呼び出した GetTextNormalize は、 文字列 「MY TEXT」 を返します。

PBDOM_CDATA たとえば、 次の CDATA がある と します。

<![CDATA] They’re saying "x < y" & that "z > y" so I guess that means that z > x ]]>

上記の CDATA セクシ ョ ンを表す PBDOM_CDATA がある と き、 GetTextNormalize は次の文字列を返します。

They’re saying "x < y" & that "z > y" so I guess that means that z > x

「They’re」 の前の最初のスペースと、 「x」 の後の最後のスペースが削除されています。 また、 「guess」と 「that」 の間のスペースが半角スペース 1 つになり ます。

PBDOM_COMMENT たとえば、 次のコ メン トがある と します。

<!--This is a comment -->

このコ メン トに対して GetTextNormalize は次の文字列を返します。

This is a comment

PowerBuilder エクステンシ ョ ン リファレンス 157

Page 174: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CHARACTERDATA

5 3 と 4 で取得した 2 種類のテキス トの違いを比較する

次の文字列がファイル C:\entity_text.txt に格納されている と します。

&#9;&#32;Some&#32;External&#32;&#32;&#9;&#32;Text&#32;&#9;

次の例では、ファ イル C:\inputfile.txt に格納されている以下の DOM ツリーに基づいて、 PBDOM_DOCUMENT pbdom_doc を作成します。

<!DOCTYPE abc [<!ENTITY text1 SYSTEM "c:\entity_text.txt" >]><abc>

<data>&text1;<!-- &text1;--><![CDATA[&text1;]]>

</data></abc>

文書型宣言で、 外部一般解析対象エンティティ text1 を宣言します。

次の例では、ルート 要素を取得し、そのルート 要素を使って data 子要素を取得してから、子要素自体の子の配列を取得します。PBDOM は、dataの子である PBDOM_OBJECT をすべて収集し、これを PBDOM_OBJECT配列 pbdom_obj_array に格納します。

次に、 FOR ループで pbdom_obj_array 内の項目すべてについて繰り 返し、各項目を PBDOM_CHARACTERDATA 配列 pbdom_chardata に格納します。pbdom_obj_array を使ってデータ要素の子を操作できる場合は、 この手順は必要はあり ません。 この手順は、 PBDOM_CHARACTERDATA 配列に各項目を代入するこ と によって、 各項目を PBDOM_CHARACTERDATAオブジェク トにキャス トできる こ とを示すために行っています。 これは、各 PBDOM_OBJECT も PBDOM_CHARACTERDATA から派生している場合かつその場合に限 り 実行可能です。 PBDOM_OBJECT がPBDOM_CHARACTERDATA から派生していない場合は、PowerBuilderVM によ り例外が送出されます。

次の FOR ループで pbdom_chardata 配列項目すべてについて繰り返し、各項目に対して GetText と GetTextNormalize メ ソ ッ ド を呼び出します。GetText と GetTextNormalize から返された各文字列を、全テキス ト内容がわかりやすく メ ッセージ ボッ クスに表示されるよ うに、 「[」 と 「]」 文字で区切り ます。

158 PowerBuilder

Page 175: · PDF file(PBDOM : PowerBuilder Document Object Model

第 9 章 PBDOM_CHARACTERDATA クラス

data の最初の子は PBDOM_TEXT &text1; です。 これは、 フ ァ イルc:\entity_text.txt の内容をその内容と して含む、 外部一般解析対象エンティティ と して宣言されています。 &text1; エンティティ参照と、 それに含まれているエンティティ参照が、パーサによって展開されます。GetTextNormalize を呼び出して、 空白文字を取り除きます。

data の 2 番目の子は PBDOM_COMMENT <!-- &text1;--> で、 3 番目の子は PBDOM_CDATA <![CDATA[&text1;]]> です。 コ メ ン ト とCDATA セクシ ョ ン内のエンティティ参照は展開されません。GetText とGetTextNormalize はいずれも &text1; を返します。

PBDOM_Builder pbdombuilder_newpbdom_document pbdom_docPBDOM_CHARACTERDATA pbdom_chardata[]PBDOM_OBJECT pbdom_obj_array[]integer iFileNum1long l = 0

TRYpbdombuilder_new = Create PBDOM_Builderpbdom_doc = pbdombuilder_new.BuildFromFile &

("C:\inputfile.txt")

pbdom_doc.GetRootElement(). &GetChildElement("data"). &GetContent(pbdom_obj_array)

for l = 1 to UpperBound(pbdom_obj_array)pbdom_chardata[l] = pbdom_obj_array[l]

next

for l = 1 to UpperBound(pbdom_chardata)MessageBox(pbdom_chardata[l]. &

GetObjectClassString() + "GetText()", &"[" + pbdom_chardata[l].GetText() + "]")

MessageBox (pbdom_chardata[l]. &GetObjectClassString() + " GetTextNormalize()", &"[" + pbdom_chardata[l].GetTextNormalize() + "]")

next

Destroy pbdombuilder_new

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)END TRY

PowerBuilder エクステンシ ョ ン リファレンス 159

Page 176: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CHARACTERDATA

解説 現行の PBDOM_OBJECT にテキス ト値が含まれていない場合、 または含まれているのが空白文字のみである場合は、空の文字列を返します。

関連項目 GetTextGetTextTrimSetText

GetTextTrim機能 現行の PBDOM_CHARACTERDATA オブジェ ク ト のテキス ト内容を、

前後の空白文字をすべて削除して返します。

構文 pbdom_chardata_name.GetTextTrim()

戻り値 String 型

引数 説明

pbdom_chardata_name PBDOM_CHARACTERDATA の名前を指定

DOM オブジェク ト 戻り値

PBDOM_TEXT PBDOM_TEXT オブジェク ト自体に含まれているテキス ト データを、 前後の空白文字を削除して返します。

たとえば、 次の要素がある と します。

<abc> MY TEXT </abc>

テキス ト ノード 「MY TEXT」 を表す PBDOM_TEXT オブジェク トがある と き、PBDOM_TEXT に対して呼び出した GetTextTrim は文字列 「MY TEXT」 を返します。

PBDOM_CDATA CDATA セクシ ョ ン自体に含まれている文字列データを、 前後の空白文字を削除して返します。 たとえば、 次の CDATA がある と します。

<![CDATA[ They’re saying "x < y" & that "z > y" so I guess that means that z > x ]]>

上記の CDATA セクシ ョ ンを表す PBDOM_CDATA がある と き、 GetTextTrim は次の文字列を返します。

They’re saying " x < y " & that "z > y" so I guess that means that z > x

「They’re」 の前の最初のスペースと、 「x」 の後の最後のスペースが削除されています。

160 PowerBuilder

Page 177: · PDF file(PBDOM : PowerBuilder Document Object Model

第 9 章 PBDOM_CHARACTERDATA クラス

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_CHARACTERDATA が PBDOM_CHARACTERDATA から派生したオブジェク トへの参照でない場合

例 次の例では、 以下のこ とを示します。

1 外部 DTD を使用する

2 パラ メータ エンティティ を使用する

3 1 行のステート メン ト を使って、 要素の子 PBDOM_OBJECT を取得する

4 異なる 3 種類の PBDOM_CHARACTERDATA オブジェク ト のテキスト を取得する。PBDOM_TEXT、PBDOM_COMMENT、PBDOM_CDATA

5 異なる 3 種類の PBDOM_CHARACTERDATA オブジェク ト と同じオブジェク ト を前後の空白を削除したテキス ト を取得する

6 4 と 5 で取得した 2 種類のテキス トの違いを比較する

このスク リ プト では、文字列を外部ファイルに保存してから、次の DOMツリ ーに基づいて PBDOM_DOCUMENT pbdom_doc を作成します。

<!DOCTYPE abc SYSTEM "c:\external_entity.dtd"><abc>

<data>&text1;<!-- &text1;--><![CDATA[&text1;]]>

</data></abc>

c:\external_entity.dtd は外部文書型定義ファ イルです。 このファ イルの内容は、 文書型定義の外部サブセッ トです。 最初の行では、 次の置換テキス ト を含む PARAMETER エンテ ィテ ィ param_entity_ref を宣言します。

&#32;&#32;&#32;PARAMETER ENTITY REFERENCE&#9;&#9;&#9;

PBDOM_COMMENT たとえば、 次のコ メン トがある と します。

<!-- This is a comment -->

このコ メン トに対して GetTextTrim は次の文字列を返します。

This is a comment

コ メン トの各単語間の空白はそのままです。 前後の空白文字だけが削除されます。

DOM オブジェク ト 戻り値

PowerBuilder エクステンシ ョ ン リファレンス 161

Page 178: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CHARACTERDATA

次の行では、次の置換テキス ト を含む一般エンティティ text1 を宣言します。

%param_entity_ref;

エンティティ text1 を XML 文書内で使用する と きは、 PARAMETER エンティティ param_entity_ref の内容に展開されます。

次に、 ルート要素を取得し、 そのルート要素を使って data 子要素を取得してから、子要素自体の子の配列を取得します。PBDOM は、 data の子である PBDOM_OBJECT をすべて収集し、 これを PBDOM_OBJECT配列 pbdom_obj_array に格納します。

次に、 FOR ループで pbdom_obj_array 内の項目すべてについて繰り 返し、各項目を PBDOM_CHARACTERDATA 配列 pbdom_chardata に格納します。pbdom_obj_array を使ってデータ要素の子を操作できる場合は、 この手順は必要はあり ません。 この手順は、 PBDOM_CHARACTERDATA 配列に各項目を代入するこ と によって、 各項目を PBDOM_CHARACTERDATAオブジェク ト にキャスト できるこ と を示すために行っています。

これは、各 PBDOM_OBJECT も PBDOM_CHARACTERDATA から派生している場合に限り実行可能です。 PBDOM_OBJECT が PBDOM_CHARACTERDATA から派生していない場合は、PowerBuilder VM によ り例外が送出されます。

次の FOR ループで pbdom_chardata 配列項目すべてについて繰り返し、各項目に対して GetText と GetTextTrim メ ソ ッ ドを呼び出します。GetTextと GetTextTrim から返された各文字列を、 全テキス ト内容がわかりやすく メ ッセージ ボッ クスに表示されるよ うに、 「[」 と 「]」 文字で区切ります。

data の最初の子は PBDOM_TEXT &text1; で、 これは param_entity_refの文字列に展開されます。 この文字列内のエンティティ参照も展開され、 GetText を呼び出す と、 タ ブ と スペース文字が表示 さ れます。GetTextTrim を呼び出すと、 PBDOM によ り最初と最後の空白文字が削除され、結果と して表示される文字列は PARAMETER ENTITY REFERENCEだけになり ます。

data の 2 番目の子は PBDOM_COMMENT <!-- &text1;--> で、 3 番目の子は PBDOM_CDATA <![CDATA[&text1;]]> です。 W3C DOM のコ メ ン ト と CDATA セクシ ョ ンにはエンティテ ィ参照を保持できないため、PBDOM では文字列 &text1; をエンティティ参照とはみなしません。GetText と GetTextTrim はいずれも &text1; を返します。削除する前後のスペースはあ り ません。

PBDOM_CHARACTERDATA pbdom_chardata[]PBDOM_OBJECT pbdom_obj_array[]

162 PowerBuilder

Page 179: · PDF file(PBDOM : PowerBuilder Document Object Model

第 9 章 PBDOM_CHARACTERDATA クラス

integer iFileNum1long l = 0string strExternalDTD = "<!ENTITY % param_entity_ref ~"&#32;&#32;&#32;PARAMETER ENTITY REFERENCE&#9;&#9;&#9;~"><!ENTITY text1 ~"%param_entity_ref;~">"string strXML = "<!DOCTYPE abc SYSTEM ~"c:\external_entity.dtd~"><abc><data>&text1;<!-- &text1;--><![CDATA[&text1;]]></data></abc>"

TRYiFileNum1 = FileOpen("c:\external_entity.dtd", &

StreamMode!, Write!, LockWrite!, Replace!)FileWrite(iFileNum1, strExternalDTD)FileClose(iFileNum1)

pbdombuilder_new = Create PBDOM_Builderpbdom_doc = pbdombuilder_new.BuildFromString (strXML)

pbdom_doc.GetRootElement(). &GetChildElement("data"). &GetContent(pbdom_obj_array)

for l = 1 to UpperBound(pbdom_obj_array) pbdom_chardata[l] = pbdom_obj_array[l]

next

for l = 1 to UpperBound(pbdom_chardata)MessageBox (pbdom_chardata[l]. &

GetObjectClassString() + "GetText()", &"[" + pbdom_chardata[l].GetText() + "]")

MessageBox (pbdom_chardata[l]. &GetObjectClassString() + " GetTextTrim()" , &"[" + pbdom_chardata[l].GetTextTrim() + "]")

next

Destroy pbdombuilder_new

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)END TRY

解説 現行の PBDOM_CHARACTERDATA にテキス ト値が含まれていない場合、 または含まれているのが空白文字のみである場合は、 空の文字列が返されます。

PowerBuilder エクステンシ ョ ン リファレンス 163

Page 180: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CHARACTERDATA

関連項目 GetTextGetTextNormalizeSetText

HasChildren機能 現行の PBDOM_CHARACTERDATA に子 PBDOM_OBJECT が 1 つ以上

ある場合は true を返します。 現行の PBDOM_CHARACTERDATA に子がない場合は false を返します。

構文 pbdom_chardata_name.HasChildren()

戻り値 Boolean 型

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_CHARACTERDATA が PBDOM_CHARACTERDATA から派生したオブジェク トへの参照でない場合

解説 PBDOM_CHARACTERDATA に PBDOM_OBJECT が 1 つ以上ある場合は、 true が返されます。 子がない場合は、 false が返されます。

現在、 PBDOM_CHARACTERDATA のサブク ラスには子ノードが含まれていないため、 必ず false を返します。

IsAncestorObjectOf機能 現行の PBDOM_CHARACTERDATA がほかの PBDOM_OBJECT の先祖

であるかど うかを調べます。

構文 pbdom_chardata_name.IsAncestorObjectOf(pbdom_object pbdom_object_ret)

引数 説明

pbdom_chardata_name PBDOM_CHARACTERDATA の名前を指定

値 説明

true 現行の PBDOM_CHARACTERDATA に子 PBDOM_OBJECTが 1 つ以上ある場合

false 現行の PBDOM_CHARACTERDATA に子 PBDOM_OBJECTがない場合

引数 説明

pbdom_chardata_name PBDOM_CHARACTERDATA の名前を指定

pbdom_object_ref チェッ ク対象の PBDOM_OBJECT を指定

164 PowerBuilder

Page 181: · PDF file(PBDOM : PowerBuilder Document Object Model

第 9 章 PBDOM_CHARACTERDATA クラス

戻り値 Boolean 型。 現行の PBDOM_CHARACTERDATA が参照される PBDOM_OBJECT の先祖である場合は true を返し、 それ以外の場合は false を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_CHARACTERDATA が PBDOM_CHARACTERDATA から派生したオブジェク トへの参照でない場合

解説 現在、 PBDOM_CHARACTERDATA のサブク ラスには子ノードが含まれていないため、 必ず false を返します。したがって、 PBDOM_CHARACTERDATA が PBDOM_OBJECT の先祖となるこ とはあ り ません。

SetParentObject機能 参照される PBDOM_OBJECT を現行の PBDOM_CHARACTERDATA の

親と して設定します。

構文 pbdom_chardata_name.SetParentObject(pbdom_object pbdom_object_ref)

戻り値 PBDOM_OBJECT

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― PBDOM_CHARACTERDATA が PBDOM_CHARACTERDATA から 派生したオブジェク ト への参照でない場合。 入力さ れた PBDOM_OBJECT がPBDOM_OBJECT から派生したオブジェク ト への参照でない場合にも、この例外が送出される

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 現行の PBDOM_CHARACTERDATA にすでに親がある場合

EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT ― 入力されたPBDOM_OBJECT が、 現行の PBDOM_CHARACTERDATA ク ラス と適切な親子関係を持たないク ラスのオブジェク トである場合

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 入力された PBDOM_OBJECT にユーザ定義名が必要であるが、 名前が付いていない場合

引数 説明

pbdom_chardata_name PBDOM_CHARACTERDATA の名前を指定

pbdom_object_ref 現行の PBDOM_CHARACTERDATA オブジェク ト の親と して設定する PBDOM_OBJECT を指定

PowerBuilder エクステンシ ョ ン リファレンス 165

Page 182: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CHARACTERDATA

例 次の例では、 以下の DOM ツ リーに基づいて PBDOM_DOCUMENT を作成します。

<abc><data>

<child_1/><child_2/><child_3/>

</data></abc>

異なる 3 種類の PBDOM_CHARACTERDATA オブジェ ク ト を作成し、これを pbdom_chardata 配列に格納します。 ルート要素を取得し、 そのルー ト要素を使って data 子要素を取得します。 次に、 その子要素を使って最初の子要素を取得します。 これを pbdom_chardata 配列の最初の項目の親と して設定します。

配列項目のテキス ト をコ メン トに設定します。PBDOM_CHARACTERDATA オブジェク ト を親オブジェク トの子と して設定してあれば、 どの PBDOM_CHARACTERDATA オブジェク トの文字列内容も設定できます。

テキス ト と CDATA オブジェ ク ト についても、 同じプロセスを繰り返します。

PBDOM_Builder pbdombuilder_newpbdom_document pbdom_docPBDOM_CHARACTERDATA pbdom_chardata[]PBDOM_ELEMENT pbdom_elemlong = 0string strXML = "<abc><data><child_1/><child_2/><child_3/></data></abc>"

TRYpbdombuilder_new = Create PBDOM_Builderpbdom_doc = pbdombuilder_new.BuildFromString (strXML)

pbdom_chardata[1] = Create PBDOM_COMMENTpbdom_chardata[2] = Create PBDOM_TEXTpbdom_chardata[3] = Create PBDOM_CDATA

pbdom_elem = pbdom_doc.GetRootElement(). &GetChildElement("data").GetChildElement("child_1")

pbdom_chardata[1].SetParentObject (pbdom_elem)pbdom_chardata[1].SetText ("Comment")

pbdom_elem = pbdom_doc.GetRootElement(). &

166 PowerBuilder

Page 183: · PDF file(PBDOM : PowerBuilder Document Object Model

第 9 章 PBDOM_CHARACTERDATA クラス

GetChildElement("data").GetChildElement("child_2")pbdom_chardata[2].SetParentObject (pbdom_elem)pbdom_chardata[2].SetText ("Text")

pbdom_elem = pbdom_doc.GetRootElement(). &GetChildElement("data").GetChildElement("child_3")

pbdom_chardata[3].SetParentObject (pbdom_elem)pbdom_chardata[3].SetText ("CDATA")

pbdom_doc.SaveDocument ("c:\pbdom_doc_1.xml")

Destroy pbdombuilder_new

CATCH (PBDOM_Exception except)

MessageBox ("例外が発生 ", except.Text)END TRY

PBDOM_DOCUMENT をファ イルに保存する と、 出力される DOM ツリーは次のよ うにな り ます。

<abc><data>

<child_1><!--Comment-->

</child_1><child_2>

Text</child_2><child_3>

<![CDATA[CDATA]]></child_3>

</data></abc>

解説 現行の PBDOM_CHARACTERDATA の親と して設定する PBDOM_OBJECT は、 正当な親子関係を持っている必要があ り ます。このよ う な親子関係がない場合は、 例外が送出されます。

関連項目 GetParentObject

PowerBuilder エクステンシ ョ ン リファレンス 167

Page 184: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_CHARACTERDATA

SetText機能 入力された文字列を、 現行の PBDOM_CHARACTERDATA オブジェク

トのテキス ト内容と して設定します。

構文 pbdom_chardata_name.SetText(string strSet)

戻り値 PBDOM_CHARACTERDATA。 修正された現行の PBDOM_CHARACTERDATA オブジェク トです。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― PBDOM_CHARACTERDATA が PBDOM_CHARACTERDATA から派生したオブジェク トへの参照でない場合

解説 SetText メ ソ ッ ドは、 入力された文字列を、 現行の PBDOM_CHARACTERDATA オブジェク トのテキス ト内容と して設定します。

関連項目 GetTextGetTextNormalizeGetTextTrim

引数 説明

pbdom_chardata_name PBDOM_CHARACTERDATA の名前を指定

strSet PBDOM_CHARACTERDATA のテキス ト と して設定する文字列を指定

168 PowerBuilder

Page 185: · PDF file(PBDOM : PowerBuilder Document Object Model

第 1 0 章 PBDOM_COMMENT クラス

この章について この章では、 PBDOM_COMMENT ク ラスについて説明します。

PBDOM_COMMENT機能 PBDOM_COMMENT ク ラスは、XML 文書内の DOM コ メン ト ノー

ドを表します。 このク ラスは、 PBDOM_CHARACTERDATA ク ラスから派生しており、 特に DOM コ メン ト ノードを操作するための一連のメ ソ ッ ド を使って、 PBDOM_CHARACTERDATA ク ラスを拡張するこ とを目的と しています。

コ メン ト を使用する と、ユーザが読み取れる情報で XML 文書に注釈をつけるこ とができます。

PBDOM では、 文書を解析する と きに文書内で検出されたコ メ ントがあれば、 メモ リに作成された DOM ツ リーの一部と して保持されます。 実行時に作成される PBDOM_COMMENT も DOM ツリーの一部とな り ます。ただし、通常 XML コ メン トが、文書の内容モデルの一部を形成するこ とはあ り ません。

コ メ ン ト の有無は、 文書の有効性とは関係あ り ません。 コ メ ン トを DTD で事前定義する必要はあ り ません。

メ ソ ッ ド PBDOM_OBJECT から継承されたメ ソ ッ ドの中には、 意味のある用途を持たず、 デフォル トの機能や重要でない機能しか実行しないものもあ り ます。 これらのメ ソ ッ ドについて、 次の表で説明します。

メ ソ ッ ド 戻り値

AddContent 現行の PBDOM_COMMENTGetContent false

GetName 文字列 「#comment」HasChildren false

InsertContent 現行の PBDOM_COMMENTIsAncestorObjectOf false

RemoveContent false

PowerBuilder エクステンシ ョ ン リファレンス 169

Page 186: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_COMMENT

PBDOM_COMMENT ク ラスには、 次の重要なメ ソ ッ ドがあ り ます。

AppendCloneDetachEqualsGetObjectClassGetObjectClassStringGetOwnerDocumentObjectGetParentObjectGetTextGetTextNormalizeGetTextTrimSetParentObjectSetText

Append機能 Append メ ソ ッ ドは、 次のよ うに上書きされます。

• 構文 1 は、入力された文字列を、現行の PBDOM_COMMENT オブジェク ト内にすでに格納されているテキス ト内容に追加します。

• 構文 2 は、 PBDOM_CHARACTERDATA オブジェク トのテキス トデータを、現行の PBDOM_COMMENT オブジェク ト内にすでに格納されているテキス ト内容に追加します。

構文

SetContent 現行の PBDOM_COMMENTSetName false

メ ソ ッ ド 戻り値

構文 参照先

Append(string strAppend) Append 構文 1Append(pbdom_characterdata pbdom_characterdata_ref)

Append 構文 2

170 PowerBuilder

Page 187: · PDF file(PBDOM : PowerBuilder Document Object Model

第 10 章 PBDOM_COMMENT クラス

Append 構文 1機能 入力された文字列を、 現行の PBDOM_COMMENT オブジェ ク ト内に

すでに格納されているテキス ト内容に追加します。

構文 pbdom_comment_name.Append(string strAppend)

戻り値 PBDOM_CHARACTERDATA。 修正されて PBDOM_CHARACTERDATA オブジェク ト と し て返さ れた、現行の PBDOM_COMMENT です。

Append 構文 2機能 PBDOM_CHARACTERDATA オブジェク トのテキス ト データを、 現行

の PBDOM_COMMENT オブジェ ク ト内に格納されているテキス ト内容に追加します。

構文 pbdom_comment_name.Append(pbdom_characterdata pbdom_characterdata_ref)

戻り値 PBDOM_CHARACTERDATA。 修正されて PBDOM_CHARACTERDATA オブジェク ト と し て返さ れた、現行の PBDOM_COMMENT です。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_CHARACTERDATA が PBDOM_CHARACTERDATA から派生したオブジェク ト への参照でない場合

引数 説明

pbdom_comment_name PBDOM_COMMENT の名前を指定

strAppend 現行の PBDOM_COMMENT オブジェ ク ト の既存テキス トに追加する文字列を指定

引数 説明

pbdom_comment_name PBDOM_COMMENT の名前を指定

pbdom_characterdata_ref 現行の PBDOM_COMMENT オブジェク トの既存テキス トに追加するテキス ト データが含まれている、 参照される PBDOM_CHARACTERDATA オブジェク ト を指定

PowerBuilder エクステンシ ョ ン リファレンス 171

Page 188: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_COMMENT

解説 JDOM では、 COMMENT ク ラスの Append メ ソ ッ ド は定義されていません。 PBDOM は、 基本の PBDOM_CHARACTERDATA ク ラスで Append メソ ッ ド を実装しています。PBDOM_TEXT オブジェク ト 、PBDOM_CDATAオブジェ ク ト 、 およ び PBDOM_COMMENT オブジェ ク ト はすべてPBDOM_CHARACTERDATA から派生したオブジェク ト であるので、 その内部テキスト データを相互に追加できます。

Clone機能 現行の PBDOM_COMMENT のクローンを作成して返します。

構文 pbdom_comment_name.Clone(boolean bDeep)

戻り値 PBDOM_OBJECT

例 次の例では、 シ リ アラ イズする と次のよ うに表示される XML 文書を作成します。

<!DOCTYPE root[<!ELEMENT root (level_1)*><!ELEMENT level_1 (level_2)*><!ELEMENT level_2 (#PCDATA)*>]><root>

<level_1><!--Element at level : 1--><level_2>

<!--Element at level : 2--></level_2>

</level_1></root>

DTD の定義では、文書を次の構成にする必要があるこ とを示しています。

• 文書は root とい う名前のルート要素を含む

• root 要素は、 level_1 要素を含まないか、 または 1 つ以上含む

引数 説明

pbdom_comment_name PBDOM_COMMENT の名前を指定

bDeep 詳細クローンを返すか、 簡易クローンを返すかを指定する Boolean 型の値を指定。 指定する値は、 詳細クローンの場合は true、 簡易クローンの場合は false

172 PowerBuilder

Page 189: · PDF file(PBDOM : PowerBuilder Document Object Model

第 10 章 PBDOM_COMMENT クラス

• level_1 要素は、 level_2 要素を含まないか、 または 1 つ以上含む

• level_2 要素はテキス ト を含むものと想定する

次のスク リプ トでは、 level_1 と level_2 要素をマークするコ メン ト を含めるこ とで、文書内に注釈を付けます。サンプル コードでは、 DTD と最小限のルート要素を含む XML 文字列から PBDOM_DOCUMENT を作成します。 次に、 テンプレート と して機能するコ メン ト を作成します。 さ らに、 テンプレート コ メン トのク ローンを作成し、 各要素にインスタンス固有のテキス ト を追加します。

PBDOM_COMMENT pbdom_commPBDOM_COMMENT pbdom_comm_clonePBDOM_ELEMENT pbdom_elemPBDOM_DOCUMENT pbdom_docPBDOM_BUILDER pbdom_buildrstring strXML = "<!DOCTYPE root [<!ELEMENT root (level_1)*><!ELEMENT level_1 (level_2)*><!ELEMENT level_2 (#PCDATA)>]><root/>"

try

// DTD と 小限のルート要素を含む XML ファイルから// PBDOM_DOCUMENT を作成します。pbdom_buildr = Create PBDOM_BUILDERpbdom_doc = pbdom_buildr.BuildFromString(strXML)

// 再利用可能なテンプレート コ メン ト を作成します。pbdom_comm = Create PBDOM_COMMENTpbdom_comm.SetText ("Element at level : ")

// level_1 要素を作成します。pbdom_elem = Create PBDOM_ELEMENTpbdom_elem.SetName("level_1")

// テンプレート コ メン トのクローンを作成し、 インスタンス固有の// テキストを付加して、 それを level_1 要素に追加します。pbdom_comm_clone = pbdom_comm.Clone(true)pbdom_elem.AddContent(pbdom_comm_clone.Append("1"))

// DTD の規定に従って、 level_1 要素を// ルート要素に追加します。pbdom_doc.GetRootElement().AddContent(pbdom_elem)

// level_2 要素を作成します。pbdom_elem = Create PBDOM_ELEMENTpbdom_elem.SetName("level_2")

PowerBuilder エクステンシ ョ ン リファレンス 173

Page 190: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_COMMENT

// テンプレート コ メン トのクローンを作成し、 インスタンス固有の// テキスト を付加して、 それを level_2 要素に追加します。pbdom_comm_clone = pbdom_comm.Clone(true)pbdom_elem.AddContent(pbdom_comm_clone.Append("2"))

// DTD の規定に従って、 level_2 要素を// level_1 要素に追加します。pbdom_doc.GetRootElement().GetChildElement &

("level_1").AddContent(pbdom_elem)

// 後に文書をシリアライズします。pbdom_doc.SaveDocument("sample.xml")

catch(PBDOM_EXCEPTION pbdom_e)MessageBox ("PBDOM_EXCEPTION", pbdom_e.GetMessage())

end try

解説 Clone メ ソ ッ ド は、 元の PBDOM_COMMENT の複製であり 、 かつ独立したオブジェク ト である、新しい PBDOM_COMMENT オブジェク ト を作成します。 true または false のどちらを指定しても、 PBDOM_COMMENT には子 PBDOM_OBJECT のサブツリ ーが含まれていないので、 クローンは常に元のオブジェク ト と 同じになり ます。

PBDOM_COMMENT のクローンには親はあ り ません。 ただし、 ク ローンは元の PBDOM_COMMENT と同じ PBDOM_DOCUMENT に格納され、 元の PBDOM_COMMENT がスタン ドアロンのと きは、 ク ローンもスタンドアロンです。

Detach機能 PBDOM_COMMENT をその親 PBDOM_OBJECT から切り離します。

構文 pbdom_comment_name.Detach()

戻り値 PBDOM_OBJECT

親から切り離された現行の PBDOM_COMMENT です。

解説 現行の PBDOM_COMMENT オブジェ ク ト に親がない場合は、 何も修正は行われません。

引数 説明

pbdom_comment_name PBDOM_COMMENT の名前を指定

174 PowerBuilder

Page 191: · PDF file(PBDOM : PowerBuilder Document Object Model

第 10 章 PBDOM_COMMENT クラス

Equals機能 現行の PBDOM_COMMENT と参照される PBDOM_OBJECT が同じで

あるかど うかを調べます。

構文 pbdom_comment_name.Equals(pbdom_object pbdom_object_ref)

戻り値 Boolean 型。 現行の PBDOM_COMMENT が入力された PBDOM_OBJECT と同じである場合は true を返し、 それ以外の場合は false を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 参照される PBDOM_OBJECT が PBDOM_OBJECT オブジェ ク ト から派生したオブジェク トへの参照でない場合

解説 参照される PBDOM_OBJECT が派生し た PBDOM_COMMENT オブジェク トでもあ り、かつ現行の PBDOM_COMMENT と同じ DOM オブジェ ク ト を参照している場合にのみ、 true が返されます。 た とえば、別々に作成された 2 つの PBDOM_COMMENT オブジェ ク ト にまったく同じテキス トが含まれていても、 同じものとはいえません。

GetObjectClass機能 現行の PBDOM_OBJECT のク ラスを示す Long 型の整数値コードを返

します。

構文 pbdom_object_name.GetObjectClass()

戻り値 Long 型。 現行の PBDOM_OBJECT のクラスを示す Long 型の整数値コード を返します。 pbdom_object_name が PBDOM_COMMENT のと きは、 戻り 値は 9 です。

関連項目 GetObjectClassString

引数 説明

pbdom_comment_name PBDOM_COMMENT の名前を指定

pbdom_object_ref 現行の PBDOM_COMMENT と同じであるかどうかを調べる PBDOM_OBJECT を指定

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 175

Page 192: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_COMMENT

GetObjectClassString機能 PBDOM_OBJECT のク ラスを文字列で返します。

構文 pbdom_object_name.GetObjectClassString()

戻り値 String 型。 現行の PBDOM_OBJECT のク ラスを示す文字列を返します。pbdom_object_name が PBDOM_COMMENT のと きは、 返される文字列は 「pbdom_comment」 です。

関連項目 GetObjectClass

GetOwnerDocumentObject機能 現行の PBDOM_COMMENT を所有している PBDOM_DOCUMENT を

返します。

構文 pbdom_comment_name.GetOwnerDocumentObject()

戻り値 PBDOM_OBJECT

解説 所有している PBDOM_DOCUMENT がない場合は、 null が返されます。

GetParentObject機能 現行の PBDOM_COMMENT の親 PBDOM_OBJECT を返します。

構文 pbdom_comment_name.GetParentObject()

戻り値 PBDOM_OBJECT

解説 GetParentObject メ ソ ッ ド は、 現行の PBDOM_COMMENT の親 PBDOM_OBJECT を返します。 PBDOM_COMMENT に親がない場合は、null が返されます。

関連項目 SetParentObject

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

引数 説明

pbdom_comment_name PBDOM_COMMENT の名前を指定

引数 説明

pbdom_comment_name PBDOM_COMMENT の名前を指定

176 PowerBuilder

Page 193: · PDF file(PBDOM : PowerBuilder Document Object Model

第 10 章 PBDOM_COMMENT クラス

GetText機能 現行の PBDOM_COMMENT オブジェク ト内に含まれるテキス ト デー

タを取得します。

構文 pbdom_comment_name.GetText()

戻り値 String 型。 現行の PBDOM_COMMENT オブジェク トのテキス ト内容です。

例 「<!-A COMMENT->」 とい う コ メ ン トがある とする と、 GetText メ ソ ッ ドは文字列 「A COMMENT」 を返します。

関連項目 GetTextNormalizeGetTextTrimSetText

GetTextNormalize機能 現行の PBDOM_COMMENT オブジェ ク ト内に格納されているテキス

ト データを、 テキス ト前後の空白文字をすべて削除し、 テキス ト内の空白文字を半角スペース 1 つに正規化して取得します。

構文 pbdom_comment_name.GetTextNormalize()

戻り値 String 型

例 テキス トの前後と単語間の 3 箇所にそれぞれスペースがある「<!- A COMMENT -->」 とい う コ メン トの場合、GetTexNormalize メ ソ ッ ドは、 単語間に半角スペース 1 つが含まれている文字列 「A COMMENT」 を返します。

解説 このメ ソ ッ ド を使用する と、 現行の PBDOM_COMMENT オブジェ クト内に格納されているテキス ト データを、 前後の空白文字をすべて削除し、 テキス ト内の空白文字を半角スペース 1 つに正規化して取得できます。 現行の PBDOM_COMMENT にテキス ト値が含まれていない場合、 または含まれているのが空白文字のみである場合は、 空の文字列が返されます。

引数 説明

pbdom_comment_name PBDOM_COMMENT の名前を指定

引数 説明

pbdom_comment_name PBDOM_COMMENT の名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 177

Page 194: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_COMMENT

関連項目 GetTextGetTextTrimSetText

GetTextTrim機能 現行の PBDOM_COMMENT オブジェ ク ト のテキス ト内容を、 前後の

空白文字をすべて削除して返します。

構文 pbdom_comment_name.GetTextTrim()

戻り値 String 型

例 テキス トの前後と単語間の 3 箇所にそれぞれスペースがある「<!- A COMMENT -->」 と いう コ メ ント の場合、 GetTextTrim メソ ッ ド は、「 A COMMENT」 を返し ます。 単語間の空白文字はそのままです。

解説 このメ ソ ッ ド を使用する と、 現行の PBDOM_COMMENT オブジェ クト内に格納されているテキス ト データを、 前後の空白文字がすべて削除された状態で取得できます。テキス ト内の空白文字はそのままです。現行の PBDOM_COMMENT にテキス ト値が含まれていない場合、 または含まれているのが空白文字のみである場合は、 空の文字列が返されます。

関連項目 GetTextGetTextNormalizeSetText

引数 説明

pbdom_comment_name PBDOM_COMMENT の名前を指定

178 PowerBuilder

Page 195: · PDF file(PBDOM : PowerBuilder Document Object Model

第 10 章 PBDOM_COMMENT クラス

SetParentObject機能 参照される PBDOM_OBJECT を現行の PBDOM_COMMENT の親と し

て設定します。

構文 pbdom_comment_name.SetParentObject(pbdom_object pbdom_object_ref)

戻り値 PBDOM_OBJECT

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_OBJECT が PBDOM_OBJECT から派生したオブジェク トへの参照でない場合

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 現行の PBDOM_COMMENT にすでに親がある場合

EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT ― 入力されたPBDOM_OBJECT が、PBDOM_COMMENT ク ラス と適切な親子関係を持たないク ラスのオブジェク トである場合

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 入力された PBDOM_OBJECT にユーザ定義名が必要であるが、 名前が付いていない場合

解説 このメ ソ ッ ドは、 入力された PBDOM_OBJECT を現行の PBDOM_COMMENT の親と して設定します。 呼び出し側には、 現行の PBDOM_COMMENT と 入力さ れた PBDOM_OBJECT に正当な親子関係があるこ とを確認する責任があ り ます。 現在、PBDOM_COMMENT の親と して設定できるのは、PBDOM_ELEMENT と PBDOM_DOCUMENT だけです。

PBDOM_COMMENT SetParentObject メ ソ ッ ド は、 次の 2 つの点で、JDOM Comment setParent メ ソ ッ ド と異な り ます。

• JDOM は、 Element、 Comment、 および CDATA を含む、 いく つかの特定のクラスで setParent を定義しています。PBDOM は、多相性 (ポリ モフィ ズム) をサポート するために、 基本の PBDOM_OBJECT クラスで SetParentObject メ ソ ッ ド を実装しています。

• JDOM Comment の setParent メ ソ ッ ドでは、Element ク ラス オブジェク トだけをパラ メータ と してと り ます。

COMMENT::setParent(Element parent)

引数 説明

pbdom_comment_name PBDOM_COMMENT の名前を指定

pbdom_object_ref 現行の PBDOM_COMMENT オブジェ ク ト の親と して設定する PBDOM_OBJECT を指定

PowerBuilder エクステンシ ョ ン リファレンス 179

Page 196: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_COMMENT

JDOM を使って Document を Comment の親オーナーと して設定するには、 setDocument メ ソ ッ ドを使用します。

COMMENT::setDocument(Document document)

PBDOM では、SetParentObject は PBDOM_OBJECT への参照を引数にと るため、 PBDOM_ELEMENT と PBDOM_DOCUMENT の両方を親と して設定できます。

関連項目 GetOwnerDocumentObjectGetParentObject

SetText機能 入力された文字列を、 現行の PBDOM_COMMENT オブジェ ク ト のテ

キス ト内容と して設定します。

構文 pbdom_comment_name.SetText(string strSet)

戻り値 String 型

関連項目 GetTextGetTextNormalizeGetTextTrim

引数 説明

pbdom_comment_name PBDOM_COMMENT の名前を指定

strSet PBDOM_COMMENT のテキス ト と して設定する文字列を指定

180 PowerBuilder

Page 197: · PDF file(PBDOM : PowerBuilder Document Object Model

第 1 1 章 PBDOM_DOCTYPE クラス

この章について この章では、 PBDOM_DOCTYPE ク ラスについて説明します。

PBDOM_DOCTYPE機能 PBDOM_DOCTYPE ク ラスは、 XML DOM 文書の文書型宣言オブ

ジェ ク ト を表し ます。 PBDOM_DOCTYPE ク ラ スを使用する と、DOCTYPE 内で制約されているルート要素の名前、 内部サブセット 、 システム ID、 およびパブリ ッ ク ID にアクセスできます。

メ ソ ッ ド PBDOM_OBJECT から継承されたメ ソ ッ ドの中には、 意味のある用途を持たず、 デフォル トの機能や重要でない機能しか実行しないものもあ り ます。 これらのメ ソ ッ ドについて、 次の表で説明します。

PBDOM_DOCTYPE ク ラスには、次の重要なメ ソ ッ ドがあ り ます。

CloneDetachEqualsGetInternalSubsetGetName

メ ソ ッ ド 戻り値

AddContent 現行の PBDOM_DOCTYPEGetContent false

GetText 空の文字列

GetTextNormalize 空の文字列

GetTextTrim 空の文字列

HasChildren false

InsertContent 現行の PBDOM_DOCTYPEIsAncestorObjectOf false

RemoveContent false

SetContent 現行の PBDOM_DOCTYPE

PowerBuilder エクステンシ ョ ン リファレンス 181

Page 198: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCTYPE

GetObjectClassGetObjectClassStringGetOwnerDocumentObjectGetParentObjectGetPublicIDGetSystemIDSetDocumentSetInternalSubsetSetNameSetParentObjectSetPublicIDSetSystemID

Clone機能 現行の PBDOM_DOCTYPE のクローンを作成して返します。

構文 pbdom_doctype_name.Clone(boolean bDeep)

戻り値 PBDOM_OBJECT。 PBDOM_OBJECT に格納されている現行の PBDOM_DOCTYPE の詳細クローンです。

解説 PBDOM_DOCTYPE のクローンは、 簡易クローンと 詳細クローンのどちらを指定したかに関係なく、 必ず元の PBDOM_DOCTYPE の正確なコピーになり ます。 その理由は、 PBDOM_DOCTYPE には子 PBDOM_OBJECT のサブツ リーが含まれていないためです。

PBDOM_DOCTYPE のク ローンには親はあ り ません。 ただし、 ク ローンは元の PBDOM_DOCTYPE と同じ PBDOM_DOCUMENT に格納されます。 元の PBDOM_DOCTYPE がスタンドアロンのと きは、 ク ローンもスタンドアロンです。

引数 説明

pbdom_doctype_name PBDOM_DOCTYPE オブジェク トの名前を指定 bDeep 詳細クローンを返すか、 簡易クローンを返すかを指

定する Boolean 型の値を指定。 指定する値は、 詳細クローンの場合は true、簡易クローンの場合は false。この引数は現在無視される

182 PowerBuilder

Page 199: · PDF file(PBDOM : PowerBuilder Document Object Model

第 11 章 PBDOM_DOCTYPE クラス

Detach機能 PBDOM_DOCTYPE オブジェク ト をその親 PBDOM_DOCUMENT オブ

ジェク ト から切り 離します。 切り 離された PBDOM_DOCTYPE オブジェク トは、 Detach メ ソ ッ ドの呼び出し前に格納されていた PBDOM_DOCUMENT オブジェク トにそのまま存在しますが、親 PBDOM_DOCUMENT オブジェク トは持たなくな り ます。

構文 pbdom_doctype_name.Detach()

戻り値 PBDOM_OBJECT。 修正されて、 PBDOM_OBJECT オブジェ ク ト と して返された PBDOM_DOCTYPE オブジェク トです。

Equals機能 現行の PBDOM_DOCTYPE と参照される PBDOM_OBJECT が同じであ

るかど うかを調べます。

構文 pbdom_doctype_name.Equals(pbdom_object_ref)

戻り値 Boolean 型。 現行の PBDOM_DOCTYPE が入力された PBDOM_OBJECT と同じである場合は true を返し、 それ以外の場合は false を返します。

解説 参照される PBDOM_OBJECT も PBDOM_DOCTYPE であ り、 現行のPBDOM_DOCTYPE と同じ DOM DOCTYPE オブジェ ク ト を参照している場合にのみ、 True が返されます。

引数 説明

pbdom_doctype_name PBDOM_DOCTYPE オブジェク トの名前を指定

引数 説明

pbdom_doctype_name PBDOM_DOCTYPE オブジェク トの名前を指定

pbdom_object_ref 現行の PBDOM_DOCTYPE と同じであるかど う かを調べる PBDOM_OBJECT を指定

PowerBuilder エクステンシ ョ ン リファレンス 183

Page 200: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCTYPE

GetInternalSubset機能 DOCTYPE オブジェク トの内部サブセッ ト データを返します。

構文 pbdom_doctype_name.GetInternalSubset()

戻り値 String 型

関連項目 SetInternalSubset

GetName機能 現行の PBDOM_DOCTYPE 内で制約されているルート要素の名前を取

得します。

構文 pbdom_doctype_name.GetName()

戻り値 String 型

例 次の DOCTYPE 宣言がある場合、GetName メ ソ ッ ドは abc を返します。

<!DOCTYPE abc [<!-- internal subset --> <!ELEMENT abc (#PCDATA)> <!ELEMENT data (#PCDATA)> <!ELEMENT inner_data (#PCDATA)>]>

GetObjectClass機能 現行の PBDOM_OBJECT のク ラスを示す Long 型の整数値コードを返

します。

構文 pbdom_object_name.GetObjectClass()

戻り値 Long 型。 現行の PBDOM_OBJECT のク ラ スを示す Long 型の整数値コードを返します。 pbdom_object_name が PBDOM_DOCTYPE のと きは、 戻り値は 4 です。

引数 説明

pbdom_doctype_name PBDOM_DOCTYPE オブジェク トの名前を指定

引数 説明

pbdom_doctype_name PBDOM_DOCTYPE オブジェク トの名前を指定

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

184 PowerBuilder

Page 201: · PDF file(PBDOM : PowerBuilder Document Object Model

第 11 章 PBDOM_DOCTYPE クラス

GetObjectClassString機能 PBDOM_OBJECT のク ラスを文字列で返します。

構文 pbdom_object_name.GetObjectClassString()

戻り値 String 型。 現行の PBDOM_OBJECT のク ラスを示す文字列を返します。pbdom_object_name が PBDOM_DOCTYPE のと きは、 返される文字列は 「pbdom_doctype」 です。

GetOwnerDocumentObject機能 現行の PBDOM_DOCTYPE を所有している PBDOM_DOCUMENT を返

します。

構文 pbdom_doctype_name.GetOwnerDocumentObject()

戻り値 PBDOM_OBJECT

解説 所有している PBDOM_DOCUMENT がない場合は、 null が返されます。

GetParentObject機能 現行の PBDOM_DOCTYPE の親 PBDOM_OBJECT を返します。

構文 pbdom_doctype_name.GetParentObject()

戻り値 PBDOM_OBJECT

解説 親は PBDOM_DOCUMENT オブジェク ト でもあり ます。PBDOM_OBJECTに親がない場合は、 null が返されます。

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

引数 説明

pbdom_doctype_name PBDOM_DOCTYPE オブジェク トの名前を指定

引数 説明

pbdom_doctype_name PBDOM_DOCTYPE オブジェク トの名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 185

Page 202: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCTYPE

GetPublicID機能 DOCTYPE で宣言される外部参照 DTD のパブリ ッ ク ID を取得します。

構文 pbdom_doctype_name.GetPublicID()

戻り値 String 型。 パブリ ッ ク ID が参照されていない場合は、 空の文字列を返します。

例 たとえば、 次の DTD 宣言がある と します。

<!DOCTYPE Books PUBLIC "-//MyCompany//DTD//EN" "http://mycompany.com/dtd/mydoctype.dtd">

次のスク リプ トでは、 メ ッセージ ボッ クスにパブ リ ッ ク ID とシステム ID を表示します。

pbdom_doctype pbdom_doctype_1pbdom_document pbdom_doc

pbdom_doctype_1 = pbdom_doc.GetDocType()

MessageBox ("DocType パブリ ック ID", &pbdom_doctype_1.GetPublicID())

MessageBox ("DocType システム ID", &pbdom_doctype_1.GetSystemID())

GetPublicID と GetSystemID を呼び出して返される文字列は、次のとおりです。

"-//MyCompany//DTD//EN""http://mycompany.com/dtd/mydoctype.dtd"

関連項目 GetSystemIDSetPublicIDSetSystemID

引数 説明

pbdom_doctype_name PBDOM_DOCTYPE オブジェク トの名前を指定

186 PowerBuilder

Page 203: · PDF file(PBDOM : PowerBuilder Document Object Model

第 11 章 PBDOM_DOCTYPE クラス

GetSystemID機能 DOCTYPE で宣言される外部参照 DTD のシステム ID を取得します。

構文 pbdom_doctype_name.GetSystemID()

戻り値 String 型。 システム ID を参照しない場合は、 空の文字列を返します。

例 GetPublicID を参照して ください。

関連項目 GetPublicIDSetPublicIDSetSystemID

SetDocument機能 現行の PBDOM_DOCTYPE を所有している PBDOM_DOCUMENT を設

定します。

構文 pbdom_doctype_name.SetDocument(pbdom_document pbdom_document_ref)

戻り値 PBDOM_DOCTYPE。 参照される PBDOM_DOCUMENT の DOCTYPEと して修正された、 現行の PBDOM_DOCTYPE です。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_DOCUMENT オブジェク トが無効で使用できない場合

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 現行の PBDOM_DOCTYPE にすでに親 PBDOM_OBJECT がある場合。この場合、 現行の PBDOM_DOCTYPE は、 何らかの文書の DOCTYPEです。

解説 DOM DOCTYPE オブジェク トは、オーナー文書を持つこ とができないか、 またはオーナー文書を持つこ とができても親ノードを持つこ とはできません。オーナー文書と親ノードを持っている DOCTYPE が、オーナー文書の実際の DOCTYPE です。

引数 説明

pbdom_doctype_name PBDOM_DOCTYPE オブジェク トの名前を指定

引数 説明

pbdom_doctype_name PBDOM_DOCTYPE オブジェク トの名前を指定

pbdom_document_ref 現行の PBDOM_DOCTYPE オブジェク トのオーナー文書と して設定する PBDOM_DOCUMENT オブジェク ト を指定

PowerBuilder エクステンシ ョ ン リファレンス 187

Page 204: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCTYPE

関連項目 SetParentObject

SetInternalSubset機能 PBDOM_DOCTYPE の内部サブセッ ト用データを設定します。

構文 pbdom_doctype_name.SetInternalSubset()

戻り値 PBDOM_DOCTYPE。 新規内部サブセッ トが設定された現行の PBDOM_DOCTYPE です。

例 たとえば、 次の DTD 宣言がある と します。

<!DOCTYPE abc [<!ELEMENT abc (#PCDATA)> <!ELEMENT data (#PCDATA)> <!ELEMENT inner_data (#PCDATA)>]>

次のコードでは、 メ ッセージ ボッ ク スに内部サブセッ ト を表示します。

string strInternalSubsetpbdom_document pbdom_doc

strInternalSubset = pbdom_doc.GetDocType().GetInternalSubset()strInternalSubset += "<!ELEMENT another_data(#PCDATA)>"pbdom_doc.GetDocType().SetInternalSubset (strInternalSubset)

MessageBox ("内部サブセッ ト取得 ", &pbdom_doc.GetDocType().GetInternalSubset())

GetInternalSubset を呼び出して返される文字列は、 次のとおりです。

"<!-- internal subset --> <!ELEMENT abc (#PCDATA)> <!ELEMENT data (#PCDATA)> <!ELEMENT inner_data (#PCDATA)> <!ELEMENT another_data (#PCDATA)>"

「another_data」に対する新規 ELEMENT 宣言は、最終的な内部サブセットに含まれます。

関連項目 GetInternalSubset

引数 説明

pbdom_doctype_name PBDOM_DOCTYPE オブジェク トの名前を指定

188 PowerBuilder

Page 205: · PDF file(PBDOM : PowerBuilder Document Object Model

第 11 章 PBDOM_DOCTYPE クラス

SetName機能 現行の PBDOM_DOCTYPE で宣言されるルート要素の名前を設定しま

す。

構文 pbdom_doctype_name.SetName(string strName)

戻り値 Boolean 型。ルート要素の名前が変更された場合は true を返し、それ以外の場合は false を返します。

SetParentObject機能 参照さ れる PBDOM_OBJECT を現行の PBDOM_OBJECT の親と して

設定し、 現行の PBDOM_DOCTYPE の DOCTYPE を、 参照される PBDOM_DOCUMENT の DOCTYPE と して設定します。

構文 pbdom_doctype_name.SetParentObject(pbdom_object pbdom_object_ref)

戻り値 PBDOM_OBJECT

Throws EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 現行の PBDOM_DOCTYPE にすでに親がある場合

EXCEPTION_MULTIPLE_DOCTYPE ― 入力された PBDOM_OBJECT がPBDOM_DOCUMENT オブジェク トで、 すでに文書型を持っている場合

EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT ― 入力されたPBDOM_OBJECT が PBDOM_DOCUMENT でない場合

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_OBJECT が、派生した PBDOM_OBJECT に関連付けられていない場合

引数 説明

pbdom_doctype_name PBDOM_DOCTYPE オブジェク トの名前を指定

strName 現行の PBDOM_DOCTYPE で宣言されるルー ト 要素に対して設定する新しい名前を指定

引数 説明

pbdom_doctype_name PBDOM_DOCTYPE オブジェク トの名前を指定

pbdom_object_ref 現行の PBDOM_DOCTYPE オブジェ ク ト の親と して設定する PBDOM_OBJECT を指定

PowerBuilder エクステンシ ョ ン リファレンス 189

Page 206: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCTYPE

解説 このメ ソ ッ ド は、 入力された PBDOM_OBJECT を現行の PBDOM_OBJECT の親と して設定します。入力された PBDOM_OBJECT は PBDOM_DOCUMENT でなければなり ません。 そう でない場合は、 例外が送出されます。

PBDOM では、 SetParentObject の呼び出しは、 入力された PBDOM_DOCUMENT を、現行の PBDOM_DOCTYPE のオーナー文書と親ノ ード と して設定するこ と と 同じです。 これは、 PBDOM_DOCTYPE に含まれる DOCTYPE を文書の DOCTYPE と して設定する際に影響を与えます。

DOM DOCTYPE オブジェク トは、オーナー文書を持つこ とができないか、 またはオーナー文書を持つこ とができても親ノードを持つこ とはできません。オーナー文書と親ノードを持っている DOCTYPE が、オーナー文書の実際の DOCTYPE です。

このメ ソ ッ ドは、 SetDocument メ ソ ッ ド と まった く同じです。

関連項目 SetDocument

SetPublicID機能 外部参照される DTD のパブリ ッ ク ID を設定します。

構文 pbdom_doctype_name.SetPublicID(string strPublicID)

戻り値 PBDOM_DOCTYPE

例 たとえば、 次の DTD 宣言がある と します。

<!DOCTYPE abc [<!ELEMENT abc (#PCDATA)> <!ELEMENT data (#PCDATA)> <!ELEMENT inner_data (#PCDATA)>]>

次の例では、 パブリ ッ ク ID を設定してから、 この ID を取得してメ ッセージ ボッ クスに表示します。

PBDOM_DOCUMENT pbdom_doc

pbdom_doc.GetDocType().SetPublicID &("-//MyCompany//DTD//EN")

MessageBox ("パブリ ック ID 取得 ", &pbdom_doc.GetDocType().GetPublicID())

引数 説明

pbdom_doctype_name PBDOM_DOCTYPE オブジェク トの名前を指定

strPublicID 新しいパブリ ッ ク ID となる文字列を指定

190 PowerBuilder

Page 207: · PDF file(PBDOM : PowerBuilder Document Object Model

第 11 章 PBDOM_DOCTYPE クラス

GetPublicID を呼び出して返される文字列は、 次のとおりです。

"-//MyCompany//DTD//EN"

この文書の最終的な DOCTYPE 定義は、 次のとおりです。

<!DOCTYPE abc PUBLIC "-//MyCompany//DTD//EN" [<!ELEMENT abc (#PCDATA)> <!ELEMENT data (#PCDATA)> <!ELEMENT inner_data (#PCDATA)>]>

パブリ ック ID について

通常、 パブリ ッ ク ID はシステム ID を伴うため、 この例の DOCTYPE宣言 (パブ リ ッ ク ID は含まれているが、 システム ID は含まれていない) は、 一部のパーサでは無効とみなされる場合があ り ます。

関連項目 GetPublicIDGetSystemIDSetSystemID

SetSystemID機能 外部参照 DTD のシステム ID を設定します。

構文 pbdom_doctype_name.SetSystemID(strSystemID)

戻り値 PBDOM_DOCTYPE

例 たとえば、 次の DTD 宣言がある と します。

<!DOCTYPE abc [<!ELEMENT abc (#PCDATA)> <!ELEMENT data (#PCDATA)> <!ELEMENT inner_data (#PCDATA)>]>

次の例では、システム ID を設定してから、この ID を取得してメ ッセージ ボッ クスに表示します。

PBDOM_DOCUMENT pbdom_docpbdom_doc.GetDocType().SetSystemID &

("http://www.sybase.com/dtd/datadef.dtd")

MessageBox (" システム ID 取得 ", &pbdom_doc.GetDocType().GetSystemID())

引数 説明

pbdom_doctype_name PBDOM_DOCTYPE オブジェク トの名前を指定

strSystemID 新しいパブリ ッ ク ID となる文字列を指定

PowerBuilder エクステンシ ョ ン リファレンス 191

Page 208: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCTYPE

GetSystemID を呼び出して返される文字列は、 次のとおりです。

"http://www.sybase.com/dtd/datadef.dtd"

この文書の最終的な DOCTYPE 定義は、 次のとおりです。

<!DOCTYPE abc SYSTEM "http://www.sybase.com/dtd/datadef.dtd"[<!ELEMENT abc (#PCDATA)> <!ELEMENT data (#PCDATA)> <!ELEMENT inner_data (#PCDATA)>]>

関連項目 GetPublicIDGetSystemIDSetPublicID

192 PowerBuilder

Page 209: · PDF file(PBDOM : PowerBuilder Document Object Model

第 1 2 章 PBDOM_DOCUMENT クラス

この章について この章では、 PBDOM_DOCUMENT ク ラスについて説明します。

PBDOM_DOCUMENT機能 PBDOM_DOCUMENT ク ラスは、 XML DOM 文書の動作を定義し

ます。 このク ラスのメ ソ ッ ド を使用する と、 ルート要素、 処理命令、 およびそのほかの文書レベル情報にアクセスする こ とができます。

PBDOM_DOCUMENT ク ラスは PBDOM_OBJECT ク ラスから継承されているため、 大部分の PBDOM_OBJECT ク ラスのメ ソ ッ ド特有の実装に対応します。

メ ソ ッ ド PBDOM_OBJECT から継承されたメ ソ ッ ドの中には、 意味のある用途を持たず、 デフォル トの機能や重要でない機能しか実行しないものもあ り ます。 これらのメ ソ ッ ドについて、 次の表で説明します。

メ ソ ッ ド 戻り値

Detach 現行の PBDOM_DOCUMENTGetName 文字列 「#document」GetOwnerDocumentObject null

GetParentObject null

GetText 空の文字列

GetTextNormalize 空の文字列

GetTextTrim 空の文字列

SetName false

SetParentObject 現行の PBDOM_DOCUMENT

PowerBuilder エクステンシ ョ ン リファレンス 193

Page 210: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCUMENT

PBDOM_DOCUMENT ク ラスには、 次の重要なメ ソ ッ ドがあ り ます。

AddContentCloneDetachRootElementEqualsGetContentGetDocTypeGetElementsByTagNameGetObjectClassGetObjectClassStringGetRootElementHasChildrenHasRootElementInsertContentIsAncestorObjectOfNewDocumentRemoveContentSaveDocumentSaveDocumentIntoStringSetContentSetDocTypeSetRootElement

AddContent機能 新しい PBDOM_OBJECT を現行の PBDOM_DOCUMENT オブジェ ク

トに追加します。

構文 pbdom_document_name.AddContent(pbdom_object pbdom_object_ref)

戻り値 PBDOM_OBJECT。 修正されて、 PBDOM_OBJECT と して返された PBDOM_DOCUMENT オブジェク トです。

Throws EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 入力された PBDOM_OBJECT に名前を付けるこ とができるが、 現在は名前が付いていない場合

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェク トの名前を指定

pbdom_object_ref 追加する PBDOM_OBJECT を指定

194 PowerBuilder

Page 211: · PDF file(PBDOM : PowerBuilder Document Object Model

第 12 章 PBDOM_DOCUMENT クラス

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_OBJECT オブジェク トが、 派生した PBDOM_OBJECT ク ラス オブジェク トに関連付けられていない場合

EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT ― 入力さ れた PBDOM_OBJECT が追加できないオブジェク ト である場合。 PBDOM_DOCUMENT オブジェク トに追加できる有効な PBDOM_OBJECT については、 この節の 「解説」 に記載されている表を参照

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 追加する PBDOM_OBJECT にすでに親 PBDOM_OBJECT がある場合

EXCEPTION_MULTIPLE_ROOT_ELEMENT ― PBDOM_ELEMENT を追加する現行の文書にすでにルート要素がある場合

EXCEPTION_MULTIPLE_DOCTYPE ― PBDOM_DOCTYPE を追加する現行の文書にすでに DOCTYPE がある場合

例 pbdom_elem_1、 pbdom_elem_2、 および pbdom_elem_3 の 3 つの要素を持つ文書 pbdom_doc1 を作成します。 pbdom_elem_2 と pbdom_elem_3 は、pbdom_element_1 の子と して設定します。pbdom_doc1.GetRootElement().Detach() でルート 要素を pbdom_doc1 から切り 離します。 pbdom_doc1.AddContent(pbdom_elem_1) で pbdom_elem_1 を pbdom_doc1 の子と して追加します。

TRYPBDOM_ELEMENT pbdom_elem_1PBDOM_ELEMENT pbdom_elem_2PBDOM_ELEMENT pbdom_elem_3PBDOM_DOCUMENT pbdom_doc1

pbdom_doc1 = Create PBDOM_DOCUMENTpbdom_elem_1 = Create PBDOM_ELEMENTpbdom_elem_2 = Create PBDOM_ELEMENTpbdom_elem_3 = Create PBDOM_ELEMENT

pbdom_elem_1.SetName("pbdom_elem_1")pbdom_elem_2.SetName("pbdom_elem_2")pbdom_elem_3.SetName("pbdom_elem_3")

pbdom_elem_1.AddContent(pbdom_elem_2)pbdom_elem_1.AddContent(pbdom_elem_3)

pbdom_doc1.NewDocument("", "", "Root_Element", &"", "")

pbdom_doc1.GetRootElement().Detach()

PowerBuilder エクステンシ ョ ン リファレンス 195

Page 212: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCUMENT

pbdom_doc1.AddContent(pbdom_elem_1)CATCH (pbdom_exception ex)

MessageBox("例外 ", ex.getMessage())END TRY

元のルート要素 <Root_Element> は切り離されて、 <pbdom_elem_1> と置き換えられました。 文書は次のよ うに変換されます。

<!DOCTYPE Root_Element><pbdom_elem_1>

<pbdom_elem_2/><pbdom_elem_3/>

</pbdom_elem_1>

次のルート要素の切り離しステート メ ン ト を省略する と、 例外が送出されます。

pbdom_doc1.GetRootElement().Detach()

解説 新し い PBDOM_OBJECT は、 現行の PBCOM_DOCUMENT の子PBDOM_OBJECT と なり ます。 次の表に、 PBDOM_DOCUMENT オブジェク ト に追加するこ と ができる PBDOM_OBJECT と 、 追加する際の制約事項を示し ます。

PBDOM_OBJECT 制約事項

PBDOM_ELEMENT 現行の文書に現在ルート要素が含まれていない場合にのみ追加できます。 含まれている場合は、 例外 EXCEPTION_MULTIPLE_ROOT_ELEMENT が送出されます。

追加する PBDOM_ELEMENT には、 親 PBDOM_OBJECT が存在していてはなり ません。 親がいる場合は、 例外 EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT が送出されます。

PBDOM_COMMENT 複数の PBDOM_COMMENT オブジェク ト を文書に追加できます。

唯一の制約事項は、 PBDOM_COMMENT に親が存在していてはならないこ とです。 親がいる場合は、 例外 EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT が送出されます。

196 PowerBuilder

Page 213: · PDF file(PBDOM : PowerBuilder Document Object Model

第 12 章 PBDOM_DOCUMENT クラス

関連項目 GetContentInsertContentRemoveContentSetContent

Clone機能 現行の PBDOM_DOCUMENT オブジェク トのク ローンを作成します。

構文 pbdom_document_name.Clone(boolean bDeep)

戻り値 PBDOM_OBJECT

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― PBDOM_DOCUMENTオブジェク ト の内部実装が null の場合。 この例外が送出されるのはまれですが、 重大なメ モリ の破損が発生した場合に送出されること がある

PBDOM_PROCESSINGINSTRUCTION

複数の PBDOM_PROCESSINGINSTRUCTION オブジェク ト を文書に追加できます。

唯一の制約事項は、PBDOM_PROCESSINGINSTRUCTION に親が存在していてはならないこ とです。 親がいる場合は、 例外 EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT が送出されます。

PBDOM_DOCTYPE 現行の文書に現在 DOCTYPE ノードが含まれていない場合にのみ追加できます。 含まれている場合は、 例外 EEXCEPTION_MULTIPLE_DOCTYPE が送出されます。

追加する PBDOM_DOCTYPE には、 親 PBDOM_OBJECT が存在していてはなり ません。 親がいる場合は、 例外 EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT が送出されます。

PBDOM_OBJECT 制約事項

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェク トの名前を指定

bDeep 詳細クローンを返すか、 簡易クローンを返すかを指定する Boolean 型の値を指定。 指定する値は、 詳細クローンの場合は true、簡易クローンの場合は false

PowerBuilder エクステンシ ョ ン リファレンス 197

Page 214: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCUMENT

解説 詳細クローンを指定した場合、 Clone メ ソッ ド は、 現行の PBDOM_DOCUMENT オブジェク ト の詳細クローンを PBDOM_OBJECT と して作成します。 こ のメ ソ ッ ド は、 PBDOM_DOCUMENT オブジェク ト と その下位サブツリ ーすべてのク ローンを作成します。 こ のサブツ リーには PBDOM_DOCUMENT オブジェク トの正当な子がすべて含まれています。

簡易クローンを指定した場合は、 このメ ソ ッ ド は PBDOM_DOCUMENTオブジェク ト のみのクローンを作成し、 空の PBDOM_DOCUMENT オブジェク ト を PBDOM_OBJECT と して返します。

DetachRootElement機能 現行の文書のルート要素を切り離して、 切り離したルート要素を返し

ます。

構文 pbdom_document_name.DetachRootElement()

戻り値 PBDOM_ELEMENT

Throws EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リ不足が発生した場合

関連項目 GetRootElementHasRootElementSetRootElement

Equals機能 現行の PBDOM_DOCUMENT オブジェク ト と参照される

PBDOM_OBJECT が同じであるかど うかを調べます。

構文 pbdom_document_name.Equals(pbdom_object pbdom_object_ref)

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェク トの名前を指定

引数 説明

pbdom_document_name PBDOM_OBJECT の名前を指定

pbdom_object_ref 現行の PBDOM_DOCUMENT と同じであるかど うかを調べる PBDOM_OBJECT を指定

198 PowerBuilder

Page 215: · PDF file(PBDOM : PowerBuilder Document Object Model

第 12 章 PBDOM_DOCUMENT クラス

戻り値 Boolean 型。 現行の PBDOM_DOCUMENT オブジェ ク ト が入力されたPBDOM_OBJECT と同じである場合は true を返し、 それ以外の場合はfalse を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_OBJECT が、派生した PBDOM_OBJECT ク ラス オブジェク トに関連付けられていない場合

EXCEPTION_INVALID_ARGUMENT ― 入力された PBDOM_OBJECT が無効である場合。PBDOM_OBJECT が正し く初期化されていないか、 nullオブジェク ト参照である場合に、 無効となる

解説 参照される PBDOM_OBJECT も PBDOM_DOCUMENT オブジェ ク トであ り、 現行の PBDOM_DOCUMENT オブジェク ト と同じ DOM 文書を参照している場合にのみ、 true が返されます。

GetContent機能 現行の PBDOM_DOCUMENT オブジェク トの子の内容をすべて返しま

す。

構文 pbdom_document_name.GetContent(ref pbdom_object pbdom_object_array[ ])

戻り値 Boolean 型。正常に終了した場合は true を返し、失敗した場合は false を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トが、 派生した PBDOM_OBJECTク ラス オブジェク トに関連付けられていない場合

例 次の XML 文書が pbdom_doc とい う PBDOM_DOCUMENT オブジェクトに格納されている と します。

<Root><Element_1>

<Element_1_1/><Element_1_2/><Element_1_3/>

</Element_1><Element_2/><Element_3/>

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェク トの名前を指定

pbdom_object_array PBDOM_OBJECT を受け取る PBDOM_OBJECT の配列の参照名を指定

PowerBuilder エクステンシ ョ ン リファレンス 199

Page 216: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCUMENT

</Root>

次のスク リプ トでは、 配列 pbdom_obj_array に、 要素 Root を表す PBDOM_ELEMENT が 1 つ含まれます。pbdom_obj_array[1] - <Root>:

PBDOM_DOCUMENT pbdom_docPBDOM_OBJECT pbdom_obj_array[]...pbdom_doc.GetContent(pbdom_obj_array)pbdom_doc.GetRootElement().GetContent(pbdom_obj_array)

上記のコードの最後の行で、GetRootElement を呼び出すと、次の要素が含まれた配列が生成されます。

pbdom_obj_array[1] - <Element_1>pbdom_obj_array[2] - <Element_2>pbdom_obj_array[3] - <Element_3>

生成された PBDOM_OBJECT 配列を操作するこ とができます。 たとえば、 次のステート メ ン ト を実行する と、 Element_2 にテキス ト ノード「Element 2 Text」 が追加されます。

pbdom_obj_array[2].AddContent ("Element 2 Text")

この呼び出しを実行した後のツ リーは、 次のよ うにな り ます。

<Root>Element_1>

Element_1_1/>Element_1_2/>Element_1_3/>

/Element_1>Element_2>Element 2 Text<Element_2/>Element_3/>

</Root>

解説 返された配列は、 PBDOM_DOCUMENT オブジェク トに表示される とき と同じ配列項目の順序で、 参照渡し されます。 配列項目に変更を加える と、 配列が参照する実際の項目にも影響を与えます。

関連項目 AddContentInsertContentRemoveContentSetContent

200 PowerBuilder

Page 217: · PDF file(PBDOM : PowerBuilder Document Object Model

第 12 章 PBDOM_DOCUMENT クラス

GetDocType機能 現行の XML DOM 文書の DOCTYPE 宣言を取得します。

構文 pbdom_document_name.GetDocType()

戻り値 PBDOM_DOCTYPE

Throws EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リ不足が発生した場合

解説 DOCTYPE 宣言は PBDOM_OBJECT に格納されます。

GetElementsByTagName機能 XML ドキュ メン ト内で指定された TagName を持つすべての要素を検

索します。

構文 pbdom_object_name.GetElementsByTagName(string strTagName, ref pbdom_element pbdom_element_array[])

戻り値 Boolean 型。GetElementsByTagName は、正常に終了した場合は true を返し、 例外が発生した場合は false を返します。

例 PBDOM_DOCUMENT には以下の XML 記述を含んでいる ものと します。

<book><title>The Winter’s Tale</title><author>William Shakespeare</author><price>7.95</price><quantity>1</quantity>

</book><book>

<title>Le Lecon</title><author>Eugene Ionesco</author><price>10.95</price><quantity>1</quantity>

</book>

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェク トの名前を指定

引数 説明

strTagName 検索するためのエレ メン トの TagName pbdom_element_array[] 指定された TagName を持つ PBDOM_ELEMENT

オブジェク ト配列への参照

PowerBuilder エクステンシ ョ ン リファレンス 201

Page 218: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCUMENT

<book><title>Deutsches Tempo</title><author>Kurt Tucholsky</author><price>13.95</price><quantity>1</quantity>

</book>

以下のステート メ ン ト では、 ドキュ メン トからタイ トルの一覧を抽出し、 マルチラインエディ ッ ト コン ト ロールに表示します。

pbdom_document docpbdom_element element[]

// ドキュ メン トはロール要素を含んでいますboolean bb_bool

bb_bool = doc.getelementsbytagname("title",element[])

integer ii_bound, i

ii_bound = upperbound(element)for i = 1 to ii_bound

mle_1.text += element[i].gettext() + "~r~n"next

GetObjectClass機能 現行の PBDOM_OBJECT のク ラスを示す Long 型の整数値コードを返

します。

構文 pbdom_object_name.GetObjectClass()

戻り値 Long 型。 現行の PBDOM_OBJECT のク ラ スを示す Long 型の整数値コードを返します。 pbdom_object_name が PBDOM_DOCUMENT オブジェク トのと きは、 戻り値は 2 です。

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

202 PowerBuilder

Page 219: · PDF file(PBDOM : PowerBuilder Document Object Model

第 12 章 PBDOM_DOCUMENT クラス

GetObjectClassString機能 PBDOM_OBJECT のク ラスを文字列で返します。

構文 pbdom_object_name.GetObjectClassString()

戻り値 String 型。 現行の PBDOM_OBJECT のク ラスを示す文字列を返します。pbdom_object_name が PBDOM_DOCUMENT オブジェク トのと きは、返される文字列は 「pbdom_document」 です。

GetRootElement機能 現行の XML DOM 文書のルート要素を取得します。

構文 pbdom_document_name.GetRootElement()

戻り値 PBDOM_ELEMENT。 PBDOM_ELEMENT オブジェ ク ト に格納されている PBDOM_DOCUMENT オブジェク トのルート要素です。

Throws EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リ不足が発生した場合

解説 戻り値は、 PBDOM_ELEMENT オブジェク トにカプセル化されているルート要素です。

関連項目 DetachRootElementHasRootElementSetRootElement

HasChildren機能 現行の PBDOM_DOCUMENT オブジェク トに 1 つ以上の子

PBDOM_OBJECT がある場合は true を返し、 1 つもない場合は false を返します。

構文 pbdom_document_name.HasChildren()

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェク トの名前を指定

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェク トの名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 203

Page 220: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCUMENT

戻り値 Boolean 型。現行の PBDOM_DOCUMENT オブジェク トに 1 つ以上の子PBDOM_OBJECT がある場合は true を返し、それ以外の場合は false を返します。

HasRootElement機能 現行の文書にルート要素がある場合は true を返します。

構文 pbdom_document_name.HasRootElement()

戻り値 Boolean 型。現行の PBDOM_DOCUMENT オブジェク トにルート要素がある場合は true を返し、 ない場合は false を返します。

関連項目 DetachRootElementGetRootElementSetRootElement

InsertContent機能 新しい PBDOM_OBJECT を現行の PBDOM_DOCUMENT オブジェ ク

トに挿入します。

構文 pbdom_document_name.InsertContent(pbdom_object pbdom_object_new, pbdom_object pbdom_object_ref)

戻り値 PBDOM_OBJECT。 修正されて、 PBDOM_OBJECT と し て返されたPBDOM_DOCUMENT オブジェク トです。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力された挿入する PBDOM_OBJECTが無効である場合。 PBDOM_OBJECT が正しく 初期化されていないか、null オブジェク ト 参照である場合に、 無効と なること がある

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェク トの名前を指定

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェク トの名前を指定

pbdom_object_new 挿入する PBDOM_OBJECT を指定

pbdom_object_ref 新しい PBDOM_OBJECT を挿入する位置の後にある PBDOM_OBJECT を指定

204 PowerBuilder

Page 221: · PDF file(PBDOM : PowerBuilder Document Object Model

第 12 章 PBDOM_DOCUMENT クラス

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 入力された挿入する PBDOM_OBJECT にユーザ定義名が付いていない場合。参照 PBDOM_OBJECT が特に null に設定されていない限 り、 参照PBDOM_OBJECT にユーザ定義名が付いていない場合にも、 同じ例外が送出される

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された挿入する PBDOM_OBJECT が、派生した PBDOM_OBJECT に関連付けられていない場合。 参照 PBDOM_OBJECT が特に null に設定されていない限り、参照 PBDOM_OBJECT が派生した PBDOM_OBJECT に関連付けられていない場合にも、 同じ例外が送出される

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 入力された挿入する PBDOM_OBJECT にすでに親がある場合

EXCEPTION_MULTIPLE_ROOT_ELEMENT ― PBDOM_ELEMENT が挿入される現行の文書にすでにルート要素がある場合

EXCEPTION_MULTIPLE_DOCTYPE ― PBDOM_DOCTYPE を挿入する現行の文書にすでに DOCTYPE がある場合

EXCEPTION_HIERARCHY_ERROR ― PBDOM_OBJECT の挿入が文書の整形式化に悪影響を及ぼす場合

EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT ― 無効な PBDOM_OBJECT が挿入される場合。 PBDOM_DOCUMENT オブジェ ク ト に追加でき る有効な PBDOM_OBJECT については、 194ページの 「AddContent」 を参照して ください。

EXCEPTION_WRONG_PARENT_ERROR ― 参照 PBDOM_OBJECT が現行の PBDOM_DOCUMENT オブジェク トの子でない場合

例 PBDOM_DOCUMENT を XML 文字列から作成します。PBDOM_ELEMENT pbdom_elem_1 も作成し、 Elem_1 と して設定します。PBDOM_DOCTYPE pbdom_doctype_1 と 、 ルート 要素 pbdom_root_elem を設定します。

ルート 要素をその親から切り 離します。この親は、PBDOM_DOCUMENTオブジェク ト そのものでもあり ます。 これで、 pbdom_elem_1 を、 文書内の pbdom_doctype_1 の直前の位置に挿入できます。

pbdom_builder pbdom_builder_1pbdom_document pbdom_docpbdom_doctype pbdom_doctype_1pbdom_element pbdom_elem_1pbdom_element pbdom_elem_rootstring strXML

PowerBuilder エクステンシ ョ ン リファレンス 205

Page 222: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCUMENT

strXML = "<!DOCTYPE abc [<!-- internal subset -->"strXML += "<!ELEMENT abc (#PCDATA)> "strXML += "<!ELEMENT data&(#PCDATA)> "strXML += "<!ELEMENT inner_data (#PCDATA)>]><abc>"strXML += "Root Element Data<data>ABC Data<inner_data>"strXML += "My Inner Data</inner_data>My Data</data>"strXML += " now with extra& info</abc>"

pbdom_builder_1 = Create PBDOM_Builderpbdom_elem_1 = Create PBDOM_Element

pbdom_doc = pbdom_builder_1.BuildFromString (strXML)pbdom_elem_1.SetName ("Elem_1")pbdom_doctype_1 = pbdom_doc.GetDocType()pbdom_elem_root = pbdom_doc.GetRootElement()

pbdom_elem_root.Detach()pbdom_doc.InsertContent(pbdom_elem_1, pbdom_doctype_1

上記のスク リプ トの結果、 次の文書が作成されますが、 これは整形式ではあ り ません。

<Elem_1/><!DOCTYPE abc[<!-- internal subset --> <!ELEMENT abc (#PCDATA)*> <!ELEMENT data (#PCDATA)*> <!ELEMENT inner_data (#PCDATA)*>]>

解説 新しい PBDOM_OBJECT を現行の PBDOM_DOCUMENT オブジェク ト に挿入すると 、 新しい PBDOM_OBJECT は、 現行の PBDOM_DOCUMENTオブジェク ト の子ノ ード になり ます。また、新しい PBDOM_OBJECT は、2 番目のパラメ ータで指定したも う 1 つの PBDOM_OBJECT の直前に配置されます。

2 番目の PBDOM_OBJECT を null に指定すると 、新しい PBDOM_OBJECTは、 現行の PBDOM_DOCUMENT オブジェク ト の子のリ スト の最後に挿入されます。

関連項目 AddContentGetContentRemoveContentSetContent

206 PowerBuilder

Page 223: · PDF file(PBDOM : PowerBuilder Document Object Model

第 12 章 PBDOM_DOCUMENT クラス

IsAncestorObjectOf機能 現行の PBDOM_DOCUMENT オブジェク トが、 ほかの

PBDOM_OBJECT の先祖であるかど うかを調べます。

構文 pbdom_document_name.IsAncestorObjectOf(pbdom_object pbdom_object_ret)

戻り値 Boolean 型。 現行の PBDOM_DOCUMENT オブジェ ク ト が参照されるPBDOM_OBJECT の先祖である場合は true を返し、 それ以外の場合はfalse を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力された PBDOM_OBJECT が無効である場合。PBDOM_OBJECT が正し く初期化されていないか、 nullオブジェク ト参照である場合に、 無効となるこ とがある

NewDocument機能 NewDocument メ ソ ッ ドは、 次のよ うに上書きされます。

• 構文 1 は、新しい DOM 文書内に格納されるルート要素の名前を指定して、 XML DOM 文書を新規作成します。

• 構文 2 は、新しい DOM 文書に格納されるルート要素の名前と名前空間 URI に加え、外部サブセッ ト パブリ ッ ク識別子とシステム識別子も指定して、 XML DOM 文書を新規作成します。

構文

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェク トの名前を指定

pbdom_object_ref チェッ ク対象となる PBDOM_OBJECT を指定

構文 参照先

NewDocument(string strRootElementName) NewDocument 構文 1NewDocument(string strRootElementNamespacePrefix, stringstrRootElementNamespaceURI, string strRootElementName, string strDocTypePublicId, string strDocTypeSystemId)

NewDocument 構文 2

PowerBuilder エクステンシ ョ ン リファレンス 207

Page 224: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCUMENT

NewDocument 構文 1機能 最初から XML DOM 文書を新規作成します。

構文 pbdom_document_name.NewDocument(strRootElementName)

戻り値 Boolean 型。文書が正常に新規作成された場合は true を返し、それ以外の場合は false を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力された文字列が無効である場合。PowerScript の SetNull メ ソ ッ ドを使って文字列を null に設定していた場合に、 無効となるこ とがある

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リ不足が発生した場合

解説 パラ メータ strRootElementName がルート要素の名前になり ます。

関連項目 SaveDocument

NewDocument 構文 2機能 最初から XML DOM 文書を新規作成します。

構文 pbdom_document_name.NewDocument(string strRootElementNamespacePrefix, string strRootElementNamespaceURI, string strRootElementName, string strDocTypePublicId, string strDocTypeSystemId)

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェク トの名前を指定

strRootElementName DOM 文書内に格納するルート要素名を指定

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェ ク ト の名前を指定

strRootElementNamespacePrefix DOM 文書内に格納するルー ト要素の名前空間の接頭辞を指定。 空の文字列も指定できる

strRootElementNamespaceURI DOM 文書内に格納するルー ト要素の名前空間 URI を指定。 空の文字列も指定できる

strRootElementName DOM 文書内に格納するルー ト要素名を指定

strDocTypePublicId 外部サブセッ ト パブリ ッ ク識別子を指定 strDocTypeSystemId 外部サブセッ ト システム識別子を指定

208 PowerBuilder

Page 225: · PDF file(PBDOM : PowerBuilder Document Object Model

第 12 章 PBDOM_DOCUMENT クラス

戻り値 Boolean 型。文書が正常に新規作成された場合は true を返し、それ以外の場合は false を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力された文字列のいずれかが無効である場合。PowerScript の SetNull メ ソ ッ ドを使って文字列を null に設定していた場合に、 無効となるこ とがある

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リ不足が発生した場合

EXCEPTION_INVALID_NAME ― ルート要素名か、ルート要素の名前空間の接頭辞または URI が無効である場合

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― PBDOM_DOCUMENTオブジェク ト の内部実装が NULL の場合。 この例外が送出されるのはまれですが、重大なメ モリ の破損が発生した場合に送出されること がある

例 例 1 次の例では、 NewDocument メ ソ ッ ドの名前空間の接頭辞と URI の引数に空の文字列を指定して、 ルート要素が名前空間に属していないPBDOM_DOCUMENT オブジェク ト を作成します。

PBDOM_DOCUMENT pbdom_doc

trypbdom_doc = Create PBDOM_DOCUMENTpbdom_doc.NewDocument ("", "", "root", "public_id", &

"system_id.dtd")

pbdom_doc.SaveDocument &("new_document_no_namespace.xml")

catch (PBDOM_EXCEPTION except)MessageBox ("PBDOM_EXCEPTION", except.GetMessage())

end try

シ リ アライズする と、 XML 文書は次のよ うにな り ます。

<!DOCTYPE root PUBLIC "public_id" "system_id.dtd"><root xmlns=""/>

ルート要素にある名前空間の宣言属性 (xmlns="") は、 ルート要素がどの名前空間にも属さないこ とを示します。

例 2 次の例では、 ルー ト要素がデフォル ト の名前空間に属しているPBDOM_DOCUMENT オブジェク ト を作成します。URI は http://www.pre.com です。 これは、 ルー ト 要素が名前空間http://www.pre.com に属する こ と を意味します。 接頭辞は空の文字列です。 これは、 ルート要素がデフォルトで http://www.pre.com 名前空間に属するこ とを意味します。

PowerBuilder エクステンシ ョ ン リファレンス 209

Page 226: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCUMENT

PBDOM_DOCUMENT pbdom_doc

trypbdom_doc = Create PBDOM_DOCUMENTpbdom_doc.NewDocument ("", "http://www.pre.com", &

"root", "public_id", "system_id.dtd")

pbdom_doc.SaveDocument &("new_document_default_namespace.xml")

catch (PBDOM_EXCEPTION except)MessageBox ("PBDOM_EXCEPTION", except.GetMessage())

end try

シ リ アライズする と、 XML 文書は次のよ うにな り ます。

<!DOCTYPE root PUBLIC "public_id" "system_id.dtd"><root xmlns="http://www.pre.com"/>

ルート 要素にある名前空間の宣言属性 (xmlns="http://www.pre.com")は、ルート 要素がデフォルト の名前空間 http://www.pre.com に属すること を示します。root のすべての子要素は、別のスコープ内名前空間の宣言が存在して使用されていない限り 、 同じ名前空間に属します。

例 3 次の例では、 接頭辞が付いている名前空間にルート要素が属している PBDOM_DOCUMENT オブジェク ト を作成します。 名前空間の接頭辞は pre で、 URI は http://www.pre.com です。 これは、 ルート要素が名前空間 http://www.pre.com に属し、 ルート要素が pre という名前空間の接頭辞を持つこ とを意味します。

PBDOM_DOCUMENT pbdom_doc

trypbdom_doc = Create PBDOM_DOCUMENTpbdom_doc.NewDocument ("pre", "http://www.pre.com", &

"root", "public_id", "system_id.dtd")

pbdom_doc.SaveDocument &("new_document_namespace.xml")

catch (PBDOM_EXCEPTION except)MessageBox ("PBDOM_EXCEPTION", except.GetMessage())

end try

シ リ アライズする と、 XML 文書は次のよ うにな り ます。

<!DOCTYPE pre:root PUBLIC "public_id" "system_id.dtd"><pre:root xmlns:pre="http://www.pre.com"/>

210 PowerBuilder

Page 227: · PDF file(PBDOM : PowerBuilder Document Object Model

第 12 章 PBDOM_DOCUMENT クラス

名前空間の宣言属性 (xmlns:pre="http://www.pre.com") は、 ルート要素にあ り ます。 ルート要素には、 pre 接頭辞も含まれます。 これは、ルート要素が名前空間 http://www.pre.com に属するこ とを示します。

ただし、 修飾された名前にも pre 接頭辞が含まれ、 pre とい う接頭辞が付いた http://www.pre.com に関するスコープ内名前空間の宣言が存在する場合、http://www.pre.com 名前空間に pre とい う接頭辞が付いている ときは、 ルート要素の子要素が同じ名前空間に属しているこ とを意味します。

解説 この構文で指定できる 5 つのパラ メータを使用する と、 文書の DOCTYPE 定義を細かく制御できます。

関連項目 SaveDocument

RemoveContent機能 現行の PBDOM_DOCUMENT オブジェ ク ト から子 PBDOM_OBJECT

を削除します。

構文 pbdom_document_name.RemoveContent(pbodm_object pbdom_object_ref)

戻り値 Boolean 型。 内容が削除された場合は true を返し、 それ以外の場合はfalse を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力された削除する PBDOM_OBJECTが無効である場合。PBDOM_ELEMENT が正しく 初期化されていないか、null オブジェク ト 参照である場合に、 無効と なること がある

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 入力された PBDOM_OBJECT に名前を付けるこ とができるが、 名前が付いていない場合

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_OBJECT が、派生した PBDOM_OBJECT ク ラス オブジェク トに関連付けられていない場合

EXCEPTION_WRONG_DOCUMENT_ERROR ― 入力された PBDOM_OBJECTが現行の PBDOM_DOCUMENT オブジェク ト 内に含まれていない場合

EXCEPTION_WRONG_PARENT_ERROR ― 入力された PBDOM_OBJECTが現行の PBDOM_DOCUMENT オブジェク トの子でない場合

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェク トの名前を指定

pbdom_object_ref 削除する PBDOM_OBJECT を指定

PowerBuilder エクステンシ ョ ン リファレンス 211

Page 228: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCUMENT

解説 PBDOM_OBJECT を現行の PBDOM_DOCUMENT オブジェク トから削除する と、 削除された PBDOM_OBJECT の子もすべて削除されます。

関連項目 AddContentGetContentInsertContentSetContent

SaveDocument機能 PBDOM_DOCUMENT オブジェク ト内に格納されている DOM ツ リー

を表す XML 文字列を、 シ リ アライズしてファ イルに保存します。

構文 pbdom_document_name.SaveDocument(string strFileName)

戻り値 Boolean 型。 新規文書が正常にファ イルに保存された場合は true を返し、 それ以外の場合は false を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― ファ イル名に指定した文字列が無効である場合。PowerScript の SetNull メ ソ ッ ドを使って文字列を null に設定していた場合に、 無効となるこ とがある

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リ不足が発生した場合

解説 既存の XML 文書や文字列から作成された PBDOM_DOCUMENT オブジェク トは、 XML 文書や文字列に再変換する と、元のオブジェク ト と異なる場合があ り ます。PowerScript で何も PBDOM_DOCUMENT オブジェク トに修正を加えていない場合でも、 この現象が起こる可能性があ り ます。

これは、 元の XML 文書や文字列が、 デフォル ト属性を含むこ とを義務づけている外部 DTD を参照する場合に発生する可能性があ り ます。この場合、PBDOM はメモ リ内の DOM ツ リーを作成する と きに、DTDの規約に従って、 必要な属性を適切な要素に挿入します。

PBDOM_DOCUMENT オブジェ ク ト を保存してから XML 文書に再変換する と、 これらのデフォルト属性が文書に保存されます。

関連項目 NewDocument

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェク トの名前を指定

strFileName 現行の PBDOM_DOCUMENT オブジェ ク ト の内容をシ リ アライズして保存するファイル名を指定

212 PowerBuilder

Page 229: · PDF file(PBDOM : PowerBuilder Document Object Model

第 12 章 PBDOM_DOCUMENT クラス

SaveDocumentIntoString機能 PBDOM_DOCUMENT オブジェク ト内に格納されている DOM ツ リー

を表す XML 文字列を、 シ リ アライズして文字列に保存します。

構文 pbdom_document_name.SaveDocumentIntoString( )

戻り値 String 型。 PBDOM_DOCUMENT の XML 文字列を含む文字列を返します。

例 次のコードは、 新しい PBDOM_DOCUMENT を作成し、 それを文字列ls_xml に保存します。

PBDOM_DOCUMENT pbdom_docstring ls_xml

trypbdom_doc = Create PBDOM_DOCUMENTpbdom_doc.NewDocument ("pre", "http://www.pre.com", &

"root", "public_id", "system_id.dtd")ls_xml = pbdom_doc.SaveDocumentIntoString

catch (PBDOM_EXCEPTION except)MessageBox ("PBDOM_EXCEPTION", except.GetMessage())

end try

関連項目 SaveDocument

SetContent機能 PBDOM_DOCUMENT オブジェク トにすでに存在している子を削除し

てから、 PBDOM_DOCUMENT オブジェク トのすべての内容を設定します。

構文 pbdom_document_name.SetContent(pbdom_object pbdom_object_array)

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェク トの名前を指定

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェク トの名前を指定

pbdom_object_array PBDOM_DOCUMENT オブジェク トの内容と して設定する PBDOM_OBJECT の配列を指定

PowerBuilder エクステンシ ョ ン リファレンス 213

Page 230: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCUMENT

pbdom_object_array に含まれるのは、 PBDOM_DOCUMENT オブジェク トの内容と して正当に設定できる PBDOM_OBJECT オブジェク トだけです。 SetContent メ ソ ッ ドでは、 メ ソ ッ ドが呼び出された PBDOM_DOCUMENT オブジェク トのルート要素と して設定する配列を、 1 つの PBDOM_ELEMENT オブジェク トに制限しています。SetContent メ ソ ッ ドでは、 PBDOM_DOCUMENT オブジェク トの DOCTYPE と して設定する配列も、 1 つの PBDOM_DOCTYPE オブジェク ト に制限しています。

戻り値 PBDOM_OBJECT。 修正されて、 PBDOM_OBJECT と して返された PBDOM_DOCUMENT オブジェク トです。

Throws EXCEPTION_ILLEGAL_PBOBJECT ― 配列項目が、 有効な PBDOM オブジェ ク ト でない場合。 配列項目が正し く初期化されていないか、 nullオブジェク ト参照である場合に、 無効となるこ とがある

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 配列項目に名前を付けるこ とができるが、 ユーザ定義名が付いていない場合

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 配列項目が、派生した PBDOM_OBJECT に関連付けられていない場合

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 配列項目にすでに親 PBDOM_OBJECT がある場合

EXCEPTION_MULTIPLE_ROOT_ELEMENT ― 配列に複数の PBDOM_ELEMENT が含まれている場合。 配列に含まれるのは、 現行の文書のルート要素と して設定する PBDOM_ELEMENT1 つだけである

EXCEPTION_MULTIPLE_DOCTYPE ― 配列に複数の PBDOM_DOCTYPEが含まれている場合。 配列に含まれるのは、 現行の文書の DOCTYPEと して設定する PBDOM_DOCTYPE 1 つだけである

EXCEPTION_MULTIPLE_XMLDECL ― 配列に、 XML 宣言に設定されている複数の PBDOM_PROCESSINGINSTRUCTION が含まれている場合

EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT ― 配列項目を文書レベルの内容と して設定できない場合

解説 指定する配列には、 PBDOM_DOCUMENT オブジェク トの内容と して正当に設定できる PBDOM_OBJECT を含めます。

214 PowerBuilder

Page 231: · PDF file(PBDOM : PowerBuilder Document Object Model

第 12 章 PBDOM_DOCUMENT クラス

たとえば、 PBDOM_DOCUMENT オブジェク トは、PBDOM_ELEMENT、 PBDOM_COMMENT、 PBDOM_DOCTYPE、 または PBDOM_PROCESSINGINSTRUCTION オブジェク ト が格納されている配列だけを受け取り ます。 また、 ルート要素と して設定する PBDOM_ELEMENT オブジェク ト 、 DOCTYPE と して設定する PBDOM_DOCTYPE オブジェク ト 、 XML 宣言と して設定する PBDOM_PROCESSINGINSTRUCTION オブジェク ト をそれぞれ 1 つ配列に含めるこ とができます。

例外が発生した場合、 現行の PBDOM_DOCUMENT オブジェク トの元の内容は変更されず、 指定された配列に含まれる PBDOM_OBJECT はそのまま変わり ません。

関連項目 AddContentGetContentInsertContentRemoveContent

SetDocType機能 現行の文書の DOCTYPE 宣言を設定します。

構文 pbdom_document_name.SetDocType(pbdom_doctype pbdom_doctype_ref)

戻り値 PBDOM_DOCUMENT を返します。 DOCTYPE 宣言が修正された、 同じ PBDOM_DOCUMENT オブジェク トです。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力された PBDOM_DOCTYPE が無効である場合。PBDOM_DOCTYPE が正し く初期化されていないか、null オブジェク ト参照である場合に、 無効となるこ とがある

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 入力された PBDOM_DOCTYPE に名前を付けるこ とができるが、 ユーザ定義名が付いていない場合

EXCEPTION_WRONG_DOCUMENT_ERROR ― 入力された PBDOM_DOCTYPE がすでにオーナー文書を持っている場合

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 入力されたPBDOM_DOCTYPE がすでに別の文書の DOCTYPE である場合

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェク トの名前を指定

pbdom_doctype_ref 現行の文書の DOCTYPE と して設定する PBDOM_DOCTYPE オブジェク ト を指定

PowerBuilder エクステンシ ョ ン リファレンス 215

Page 232: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_DOCUMENT

解説 現行の文書にすでに DOCTYPE 宣言が含まれている場合、 新しいPBDOM_DOCTYPE がそれに置き換わ り ます。 PBDOM_DOCUMENTオブジェク トの DOCTYPE は何度でも変更可能であ り、 SetDocType メソ ッ ドは何度も呼び出すこ とができます。

DOM DOCTYPE オブジェク トは、オーナー文書を持つこ とができないか、 またはオーナー文書を持つこ とができても親ノードを持つこ とはできません。オーナー文書と親ノードを持っている DOCTYPE が、オーナー文書の実際の DOCTYPE です。

SetRootElement機能 現行の文書のルート要素を設定します。

構文 pbdom_document_name.SetRootElement(pbdom_element pbdom_element_ref)

戻り値 PBDOM_DOCUMENT。 修正されたルート要素を持つ PBDOM_DOCUMENT オブジェク トです。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力された PBDOM_ELEMENT が無効である場合。PBDOM_ELEMENT が正し く初期化されていないか、null オブジェク ト参照である場合に、 無効となるこ とがある

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 入力された PBDOM_ELEMENT に名前を付けるこ とができるが、 ユーザ定義名が付いていない場合

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 入力されたPBDOM_ELEMENT にすでに親 PBDOM_OBJECT がある場合

解説 現行の文書にすでにルート要素があった場合は、 新しいルート要素が既存のルート要素に置き換わり ます。 PBDOM_DOCUMENT オブジェク トのルート要素は何度も変更可能であ り、SetRootElement メ ソ ッ ドは何度も呼び出すこ とができます。

関連項目 DetachRootElementGetRootElementHasRootElement

引数 説明

pbdom_document_name PBDOM_DOCUMENT オブジェク トの名前を指定

pbdom_element_ref 現行の文書のルート要素と して設定する PBDOM_ELEMENT オブジェク ト を指定

216 PowerBuilder

Page 233: · PDF file(PBDOM : PowerBuilder Document Object Model

第 1 3 章 PBDOM_ELEMENT クラス

この章について この章では、 PBDOM_ELEMENT ク ラスについて説明します。

PBDOM_ELEMENT機能 PBDOM_ELEMENT ク ラスは、PowerScript でモデル化される XML

要素の動作を定義します。このク ラスのメ ソ ッ ドを使用する と、要素のテキス ト内容、要素の属性、および要素の子を取得できます。

PBDOM では、 XML 要素の属性は要素の子ではあ り ません。 属性は、 関連付けられている要素から独立した実体を持つものではなく、要素のプロパティです。要素の PBDOM_ATTRIBUTE オブジェク ト には、 要素の子がそ うであるよ うに、 相互の兄弟関係はあ りません。

PBDOM_ELEMENT オブジェ ク ト と PBDOM_ATTRIBUTE オブジェク ト間の関係についての詳細は、『アプ リ ケーシ ョ ン テクニック』 マニュアルの XML サービスに関する章を参照して ください。

メ ソ ッ ド PBDOM_ELEMENT ク ラスには次のメ ソ ッ ドがあ り ます。

AddContentAddNamespaceDeclarationCloneDetachEqualsGetAttributeGetAttributesGetAttributeValueGetChildElementGetChildElementsGetContentGetNameGetNamespacePrefixGetNamespaceUriGetObjectClass

PowerBuilder エクステンシ ョ ン リファレンス 217

Page 234: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

GetObjectClassStringGetOwnerDocumentObjectGetParentObjectGetQualifiedNameGetTextGetTextNormalizeGetTextTrimHasAttributesHasChildElementsHasChildrenInsertContentIsAncestorObjectOfIsRootElementRemoveAttributeRemoveChildElementRemoveChildElementsRemoveContentRemoveNamespaceDeclarationSetAttributeSetAttributesSetContentSetDocumentSetNameSetNamespaceSetParentObjectSetText

AddContent機能 AddContent メ ソ ッ ドは、 次のよ うに上書きされます。

• 構文 1 は、 新しい PBDOM_OBJECT を PBDOM_ELEMENT オブジェク トに追加します。

• 構文 2 は、 新し いテキス ト 文字列を、 メ ソ ッ ド が呼び出さ れたPBDOM_ELEMENT オブジェク ト に追加し ます。

構文

構文 参照先

AddContent(pbdom_object pbdom_object_ref) AddContent 構文 1AddContent(string strText) AddContent 構文 2

218 PowerBuilder

Page 235: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

AddContent 構文 1機能 新しい PBDOM_OBJECT を PBDOM_ELEMENT オブジェ ク ト に追加

し ます。 追加された PBDOM_OBJECT は、 PBDOM_ELEMENT オブジェク トの子になり ます。

構文 pbdom_element_name.AddContent(pbdom_object pbdom_object_ref)

戻り値 PBDOM_OBJECT。 修正されて、 PBDOM_OBJECT オブジェ ク ト と して返された PBDOM_ELEMENT オブジェク トです。

Throws EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT ― 無効なPBDOM_OBJECT が追加さ れた場合。 PBDOM_ELEMENT オブジェク トに追加できる有効な PBDOM_OBJECT については、 この節の 「解説」 に記載されている リ ス ト を参照。 入力された PBDOM_OBJECT が現行の PBDOM_ELEMENT オブジェク ト自体である場合にも、 この例外が送出される

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 入力された PBDOM_OBJECT にユーザ定義名が付いていない場合

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_OBJECT が、 派生した PBDOM_OBJECT に関連付けられていない場合

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 入力されたPBDOM_OBJECT にすでに親 PBDOM_OBJECT がある場合

EXCEPTION_HIERARCHY_ERROR ― 入力された PBDOM_OBJECT を追加する と、 現行の PBDOM_ELEMENT オブジェク トが整形式でなくなる場合

例 次の XML の Element_2 PBDOM_ELEMENT オブジェ ク ト に対し て、AddContent メ ソ ッ ドを呼び出します。

<Element_1><Element_1_1/><Element_1_2/><Element_1_3/>

</Element_1><Element_2>Element 2 Text</Element_2><Element_3/>

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

pbdom_object_ref 追加する PBDOM_OBJECT を指定

PowerBuilder エクステンシ ョ ン リファレンス 219

Page 236: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

次のスク リプ トから AddContent を呼び出します。 pbdom_elem_2 は Element_2 オブジェク ト を表します。

PBDOM_ELEMENT pbdom_elempbdom_elem = Create PBDOM_ELEMENTpbdom_elem.SetName("Sub_Element")pbdom_elem.AddContent("Sub Element Text")pbdom_elem_2.AddContent (pbdom_elem)

XML は次のよ うにな り ます。

<Element_1><Element_1_1/><Element_1_2/><Element_1_3/>

</Element_1><Element_2>

Element 2 Text<Sub_Element>

Sub Element Text</Sub_Element>

<Element_2/><Element_3/>

解説 PBDOM_ELEMENT オブジェク トに追加できるのは、 次の種類の PBDOM_OBJECT だけです。

• PBDOM_ELEMENT

• PBDOM_CDATA

• PBDOM_COMMENT

• PBDOM_ENTITYREFERENCE

• PBDOM_PROCESSINGINSTRUCTION

• PBDOM_TEXT

関連項目 AddContent 構文 2GetContentInsertContentRemoveContentSetContent

220 PowerBuilder

Page 237: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

AddContent 構文 2機能 新しいテキスト 文字列を、 メ ソ ッ ド が呼び出された PBDOM_ELEMENT

オブジェク ト に追加します。

構文 pbdom_element_name.AddContent(string strText)

戻り値 PBDOM_OBJECT。 修正されて、 PBDOM_OBJECT オブジェ ク ト と して返された PBDOM_ELEMENT オブジェク トです。

例 次の XML 文書の abc 要素に対して、AddContent メ ソ ッ ドを呼び出します。

<abc>Root Element Data<data>

ABC Data<inner_data>My Inner Data</inner_data>

</data></abc>

次の PowerScript 文から AddContent メ ソ ッ ドを呼び出します。

pbdom_doc.GetRootElement().AddContent(" And More !")

XML は次のよ うにな り ます。

<abc>Root Element Data<data>

ABC Data<inner_data>My Inner Data</inner_data>

</data>And More !

</abc>

関連項目 AddContent 構文 1GetContentInsertContentRemoveContentSetContent

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strText 新しいテキス ト 内容と して PBDOM_ELEMENT オブジェク トに追加する文字列を指定

PowerBuilder エクステンシ ョ ン リファレンス 221

Page 238: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

AddNamespaceDeclaration機能 新しい名前空間宣言を現行の PBDOM_ELEMENT オブジェク トに追加

します。 名前空間が PBDOM_ELEMENT オブジェク トのデフォルトの名前空間となる場合は、 新しい名前空間を PBDOM_ELEMENT オブジェク ト そのものに適用できます。

構文 pbdom_element_name.AddNamespaceDeclaration(string strNamespacePrefix, string strNamespaceUri)

戻り値 PBDOM_ELEMENT を返します。 修正された PBDOM_ELEMENT オブジェク トです。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力されたいずれかのパラ メータが無効 (null) である場合

EXCEPTION_INVALID_NAME ― 入力された接頭辞が無効である場合 (コロンが含まれているなど)

EXCEPTION_INVALID_STRING ― 入力された URI が無効である場合

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドでのメモリの割り当てに失敗した場合

例 次の要素について考えてみます。

<Vehicle><seats>4</seats><color>Red</color><engine>

<capacity units="cc">1600</capacity></engine>

</Vehicle>

Vehicle 要素を表す PBDOM_ELEMENT オブジェク ト elem_vehicle がある と仮定して、 次のステート メン トについて考えてみます。

elem_vehicle.AddNamespaceDeclaration("vehicle_specs",&"http://www.vehicle.com/specs")

Vehicle 要素は次のよ うに変換されます。

<Vehicle xmlns:vehicle_specs="http://www.vehicle.com/specs">

<seats>4</seats>

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strNamespacePrefix 宣言する新しい名前空間の接頭辞を指定

strNamespaceUri 宣言する新しい名前空間の URI を指定

222 PowerBuilder

Page 239: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

<color>Red</color><engine>

<capacity units="cc">1600</capacity></engine>

</Vehicle>

Vehicle、 seats、 color、 engine、 および capacity はすべて修飾されていません。つま り、 これらには名前空間接頭辞があ り ません。 したがって、vehicle_specs 名前空間はこれらのいずれにも、 あるいは、 これらの属性やサブ要素にも適用されません。

しかし、 次のステート メ ン ト を考えてみまし ょ う。

elem_vehicle.AddNamespaceDeclaration("", &"http://www.vehicle.com/specs")

Vehicle 要素は次のよ うに変換されます。

<Vehicle xmlns:"http://www.vehicle.com/specs"><seats>4</seats><color>Red</color><engine>

<capacity units="cc">1600</capacity></engine>

</Vehicle>

http://www.vehicle.com/specs はデフォル ト の名前空間なので、 Vehicle、seats、 color、 engine、 および capacity はすべてこの名前空間に含まれます。 デフォルトの名前空間は、 units 属性には適用されないこ とに注意して ください。

関連項目 GetNamespacePrefixGetNamespaceUriGetQualifiedNameRemoveNamespaceDeclarationSetNamespace

PowerBuilder エクステンシ ョ ン リファレンス 223

Page 240: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

Clone機能 PBDOM_ELEMENT オブジェク トのク ローンを作成します。

構文 pbdom_element_name.Clone(boolean bDeep)

戻り値 PBDOM_OBJECT。 PBDOM_OBJECT と して返された現行の PBDOM_ELEMENT オブジェク トのク ローンです。

例 Clone メ ソ ッ ドを使って、 次の XML を変更します。

<Telephone_Book><Entry>

<Particulars><Name>John Doe</Name><Age>21</Age><Phone_Number>1234567</Phone_Number>

</Particulars></Entry>

</Telephone_Book>

次のス ク リ プ ト から Clone を呼び出し ます。 entry は上記の XML のEntry> 要素です。

PBDOM_ELEMENT elem_clone

elem_clone = entry.Clone(true)pbdom_doc.AddContent(elem_clone)

生成される XML には、 2 つの同じ Entry> 要素が含まれます。

<Telephone_Book><Entry>

<Particulars><Name>John Doe</Name><Age>21</Age><Phone_Number>1234567</Phone_Number>

</Particulars></Entry><Entry>

<Particulars><Name>John Doe</Name><Age>21</Age>

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

bDeep 詳細クローンを返すか、 簡易クローンを返すかを指定する Boolean 型の値を指定。 指定する値は、 詳細クローンの場合は true、簡易クローンの場合は false

224 PowerBuilder

Page 241: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

<Phone_Number>1234567</Phone_Number></Particulars>

</Entry></Telephone_Book>

解説 このメ ソ ッ ドは、 現行の PBDOM_ELEMENT オブジェク トの複製を作成して返します。 簡易クローンを指定した場合、 このメ ソ ッ ドは、 元の PBDOM_ELEMENT オブジェク トのク ローンに加え、 その名前空間情報の値、その PBDOM_ATTRIBUTE、およびそのサブツ リーのクローンをそれぞれ作成します。 詳細クローンを指定した場合、 このメ ソ ッドは上記のクローンのほかに、 PBDOM_ELEMENT オブジェク トの下位サブツ リーすべてのクローンも作成します。

PBDOM_ELEMENT のク ローンには親はあ り ません。 ただし、 ク ローンは元の PBDOM_ELEMENT と同じ PBDOM_DOCUMENT に格納され、元の PBDOM_ELEMENT オブジェク トがスタンドアロンのと きは、ク ローンもスタンドアロンです。

Detach機能 PBDOM_ELEMENT オブジェク ト をその親 PBDOM_OBJECT から切り

離します。

構文 pbdom_element_name.Detach()

戻り値 PBDOM_OBJECT。親オブジェク ト から切り 離されて、PBDOM_OBJECTと して返された PBDOM_ELEMENT オブジェク トです。PBDOM_ELEMENT オブジェク ト に親がない場合、 Detach メ ソ ッ ド は何も実行しません。

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 225

Page 242: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

Equals機能 メ ソ ッ ドが呼び出された PBDOM_ELEMENT オブジェク ト と、 メ ソ ッ

ドのパラ メータで指定された PBDOM_OBJECT が同じであるかど うかを調べます。

構文 pbdom_element_name.Equals(pbdom_object pbdom_object_ref)

戻り値 Boolean 型。 PBDOM_ELEMENT オブジェク トが参照される PBDOM_OBJECT と同じである場合は true を返し、 それ以外の場合は false を返します。

例 次のス ク リ プ ト から Equals メ ソ ッ ド を呼び出し ます。 pbdom_doc はルート要素が含まれている PBDOM_DOCUMENT オブジェク トです。

PBDOM_ELEMENT pbdom_elem_1PBDOM_ELEMENT pbdom_elem_2PBDOM_OBJECT pbdom_objPBDOM_DOCUMENT pbdom_doc

pbdom_elem_1 = pbdom_doc.GetRootElement()pbdom_elem_2 = pbdom_doc.GetRootElement()

IF pbdom_elem_1.Equals(pbdom_elem_2) THEN

MessageBox ("Equals", " オブジェク トは等しい。 ")ELSE

MessageBox ("Equals", " オブジェク トは等し く ない。 ")END IF

pbdom_obj = Create PBDOM_ELEMENTpbdom_obj.SetName("An_Element")

IF pbdom_elem_1.Equals(pbdom_obj) THEN

MessageBox ("Equals", " オブジェク トは等しい。 ")ELSE

MessageBox ("Equals", " オブジェク トは等し く ない。 ")END IF

pbdom_elem_1 と pbdom_elem_2 は同じルート要素を参照しているため、メ ッセージ ボッ クスには 2 つのオブジェク トは同じである と表示されます。

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

pbdom_object_ref 現行の PBDOM_ELEMENT オブジェ ク ト と同じであるかど うかを調べる PBDOM_OBJECT を指定

226 PowerBuilder

Page 243: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

GetAttribute機能 GetAttribute メ ソ ッ ドは、 次のよ うに上書きされます。

• 構文 1 は、PBDOM_ATTRIBUTE の名前を使って、PBDOM_ELEMENTオブジェク ト の PBDOM_ATTRIBUTE オブジェク ト を返します。

• 構文 2 は、 入力された名前を持ち、 入力された接頭辞と URI で指定された名前空間内にある、 PBDOM_ELEMENT オブジェ ク ト のPBDOM_ATTRIBUTE オブジェク ト を返します。

構文

GetAttribute 構文 1機能 PBDOM_ELEMENT オブジェク トの PBDOM_ATTRIBUTE オブジェク

ト を返します。

構文 pbdom_element_name.GetAttribute(string strName)

戻り値 PBDOM_ATTRIBUTE。 メ ソ ッ ド のパラ メ ータで指定さ れた名前と 一致する PBDOM_ATTRIBUTE オブジェク ト です。この PBDOM_ATTRIBUTEオブジェク ト が存在しない場合は、 GetAttribute メ ソ ッ ド は null 値を返します。

Throws EXCEPTION_INVALID_NAME ― 指定された名前が名前空間の接頭辞を含む修飾名である場合

例 次の XML 文書について、 GetAttribute メ ソ ッ ドを呼び出します。

<MyMusic:abc xmlns:MyMusic="http://www.MyMusic_records.com" My_Attr="My MyMusic Attribute">Root Element Data</MyMusic:abc>

次の PowerScript 文から GetAttribute メ ソ ッ ドを呼び出します。

pbdom_attr = &pbdom_doc.GetRootElement().GetAttribute("My_Attr")

構文 参照先

GetAttribute(string strName) GetAttribute 構文 1GetAttribute(string strName, string strNamespacePrefix, string strNamespaceUri)

GetAttribute 構文 2

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strName 取得する PBDOM_ATTRIBUTE の名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 227

Page 244: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

GetAttribute メ ソ ッ ドは、 PBDOM_ATTRIBUTE オブジェク ト My_Attr を返します。

解説 メ ソ ッ ドのパラ メータで指定された PBDOM_ATTRIBUTE 名が修飾された名前である場合は、 例外が送出されます。 修飾された名前の形式は、 [namespace_prefix]:[local_name] です。

関連項目 GetAttribute 構文 2GetAttributesGetAttributeValueHasAttributesSetAttributeSetAttributes

GetAttribute 構文 2機能 入力された名前を持ち、 入力された接頭辞と URI で指定された名前空

間内にある、PBDOM_ELEMENT オブジェク トの PBDOM_ATTRIBUTEオブジェク ト を返します。

構文 pbdom_element_name.GetAttribute(string strName, string strNamespacePrefix, string strNamespaceUri)

戻り値 PBDOM_ATTRIBUTE。 メ ソ ッ ド のパラ メ ータで指定された名前、 名前空間の接頭辞および URI と一致する PBDOM_ATTRIBUTE オブジェクト です。 この PBDOM_ATTRIBUTE オブジェク ト が存在しない場合は、GetAttribute メ ソ ッ ドは null 値を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― いずれかの引数が無効 (たとえば、null) である場合

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リの割り当てに失敗した場合

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strName 取得する PBDOM_ATTRIBUTE の名前を指定

strNamespacePrefix 取得する PBDOM_ATTRIBUTE の名前空間の接頭辞を指定

strNamespaceUri 取得する PBDOM_ATTRIBUTE の名前空間の URI を指定

228 PowerBuilder

Page 245: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

関連項目 GetAttribute 構文 1GetAttributesGetAttributeValueHasAttributesSetAttributeSetAttributes

GetAttributes機能 PBDOM_ELEMENT オブジェク トの PBDOM_ATTRIBUTE オブジェク

ト をすべて返します。

PBDOM_ELEMENT オブジェク トに PBDOM_ATTRIBUTE オブジェクトがない場合は、 GetAttributes メ ソ ッ ドは空の配列を返します。

構文 pbdom_element_name.GetAttributes(ref pbdom_attribute pbdom_attribute_array)

戻り値 Boolean 型。 PBDOM_ELEMENT オブジェク ト の PBDOM_ATTRIBUTE オブジェク ト の配列を取得した場合は true を返し、 それ以外の場合は falseを返します。

解説 GetAttributes は、PBDOM_ELEMENT オブジェク ト の PBDOM_ATTRIBUTEオブジェク ト すべてを、PBDOM_ATTRIBUTE オブジェク ト の配列と して返します。PBDOM_ATTRIBUTE オブジェク ト がない場合は、空のリ スト(空の配列) を返します。 返される配列項目は 「存続して」 おり 、 項目を変更すると 、 その変更は参照される PBDOM_ATTRIBUTE にも反映されます。

関連項目 GetAttributeGetAttributeValueHasAttributesSetAttributeSetAttributes

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

pbdom_attribute_array PBDOM_ELEMENT オブジェ ク ト に含まれているPBDOM_ATTRIBUTE オブジェク トへの参照を格納する、 空の可変長配列を指定

PowerBuilder エクステンシ ョ ン リファレンス 229

Page 246: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

GetAttributeValue機能 GetAttributeValue メ ソ ッ ドは、 次のよ うに上書きされます。

• 構文 1 は、 指定された名前を持つ PBDOM_ATTRIBUTE オブジェク トの文字列値を返します。

• 構文 2 は、指定された名前を持ち、PBDOM_ATTRIBUTE の名前空間の接頭辞と URI を使用している PBDOM_ATTRIBUTE オブジェク トの文字列値を返します。

• 構文 3 は、指定された名前を持ち、PBDOM_ATTRIBUTE の名前空間の接頭辞と URI を使用している PBDOM_ATTRIBUTE オブジェク ト の文字列値を返します。 また、 属性が存在しない場合、 構文3 はデフォルトの文字列値を返します。

• 構文 4 は、 指定された名前を持つ PBDOM_ATTRIBUTE オブジェク ト の文字列値を返します。 また、 属性が存在しない場合、 構文4 はデフォルトの文字列値を返します。

構文

GetAttributeValue 構文 1機能 指定された名前を持ち、名前空間に含まれていない、(PBDOM_ELEMENT

オブジェク ト 内の) PBDOM_ATTRIBUTE オブジェク ト の文字列値を返します。

構文 pbdom_element_name.GetAttributeValue(string strAttributeName)

戻り値 String 型。 strAttributeName で指定された PBDOM_ATTRIBUTE オブジェク トの文字列値です。 このオブジェク トが存在しない場合は、GetAttributeValue メ ソ ッ ドは null を返します。

構文 参照先

GetAttributeValue(string strAttributeName) GetAttributeValue 構文 1GetAttributeValue(string strAttributeName, string strNamespacePrefix, string strNamespaceUri)

GetAttributeValue 構文 2

GetAttributeValue(string strAttributeName, string strNamespacePrefix, string strNamespaceUri, string strDefaultValue)

GetAttributeValue 構文 3

GetAttributeValue(string strAttributeName, string strDefaultValue)

GetAttributeValue 構文 4

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strAttributeName 値を取得する属性の名前を指定

230 PowerBuilder

Page 247: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

解説 PBDOM_ATTRIBUTE オブジェク トのテキス ト値が空の場合は、GetAttributeValue メ ソ ッ ドは空の文字列を返します。

関連項目 GetAttributeGetAttributeValue 構文 2GetAttributeValue 構文 3GetAttributeValue 構文 4HasAttributesSetAttributeSetAttributes

GetAttributeValue 構文 2機能 指定された名前を持ち、 指定された名前空間に含まれる、

(PBDOM_ELEMENT オブジェク ト 内の) PBDOM_ATTRIBUTE オブジェク ト の文字列値を返します。

構文 pbdom_element_name.GetAttributeValue( string strAttributeName, string strNamespacePrefix, string strNamespaceUri)

戻り値 String 型。strAttributeName で指定された PBDOM_ATTRIBUTE オブジェク ト の文字列値です。 こ のオブジ ェ ク ト が存在 し ない場合は、GetAttributeValue メ ソ ッ ドは空の文字列を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― いずれかの入力引数が無効 (たとえば、 null) である場合

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リの割り当てに失敗した場合

EXCEPTION_INVALID_NAME ― 入力された属性名、 名前空間の接頭辞、または名前空間の URI が無効である場合

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strAttributeName 値を取得する属性の名前を指定

strNamespacePrefix 値を取得する PBDOM_ATTRIBUTE の名前空間の接頭辞を指定

strNamespaceUri 値を取得する PBDOM_ATTRIBUTE の名前空間の URIを指定

PowerBuilder エクステンシ ョ ン リファレンス 231

Page 248: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

関連項目 GetAttributeGetAttributeValue 構文 1GetAttributeValue 構文 3GetAttributeValue 構文 4HasAttributesSetAttributeSetAttributes

GetAttributeValue 構文 3機能 指定された名前を持ち、 指定された名前空間に含まれる、

(PBDOM_ELEMENT オブジェク ト 内の) PBDOM_ATTRIBUTE オブジェク ト の文字列値を返します。 この PBDOM_ATTRIBUTE オブジェク ト が存在しない場合は、 デフォルト 値を返します。

構文 pbdom_element_name.GetAttributeValue( string strAttributeName, string strNamespacePrefix, string strNamespaceUri, string strDefaultValue)

戻り値 String 型。 strAttributeName で指定された PBDOM_ATTRIBUTE オブジェク トの文字列値です。 このオブジェク トが存在しない場合は、GetAttributeValue メ ソ ッ ド は strDefaultValue で指定さ れた文字列を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― いずれかの入力引数が無効 (たとえば、 null) である場合

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リの割り当てに失敗した場合

EXCEPTION_INVALID_NAME ― 入力された属性名、 名前空間の接頭辞、または名前空間の URI が無効である場合

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strAttributeName 値を取得する属性の名前を指定

strNamespacePrefix 値を取得する PBDOM_ATTRIBUTE の名前空間の接頭辞を指定

strNamespaceUri 値を取得する PBDOM_ATTRIBUTE の名前空間の URIを指定

strDefaultValue 属性が存在しない場合に返すデフォル ト の文字列値を指定

232 PowerBuilder

Page 249: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

関連項目 GetAttributeGetAttributeValue 構文 1GetAttributeValue 構文 2GetAttributeValue 構文 4HasAttributesSetAttributeSetAttributes

GetAttributeValue 構文 4機能 指定された名前を持つ、 (PBDOM_ELEMENT 内オブジェク トの)

PBDOM_ATTRIBUTE オブジェク トの文字列値を返します。 この PBDOM_ATTRIBUTE オブジェク ト が存在しない場合は、 デフォルト 値を返します。

構文 pbdom_element_name.GetAttributeValue(string strAttributeName, string strDefaultValue)

戻り値 String 型。strAttributeName で指定された PBDOM_ATTRIBUTE オブジェク ト の文字列値です。 こ のオブジ ェ ク ト が存在 し ない場合は、GetAttributeValue メ ソ ッ ドは strDefaultValue で指定された文字列を返します。

関連項目 GetAttributeGetAttributeValue 構文 1GetAttributeValue 構文 2GetAttributeValue 構文 3HasAttributesSetAttributeSetAttributes

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strAttributeName 値を取得する属性の名前を指定

strDefaultValue 属性が存在しない場合に返すデフォル ト の文字列値を指定

PowerBuilder エクステンシ ョ ン リファレンス 233

Page 250: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

GetChildElement機能 GetChildElement メ ソ ッ ドは、 次のよ うに上書きされます。

• 構文 1 は、 メ ソ ッ ドのパラ メータで指定された名前に、 最初に一致した子 PBDOM_ELEMENT オブジェク ト を返します。

• 構文 2 は、 メ ソ ッ ドのパラ メータで指定された名前および名前空間に、 最初に一致した子 PBDOM_ELEMENT オブジェク ト を返します。

構文

GetChildElement 構文 1機能 メ ソ ッ ドが呼び出された PBDOM_ELEMENT オブジェク トに格納され

ている メ ソ ッ ドのパラ メータで指定された名前に、 最初に一致した子PBDOM_ELEMENT オブジェク ト を返します。

構文 pbdom_element_name.GetChildElement(string strElementName)

戻り値 PBDOM_ELEMENT。 名前がメ ソ ッ ドのパラ メータで指定された値と最初に一致した子 PBDOM_ELEMENT オブジェク トです。 指定された名前を持つ PBDOM_ELEMENT オブジェ ク ト が存在しない場合は、GetChildElement メ ソ ッ ドは null 値を返します。

関連項目 GetChildElement 構文 2GetChildElementsHasChildElementsHasChildrenIsRootElementRemoveChildElementRemoveChildElements

構文 参照先

GetChildElement(string strElementName) GetChildElement 構文 1GetChildElement(string strElementName, string strNamespacePrefix, string strNamespaceUri)

GetChildElement 構文 2

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strElementName 取得する子 PBDOM_ELEMENT オブジェク トのローカル名を指定

234 PowerBuilder

Page 251: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

GetChildElement 構文 2機能 メ ソ ッ ドが呼び出された PBDOM_ELEMENT オブジェク トに格納され

ている メ ソ ッ ドのパラ メータで指定された名前および名前空間に、 最初に一致した子 PBDOM_ELEMENT オブジェク ト を返します。

構文 pbdom_element_name.GetChildElement(string strElementName, string strNamespacePrefix, string strNamespaceUri)

戻り値 PBDOM_ELEMENT。名前および名前空間の情報が、メ ソッ ド のパラメ ータで指定された値と 最初に一致した子 PBDOM_ELEMENT オブジェク トです。 指定された名前および名前空間の情報を持つ PBDOM_ELEMENTオブジェク ト が存在しない場合は、GetChildElement メ ソ ッ ド は null 値を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― いずれかの入力引数が無効 (たとえば、 null) である場合

EXCEPTION_INVALID_NAME ― 入力された要素名が無効であるか、入力された名前空間の接頭辞または URI が無効である場合

関連項目 GetChildElement 構文 1GetChildElementsHasChildElementsHasChildrenIsRootElementRemoveChildElementRemoveChildElements

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strElementName 取得する子 PBDOM_ELEMENT オブジェク トのローカル名を指定

strNamespacePrefix 取得する子 PBDOM_ELEMENT オブジェ ク ト の名前空間の接頭辞を指定

strNamespaceUri 取得する子 PBDOM_ELEMENT オブジェ ク ト の名前空間の URI を指定

PowerBuilder エクステンシ ョ ン リファレンス 235

Page 252: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

GetChildElements機能 GetChildElements メ ソ ッ ドは、 次のよ うに上書きされます。

• 構文 1 は、 PBDOM_ELEMENT オブジェク ト内の 1 つ下のレベルで入れ子になっている、 子 PBDOM_ELEMENT オブジェク トすべての リ ス ト を取得します。 取得した リ ス トは、 メ ソ ッ ドの呼び出し時に指定した配列に格納されます。

• 構文 2 は、 指定さ れた名前を 持ち、 名前空間に属し ていないPBDOM_ELEMENT オブジェク ト 内で、 1 つ下のレベルで入れ子になっている子 PBDOM_ELEMENT オブジェク ト すべてのリ スト を取得します。取得したリ スト は、 メ ソ ッ ド の呼び出し時に指定した配列に格納さ れます。

• 構文 3 は、 指定されたローカル名と名前空間を持つ PBDOM_ELEMENT オブジェク ト 内で、 1 つ下のレベルで入れ子になっている子 PBDOM_ELEMENT オブジェク ト すべてのリ ストを取得します。

構文

GetChildElements 構文 1機能 PBDOM_ELEMENT オブジェク ト内で、1 つ下のレベルで入れ子になっ

ている子 PBDOM_ELEMENT オブジェク トすべてのリ ス ト を取得します。 取得した リ ス トは、 メ ソ ッ ドの呼び出し時に指定した配列に格納されます。

構文 pbdom_element_name.GetChildElements(ref pbdom_element pbdom_element_array)

構文 参照先

GetChildElements(ref pbdom_element pbdom_element_array[])

GetChildElements 構文 1

GetChildElements(string strElementName, ref pbdom_element pbdom_element_array[])

GetChildElements 構文 2

GetChildElements(string strElementName, string strNamespacePrefix, string strNamespaceUri, ref pbdom_element pbdom_element_array[])

GetChildElements 構文 3

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

pbdom_element_array 子 PBDOM_ELEMENT オブジェ ク ト を格納する配列を指定

236 PowerBuilder

Page 253: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

戻り値 Boolean 型。 子 PBDOM_ELEMENT オブジェ ク ト が取得された場合はtrue を返し、 それ以外の場合は false を返します。

解説 PBDOM_ELEMENT オブジェ ク ト に入れ子になった要素がない場合は、 GetChildElements は空の配列を返します。

関連項目 GetChildElementGetChildElements 構文 2GetChildElements 構文 3HasChildElementsHasChildrenIsRootElementRemoveChildElementRemoveChildElements

GetChildElements 構文 2機能 指定された名前を持ち、 名前空間に属していない PBDOM_ELEMENT

オブジェク ト内で、 1 つ下のレベルで入れ子になっている子 PBDOM_ELEMENT オブジェク トすべてのリ ス ト を取得します。 取得したリ スト は、 メ ソ ッ ド の呼び出し時に指定した配列に格納されます。

構文 pbdom_element_name.GetChildElements(string strElementName, ref pbdom_element pbdom_element_array[])

戻り値 Boolean 型。子 PBDOM_ELEMENT オブジェク ト が取得された場合は trueを返し、 それ以外の場合は false を返します。

解説 PBDOM_ELEMENT オブジェ ク ト に入れ子になった要素がない場合は、 GetChildElements は空の配列を返します。

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strElementName 含まれている子を検索する PBDOM_ELEMENT オブジェク トの名前を指定

pbdom_element_array 子 PBDOM_ELEMENT オブジェ ク ト を格納する配列を指定

PowerBuilder エクステンシ ョ ン リファレンス 237

Page 254: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

関連項目 GetChildElementGetChildElements 構文 1GetChildElements 構文 3HasChildElementsHasChildrenIsRootElementRemoveChildElementRemoveChildElements

GetChildElements 構文 3機能 指定されたローカル名と名前空間を持つ PBDOM_ELEMENT オブジェ

ク ト内で、1 つ下のレベルで入れ子になっている子 PBDOM_ELEMENTオブジェク トすべてのリ ス ト を取得します。

構文 pbdom_element_name.GetChildElements(string strElementName, string strNamespacePrefix, string strNamespaceUri, ref pbdom_element pbdom_element_array[])

戻り値 Boolean 型。 子 PBDOM_ELEMENT オブジェ ク ト が取得された場合はtrue を返し、 それ以外の場合は false を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― いずれかのパラ メータが無効である場合

EXCEPTION_INVALID_NAME ― 入力された要素名、 名前空間の接頭辞、または名前空間の URI が無効である場合。 唯一の例外は、 入力された要素名が空の文字列の場合

解説 PBDOM_ELEMENT オブジェ ク ト に入れ子になった要素がない場合は、 GetChildElements は空の配列を返します。

strElementName の値が空の文字列の場合は、 すべての子要素が一致します。

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strElementName 含まれている子を検索する PBDOM_ELEMENT オブジェク トの名前を指定

strNamespacePrefix 検索する子 PBDOM_ELEMENT オブジェク トの名前空間の接頭辞を指定

strNamespaceUri 検索する子 PBDOM_ELEMENT オブジェク トの名前空間の URI を指定

pbdom_element_array[] 子 PBDOM_ELEMENT オブジェク ト を格納する配列を指定

238 PowerBuilder

Page 255: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

関連項目 GetChildElementGetChildElements 構文 1GetChildElements 構文 2HasChildElementsHasChildrenIsRootElementRemoveChildElementRemoveChildElements

GetContent機能 メ ソ ッ ドが呼び出された PBDOM_ELEMENT オブジェク トの子ノード

を配列の項目とする、 PBDOM_OBJECT オブジェク トの配列を取得します。 返される配列は 「存続して」 おり、 配列の項目を変更する と、その変更は配列の参照先の実際の項目にも反映されます。

構文 pbdom_element_name.GetContent(ref pbdom_object pbdom_object_array[ ])

戻り値 Boolean 型。正常に終了した場合は true を返し、失敗した場合は false を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力された配列が null である場合

例 次の XML DOM 文書の Root> PBDOM_ELEMENT オブジェク トに対して、 GetContent メ ソ ッ ドを呼び出します。

<Root><Element_1>

<Element_1_1/><Element_1_2/><Element_1_3/>

</Element_1><Element_2/><Element_3/>

</Root>

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

pbdom_object_array PBDOM_ELEMENT オブジェ ク ト 内に含まれているPBDOM_OBJECT オブジェ ク トへの参照を受け取る、PBDOM_OBJECT オブジェク トの配列名を指定

PowerBuilder エクステンシ ョ ン リファレンス 239

Page 256: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

次のスク リプ トから GetContent メ ソ ッ ドを呼び出します。

PBDOM_DOCUMENT pbdom_docPBDOM_ELEMENT pbdom_elem_rootPBDOM_OBJECT pbdom_obj_array[]

pbdom_elem_root = pbdom_doc.GetRootElement()pbdom_elem_root.GetContent(pbdom_obj_array)

GetContent メ ソ ッ ドが true とい う値を返すと、 PBDOM_OBJECT オブジェク ト pbdom_obj_array に次の内容が格納されます。

関連項目 AddContent 構文 1AddContent 構文 2InsertContentRemoveContentSetContent

GetName機能 PBDOM_ELEMENT オブジェク トのローカル名を取得します。

構文 pbdom_element_name.GetName()

戻り値 String 型。 XML 文書に表示されたと きに、 名前空間の接頭辞が付いていない要素名です。

例 GetName メ ソ ッ ドを次の要素名について呼び出すと、 文字列 abc が返されます。

<ns:abc>My Element</ns:abc>

解説 XML 要素が [namespace_prefix]:[element_name] とい う フォームで表示されている と きには、 ローカル要素名は element_name です。 XML 要素に名前空間の接頭辞がない場合は、 ローカル名は要素名のみにな ります。

名前空間の接頭辞が付いた、 要素の完全な修飾名を取得する と きは、GetQualifiedName メ ソ ッ ドを使います。

配列要素 値

1 <Element_1>2 <Element_2>3 <Element_3>

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

240 PowerBuilder

Page 257: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

関連項目 GetNamespacePrefixGetNamespaceUriRemoveNamespaceDeclarationSetName

GetNamespacePrefix機能 PBDOM_ELEMENT オブジェク ト の名前空間の頭辞を返します。

PBDOM_ELEMENT オブジェク ト に名前空間の接頭辞がない場合は、GetNamespacePrefix は空の文字列を返します。

構文 pbdom_element_name.GetNamespacePrefix()

戻り値 String 型。 PBDOM_ELEMENT オブジェク トの名前空間の接頭辞です。

関連項目 AddNamespaceDeclarationGetNamespaceUriGetQualifiedNameRemoveNamespaceDeclarationSetNamespace

GetNamespaceUri機能 PBDOM_ELEMENT オブジェク トの接頭辞にマップされている URI を

返します。 接頭辞がない場合は、 PBDOM_ELEMENT オブジェク トのデフォル ト の名前空間にマップされている URI を返します。 URI がPBDOM_ELEMENT オブジ ェ ク ト にマ ッ プ されていない場合は、GetNameSpaceUri は空の文字列を返します。

構文 pbdom_element_name.GetNamespaceUri()

戻り値 String 型。 PBDOM_ELEMENT オブジェク トの名前空間の URI です。

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 241

Page 258: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

関連項目 AddNamespaceDeclarationGetNamespacePrefixGetQualifiedNameRemoveNamespaceDeclarationSetNamespace

GetObjectClass機能 現行の PBDOM_OBJECT のク ラスを示す Long 型の整数値コードを返

します。

構文 pbdom_object_name.GetObjectClass()

戻り値 Long 型。 現行の PBDOM_OBJECT のク ラスを示すコードを返します。pbdom_object_name が PBDOM_ELEMENT オブジェ ク ト のと きは、 戻り値は 3 です。

例 GetObjectClass メ ソ ッ ドは、 メ ソ ッ ドが呼び出されたオブジェク トのクラス固有の値を返します。

PBDOM_OBJECT pbdom_obj

pbdom_obj = Create PBDOM_ELEMENT

MessageBox (" クラス ", &string(pbdom_obj.GetObjectClass()))

この例では、 pbdom_obj は PBDOM_OBJECT と して宣言されながら、PBDOM_ELEMENT と してインスタンス化される という多相性を示しています。PBDOM_ELEMENT に対して GetObjectClass メ ソ ッ ドを呼び出した結果を、 メ ッセージ ボッ クスに表示します。 この例では、 結果は 3 とな り、 pbdom_obj が PBDOM_ELEMENT オブジェ ク ト である ことを示します。

解説 このメ ソ ッ ドを使用する と、 診断を目的と して、 実行時の PBDOM_OBJECT の種類を動的に調べるこ とができます。

引数 説明

pbdom_object_name PBDOM_OBJECT オブジェク トの名前を指定

242 PowerBuilder

Page 259: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

GetObjectClassString機能 PBDOM_OBJECT のク ラスを文字列で返します。

構文 pbdom_object_name.GetObjectClassString()

戻り値 String 型。 現行の PBDOM_OBJECT のク ラスを示す文字列を返します。pbdom_object_name が PBDOM_ELEMENT オブジェ ク ト のと きは、 返される文字列は 「pbdom_element」 です。

例 GetObjectClass メ ソ ッ ドは、 メ ソ ッ ドが呼び出されたオブジェク トのクラス固有の文字列を返します。

PBDOM_OBJECT pbdom_obj

pbdom_obj = Create PBDOM_ELEMENT

MessageBox (" クラス ", pbdom_obj.GetObjectClassString())

こ の例では、 pbdom_obj は PBDOM_OBJECT と し て宣言さ れながら、PBDOM_ELEMENT オブジェク ト と してインスタンス化されると いう 多相性を示しています。PBDOM_ELEMENT に対して GetObjectClassString メソッ ド を呼び出した結果を、 メ ッセージ ボッ クスに表示します。 この例では、 結果は pbdom_element と なり 、 pbdom_obj が PBDOM_ELEMENT オブジェク ト であること を示します。

解説 このメ ソ ッ ドを使用する と、 診断を目的と して、 実行時の PBDOM_OBJECT の実際の種類を動的に調べるこ とができます。

GetOwnerDocumentObject機能 PBDOM_ELEMENT オブジェク ト を所有している PBDOM_DOCUMENT

オブジェク ト を返します。

構文 pbdom_element_name.GetOwnerDocumentObject()

戻り値 PBDOM_DOCUMENT。 GetOwnerDocumentObject メ ソ ッ ド が呼び出された PBDOM_ELEMENT オブジェク ト を所有する PBDOM_DOCUMENT です。 戻り 値が null のと きは、 PBDOM_ELEMENT オブジェク ト がどの PBDOM_DOCUMENT にも所有されていないこと を示します。

引数 説明

pbdom_object_name PBDOM_OBJECT オブジェク トの名前を指定

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 243

Page 260: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

例 次のス ク リ プ ト から GetOwnerDocumentObject メ ソ ッ ド を呼び出し ます。 このス ク リプ ト では、 pbdom_root_elem が、 PBDOM_DOCUMENTオブジェク ト pbdom_doc のルート要素を参照します。

PBDOM_DOCUMENT pbdom_docPBDOM_ELEMENT pbdom_root_elem

pbdom_root_elem = pbdom_doc.GetRootElement()

IF pbdom_doc.Equals &(pbdom_root_elem.GetOwnerDocumentObject())

THEN

MessageBox ("Equals", " オブジェク トは等しいです。 ")END IF

Equals メ ソ ッ ドは、 pbdom_doc と、 GetOwnerDocumentObject メ ソ ッ ドから返された PBDOM_DOCUMENT オブジェク トが同じであるかど うかを調べます。 メ ッセージ ボッ クスには、 オブジェク トは同じものであるこ とが表示されます。

関連項目 GetParentObjectSetParentObject

GetParentObject機能 PBDOM_ELEMENT オブジェク トの親オブジェク ト を返します。

構文 pbdom_element_name.GetParentObject()

戻り値 PBDOM_OBJECT。 GetParentObject メ ソ ッ ドが呼び出された PBDOM_ELEMENT オブジェク ト の親オブジェク ト です。 戻り 値が null の場合は、 PBDOM_ELEMENT オブジェク トに親がないこ とを示します。

関連項目 GetOwnerDocumentObjectSetParentObject

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

244 PowerBuilder

Page 261: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

GetQualifiedName機能 PBDOM_ELEMENT オブジェク トの完全な名前を

[namespace_prefix]:[local_name] とい う フォームで返します。PBDOM_ELEMENT オブジェク ト に名前空間の接頭辞がない場合は、GetQualifiedName メ ソ ッ ドはローカル名を返します。

構文 pbdom_element_name.GetQualifiedName()

戻り値 String 型。 PBDOM_ELEMENT オブジェク トの完全な名前を返します。完全な名前は、 名前空間の接頭辞と ローカル名からな り ます。

関連項目 AddNamespaceDeclarationGetNamespacePrefixGetNamespaceUriRemoveNamespaceDeclarationSetNamespace

GetText機能 メ ソ ッ ドが呼び出された PBDOM_ELEMENT オブジェク ト内に含まれ

ている、 すべての PBDOM_TEXT ノード と PBDOM_CDATA ノードのテキス ト値を連結した文字列を取得します。

構文 pbdom_element_name.GetText()

戻り値 String 型

例 GetText メ ソ ッ ドを abc とい う PBDOM_ELEMENT オブジェク トに対して呼び出します。

<abc>Root Element Data<data>ABC Data </data> now with extra info</abc>

GetText メ ソ ッ ドは、 次の文字列を返します。

Root Element Data now with extra info

テキス ト 「ABC Data」 は、 PBDOM_ELEMENT である abc には含まれていないので除外されます。

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 245

Page 262: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

関連項目 GetTextNormalizeGetTextTrimSetText

GetTextNormalize機能 PBDOM_ELEMENT オブジェク トに含まれている正規化されたテキス

ト データを返します。

構文 pbdom_element_name.GetTextNormalize()

戻り値 String 型

例 次の XML の abc 要素に対して、 GetTextNormalize メ ソ ッ ドを呼び出します。

<abc> Root Element Data <data>ABC Data </data> now with extra info </abc>

GetTextNormalize メ ソ ッ ドは、 次の文字列を返します。

Root Element Data now with extra info

解説 返されるテキス ト データには、 PBDOM_CDATA オブジェ ク ト に含まれているすべてのテキス ト データが含まれます。 前後の空白文字はすべて削除されます。 テキス ト内の空白文字は、 半角スペース 1 つに正規化されます。 GetTextNormalize メ ソ ッ ドは、 PBDOM_ELEMENT にテキス ト値がない場合や、 空白文字しか含まれていない場合は、 空の文字列を返します。

関連項目 GetTextGetTextTrimSetText

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

246 PowerBuilder

Page 263: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

GetTextTrim機能 PBDOM_ELEMENT オブジェク ト内に含まれるテキス ト データを、 前

後の空白文字をすべて削除して返します。

構文 pbdom_element_name.GetTextTrim()

戻り値 String 型

例 次の XML の abc 要素に対して、 GetTextTrim メ ソ ッ ドを呼び出します。

<abc> Root Element Data <![CDATA[ with some cdata text ]]></abc>

GetTextTrim メ ソ ッ ドは、 次の文字列を返します。

Root Element Data with some cdata text

解説 返されるテキスト データから前後の空白文字を削除します。 GetTextTrimメ ソ ッ ド は、 PBDOM_ELEMENT オブジェク ト にテキスト 値がない場合や、 テキスト 値に空白文字しか含まれていない場合は、 空の文字列を返します。

関連項目 GetTextGetTextNormalizeSetText

HasAttributes機能 PBDOM_ELEMENT オブジェク トが 1 つ以上の属性を持っているかど

うかを示します。

構文 pbdom_element_name.HasAttributes()

戻り値 Boolean 型。現行の PBDOM_ELEMENT オブジェク トが 1 つ以上の属性を持っている場合は true を返し、属性を持っていない場合は false を返します。

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 247

Page 264: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

例 次の文書では、 要素 site だけが 1 つの属性 (href) を持っています。

<books><title>Inside Wizardry</title><author>Ron Potter</author><site href="http://www.mybooks.com/press"/>

</books>

PBDOM_ELEMENT オブジェク ト pbdom_elem_site が要素 site を表す場合、 次の呼び出しは true を返します。

pbdom_elem_site.HasAttributes()

関連項目 GetAttributeGetAttributesGetAttributeValueSetAttributeSetAttributes

HasChildElements機能 PBDOM_ELEMENT オブジェク トが 1 つ以上の子 PBDOM_ELEMENT

オブジェク ト を持っているかど うかを示します。

構文 pbdom_element_name.HasChildElements()

戻り値 Boolean 型。 現行の PBDOM_ELEMENT オブジェ ク トが 1 つ以上の子PBDOM_ELEMENT オブジェク ト を持っている場合は true を返し、 子PBDOM_ELEMENT オブジェク ト を持っていない場合は false を返します。

例 次の XML では、books という PBDOM_ELEMENT オブジェク トに対して、 HasChildElements メ ソ ッ ドを呼び出します。

<books><title>Inside OLE</title><author>Kraig Brockschmidt</author><site href="http://www.microsoft.com/press"/>

</books>

books オブジ ェ ク ト には、 title、 author、 および site と い う 3 つの子PBDOM_ELEMENT オブジェク トがあ り ます。そこで、HasChildElementsメ ソ ッ ドは true を返します。

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

248 PowerBuilder

Page 265: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

関連項目 GetChildElementGetChildElementsHasChildrenIsRootElementRemoveChildElementRemoveChildElements

HasChildren機能 PBDOM_ELEMENT オブジェク トが 1 つ以上の子オブジェク ト を持っ

ているかど うかを示します。

構文 pbdom_element_name.HasChildren()

戻り値 Boolean 型。現行の PBDOM_ELEMENT オブジェク トが 1 つ以上の子オブジェク ト を持っている場合は true を返し、 子オブジェク ト を持っていない場合は false を返します。

例 次の XML の要素に対して、 HasChildren メ ソ ッ ドを呼び出します。

<books><title>Inside OLE</title><author>Kraig Brockschmidt</author><site href="http://www.microsoft.com/press"/>

</books>

books 要素には、 title、 author、 および site とい う 3 つの子要素があ り ます。title と author 要素は、それぞれ 1 つの子 PBDOM_TEXT オブジェクト を持っています。 そこで、 これらの要素に対して HasChildren メ ソ ッドを呼び出すと、 このメ ソ ッ ドは true を返します。

反対に、 site 要素は PBDOM_ATTRIBUTE href を持っていますが、 これは子 PBDOM_OBJECT とはみなされません。 したがって、 site 要素に対して HasChildren メ ソ ッ ドを呼び出すと、このメ ソ ッ ドは false を返します。

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 249

Page 266: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

解説 JDOM HasChildren メ ソ ッ ドは要素に子要素が含まれている場合にのみtrue を返すので、 PBDOM の HasChildren メ ソ ッ ドの実装と、 JDOM のHasChildren メ ソ ッ ドの実装は異なり ます。 テキス ト とそのほかの種類のオブジェク トについてはカウン ト されません。

PBDOM には、 特に PBDOM_ELEMENT オブジェク トに 1 つ以上の子PBDOM_ELEMENT オブジェク トがあるかど うかを調べる、 代わりのメ ソ ッ ド HasChildElements が用意されています。

関連項目 HasChildElementsIsRootElement

InsertContent機能 新しい PBDOM_OBJECT を PBDOM_ELEMENT オブジェ ク ト に挿入

します。

構文 pbdom_element_name.InsertContent(pbdom_object pbdom_object_new, pbdom_object pbdom_object_ref)

戻り値 PBDOM_OBJECT。 修正されて、 PBDOM_OBJECT オブジェ ク ト と して返された PBDOM_ELEMENT オブジェク トです。

Throws EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT ― 無効なPBDOM_OBJECT が追加さ れた場合。 PBDOM_ELEMENT オブジェク ト に追加でき る 有効な PBDOM_OBJECT オブジェ ク ト については、218 ページの「 AddContent」 を参照。入力さ れた PBDOM_OBJECTや参照 PBDOM_OBJECT が現行の PBDOM_ELEMENT オブジェク ト自体である場合にも 、 こ の例外が送出さ れる

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 入力された挿入する PBDOM_OBJECT にユーザ定義名が付いていない場合。参照 PBDOM_OBJECT が特に null に設定されていない限 り、 参照PBDOM_OBJECT にユーザ定義名が付いていない場合にも、 同じ例外が送出される

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

pbdom_object_new 挿入する PBDOM_OBJECT を指定

pbdom_object_ref 新しい PBDOM_OBJECT を挿入する位置の後にある位置参照 PBDOM_OBJECT を指定

250 PowerBuilder

Page 267: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された挿入する PBDOM_OBJECT が、派生した PBDOM_OBJECT に関連付けられていない場合。 参照 PBDOM_OBJECT が特に null に設定されていない限り、参照 PBDOM_OBJECT が派生した PBDOM_OBJECT に関連付けられていない場合にも、 同じ例外が送出される

EXCEPTION_INVALID_ARGUMENT ― 参照 PBDOM_OBJECT (2 番目のパラ メータ) が null に設定されるこ とになっているが、 SetNull メ ソ ッドを使って特に null に設定されていない場合

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 入力された挿入する PBDOM_OBJECT にすでに親がある場合

EXCEPTION_WRONG_PARENT_ERROR ― 参照 PBDOM_OBJECT が現行の PBDOM_ELEMENT オブジェク トの子でない場合

EXCEPTION_HIERARCHY_ERROR ― 入力された PBDOM_OBJECT を挿入する と、 現行の PBDOM_ELEMENT オブジェク トが整形式でなくなる場合

例 次のスク リプ ト を使って、 XML 文書を作成します。

pbdom_doc1 = Create PBDOM_DOCUMENTpbdom_elem_1 = Create PBDOM_ELEMENTpbdom_elem_2 = Create PBDOM_ELEMENTpbdom_elem_3 = Create PBDOM_ELEMENT

pbdom_elem_1.SetName ("pbdom_elem_1")pbdom_elem_2.SetName ("pbdom_elem_2")pbdom_elem_3.SetName ("pbdom_elem_3")

pbdom_doc1.NewDocument ("", "", "Root_Element", "", "")pbdom_elem_root = pbdom_doc1.GetRootElement()pbdom_elem_root.AddContent (pbdom_elem_1)pbdom_elem_root.AddContent (pbdom_elem_3)

XML は次のよ うにな り ます。

!DOCTYPE Root_Element> <Root_Element>

<pbdom_elem_1 /> <pbdom_elem_3 />

</Root_Element>

InsertContent メ ソ ッ ドを使って、 pbdom_elem_1 と pbdom_elem_3 の間に要素を追加します。

pbdom_elem_root.InsertContent(pbdom_elem_2, &pbdom_elem_3)

PowerBuilder エクステンシ ョ ン リファレンス 251

Page 268: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

XML は次のよ うにな り ます。

<!DOCTYPE Root_Element> <Root_Element>

<pbdom_elem_1 /> <pbdom_elem_2 /> <pbdom_elem_3 />

</Root_Element>

解説 挿入されたオブジェク トは、 PBDOM_ELEMENT オブジェク トの子になり ます。 新しい PBDOM_OBJECT は、 2 番目のパラ メータで指定した、 も う 1 つの PBDOM_OBJECT の前に配置されます。

関連項目 AddContent 構文 1AddContent 構文 2GetContentRemoveContentSetContent

IsAncestorObjectOf機能 PBDOM_ELEMENT オブジェク トが、 メ ソ ッ ドのパラ メータで指定さ

れた PBDOM_OBJECT の先祖であるかど うかを調べます。

構文 pbdom_element_name.IsAncestorObjectOf(pbdom_object pbdom_object_ref)

戻り値 Boolean 型。 現行の PBDOM_ELEMENT オブジェ ク ト が指定されたPBDOM_OBJECT の先祖である場合は true を返し、 それ以外の場合はfalse を返します。

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

pbdom_object_ref 現行の PBDOM_ELEMENT オブジェ ク ト と同じであるかど うかを調べる PBDOM_OBJECT を指定

252 PowerBuilder

Page 269: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

IsRootElement機能 PBDOM_ELEMENT オブジェク トが PBDOM_DOCUMENT オブジェク

トのルート要素であるかど うかを示します。

構文 pbdom_element_name.IsRootElement()

戻り値 Boolean 型。 現行の PBDOM_ELEMENT オブジェク トが PBDOM_DOCUMENT のルート要素である場合は true を返し、 それ以外の場合は false を返します。

関連項目 GetChildElementGetChildElementsHasChildElementsHasChildrenRemoveChildElementRemoveChildElements

RemoveAttribute機能 RemoveAttribute メ ソ ッ ドは、 次のよ うに上書きされます。

• 構文 1 は、 PBDOM_ATTRIBUTE への参照を使って、PBDOM_ATTRIBUTE をそのオーナー PBDOM_ELEMENT オブジェク トから削除します。

• 構文 2 は、 PBDOM_ATTRIBUTE の名前を使って、PBDOM_ATTRIBUTE をそのオーナー PBDOM_ELEMENT オブジェ ク トから削除します。

• 構文 3 は、 PBDOM_ATTRIBUTE の名前と 名前空間を 使っ て、PBDOM_ATTRIBUTE をそのオーナー PBDOM_ELEMENT オブジェク ト から 削除します。

構文

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

構文 参照先

RemoveAttribute(pbdom_attribute pbdom_attribute_ref)

RemoveAttribute 構文 1

RemoveAttribute(string strAttributeName) RemoveAttribute 構文 2RemoveAttribute(string strAttributeName, string strNamespacePrefix, string strNamespaceUri)

RemoveAttribute 構文 3

PowerBuilder エクステンシ ョ ン リファレンス 253

Page 270: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

RemoveAttribute 構文 1機能 PBDOM_ATTRIBUTE をそのオーナー PBDOM_ELEMENT オブジェク

トから削除します。

構文 pbdom_element_name.RemoveAttribute(pbdom_attribute pbdom_attribute_ref)

戻り値 Boolean 型。 指定された PBDOM_ATTRIBUTE が削除された場合は trueを返し、 それ以外の場合は false を返します。

RemoveAttribute 構文 2機能 名前空間に格納されていない、 名前で指定された PBDOM_ATTRIBUTE

オブジェク ト を削除します。 この PBDOM_ATTRIBUTE が存在しない場合は、 RemoveAttribute は何も実行しません。

構文 pbdom_element_name.RemoveAttribute(string strAttributeName)

戻り値 Boolean 型。 指定された PBDOM_ATTRIBUTE が削除された場合は trueを返し、 それ以外の場合は false を返します。

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

pbdom_attribute_ref 現行の PBDOM_ELEMENT オブジェ ク ト から削除する PBDOM_ATTRIBUTE オブジェク ト を指定

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strAttributeName 削除する PBDOM_ATTRIBUTE の名前を指定

254 PowerBuilder

Page 271: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

RemoveAttribute 構文 3機能 名前と名前空間で指定された PBDOM_ATTRIBUTE を削除します。 こ

の PBDOM_ATTRIBUTE が存在しない場合は、RemoveAttribute は何も実行しません。

構文 bdom_element_name.RemoveAttribute(string strAttributeName, string strNamespacePrefix, string strNamespaceUri)

戻り値 Boolean 型。 指定された PBDOM_ATTRIBUTE が削除された場合は trueを返し、 それ以外の場合は false を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力されたいずれかのパラ メータが無効 (たとえば、 null) である場合

EXCEPTION_INVALID_STRING ― 入力された属性名が無効である (たとえば、 コロンが含まれている) 場合、 あるいは名前空間の接頭辞または名前空間の URI が無効である場合

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リの割り当てに失敗した場合

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strAttributeName 削除する PBDOM_ATTRIBUTE の名前を指定

strNamespacePrefix 削除する PBDOM_ATTRIBUTE の名前空間の接頭辞を指定

strNamespaceUri 削除する PBDOM_ELEMENT の名前空間の URI を指定

PowerBuilder エクステンシ ョ ン リファレンス 255

Page 272: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

RemoveChildElement機能 RemoveChildElement メ ソ ッ ドは、 次のよ うに上書きされます。

• 構文 1 は、 指定されたローカル名を持ち、 名前空間に属していない最初の子 PBDOM_ELEMENT オブジェク ト (1 つ下のレベル) を削除します。

• 構文 2 は、 指定されたローカル名を持ち、 指定された名前空間に属している最初の子 PBDOM_ELEMENT オブジェク ト (1 つ下のレベル) を削除します。

構文

RemoveChildElement 構文 1機能 指定されたローカル名を持ち、 名前空間に属していない最初の子

PBDOM_ELEMENT オブジェク ト (1 つ下のレベル) を削除します。

構文 pbdom_element_name.RemoveChildElement(string strElementName)

戻り値 Boolean 型。指定された PBDOM_ELEMENT オブジェク トが削除された場合は true を返し、 それ以外の場合は false を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力されたパラ メータが無効 (たとえば、 null) である場合

EXCEPTION_INVALID_STRING ― 入力された要素名が無効である場合

関連項目 GetChildElementGetChildElementsHasChildElementsHasChildrenIsRootElementRemoveChildElement 構文 2RemoveChildElements

構文 参照先

RemoveChildElement(string strElementName) RemoveChildElement 構文 1

RemoveChildElement(string strElementName, string strNamespacePrefix, string strNamespaceUri)

RemoveChildElement 構文 2

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strElementName 削除する子 PBDOM_ELEMENT オブジェ ク ト の名前を指定

256 PowerBuilder

Page 273: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

RemoveChildElement 構文 2機能 指定されたローカル名を持ち、 指定された名前空間に属している最初

の子 PBDOM_ELEMENT オブジェク ト (1つ下のレベル)を削除します。

構文 pbdom_element_name.RemoveChildElement(string strElementName, string strNamespacePrefix, string strNamespaceUri)

戻り値 Boolean 型。指定された PBDOM_ELEMENT オブジェク トが削除された場合は true を返し、 それ以外の場合は false を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力されたパラ メータが無効 (たとえば、 null) である場合

EXCEPTION_INVALID_STRING ― 入力された要素名が無効であるか、 入力された名前空間の接頭辞または名前空間の URI が無効である場合

関連項目 GetChildElementGetChildElementsHasChildElementsHasChildrenIsRootElementRemoveChildElement 構文 1RemoveChildElements

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strElementName 削除する PBDOM_ELEMENT オブジェ ク ト の名前を指定

strNamespacePrefix 削除する PBDOM_ELEMENT オブジェ ク ト の名前空間の接頭辞を指定

strNamespaceUri 削除する PBDOM_ELEMENT の名前空間の URI を指定

PowerBuilder エクステンシ ョ ン リファレンス 257

Page 274: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

RemoveChildElements機能 RemoveChildElements メ ソ ッ ドは、 次のよ うに上書きされます。

• 構文 1 は、 現行の PBDOM_ELEMENT オブジェク トから子 PBDOM_ELEMENT オブジェク ト をすべて削除します。 パラ メ ータは使用しません。

• 構文 2 は、 現行の PBDOM_ELEMENT オブジェク ト から、 指定されたローカル名を持ち、名前空間に属していない子 PBDOM_ELEMENTオブジェク ト をすべて削除します。

• 構文 3 は、 現行の PBDOM_ELEMENT オブジェク トから、 指定された ローカル名を持ち、 指定された名前空間に属し ている子PBDOM_ELEMENT オブジェク ト (1 つ下のレベル) をすべて削除します。

構文

RemoveChildElements 構文 1機能 現行の PBDOM_ELEMENT オブジェ ク ト から子 PBDOM_ELEMENT

オブジェク ト をすべて削除します。 パラ メータは使用しません。

構文 pbdom_element_name.RemoveChildElements()

戻り値 Boolean 型。すべての子 PBDOM_ELEMENT オブジェク トが削除された場合は true を返し、 それ以外の場合は false を返します。

関連項目 GetChildElementGetChildElementsHasChildElementsHasChildrenIsRootElementRemoveChildElement

構文 参照先

RemoveChildElements() RemoveChildElements構文 1

RemoveChildElements(string strElementName) RemoveChildElements構文 2

RemoveChildElements(string strElementName, string strNamespacePrefix, string strNamespaceUri)

RemoveChildElements構文 3

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

258 PowerBuilder

Page 275: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

RemoveChildElements 構文 2RemoveChildElements 構文 3

RemoveChildElements 構文 2機能 現行の PBDOM_ELEMENT オブジェク トから、 指定されたローカル名

を持ち、 名前空間に属していない子 PBDOM_ELEMENT オブジェク トをすべて削除します。

構文 pbdom_element_name.RemoveChildElements(string strElementName)

戻り値 Boolean 型。すべての子 PBDOM_ELEMENT オブジェク トが削除された場合は true を返し、 それ以外の場合は false を返します。

関連項目 GetChildElementGetChildElementsHasChildElementsHasChildrenIsRootElementRemoveChildElementRemoveChildElements 構文 1RemoveChildElements 構文 3

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strElementName 削除する子 PBDOM_ELEMENT オブジェ ク ト の名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 259

Page 276: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

RemoveChildElements 構文 3機能 現行の PBDOM_ELEMENT オブジェク トから、 指定されたローカル名

を持ち、 指定された名前空間に属している子 PBDOM_ELEMENT オブジェク ト (1 つ下のレベル) をすべて削除します。

構文 pbdom_element_name.RemoveChildElements(string strElementName, string strNamespacePrefix, string strNamespaceUri)

戻り値 Boolean 型。すべての子 PBDOM_ELEMENT オブジェク トが削除された場合は true を返し、 それ以外の場合は false を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力されたいずれかのパラ メータが無効 (たとえば、 null) である場合

EXCEPTION_INVALID_NAME ― 入力された要素名、 名前空間の接頭辞、または名前空間の URI が無効である場合。 唯一の例外は、 入力された要素名が空の文字列の場合。 この場合は、 すべての要素名が一致する

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リの割り当てに失敗した場合

関連項目 GetChildElementGetChildElementsHasChildElementsHasChildrenIsRootElementRemoveChildElementRemoveChildElements 構文 1RemoveChildElements 構文 2

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strElementName 削除する子 PBDOM_ELEMENT オブジェ ク ト の名前を指定

strNamespacePrefix 削除する子 PBDOM_ELEMENT オブジェ ク ト の名前空間の接頭辞を指定

strNamespaceUri 削除する子 PBDOM_ELEMENT オブジェ ク ト の名前空間の URI を指定

260 PowerBuilder

Page 277: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

RemoveContent機能 PBDOM_ELEMENT オブジェク トから子 PBDOM_OBJECT を削除しま

す。削除される PBDOM_OBJECT に含まれる子もすべて削除されます。

構文 pbdom_element_name.RemoveContent(pbdom_object pbdom_object_ref)

戻り値 Boolean 型。指定された内容が削除された場合は true を返し、それ以外の場合は false を返します。

Throws EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 入力さ れた PBDOM_OBJECT にユーザ定義名が付いていない場合

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力さ れた PBDOM_OBJECT が、 派生し た PBDOM_OBJECT に関連付けら れていない場合

EXCEPTION_WRONG_DOCUMENT_ERROR ― 入力された PBDOM_OBJECTが現行の PBDOM_ELEMENT オブジェク ト と 同じ文書に含まれていない場合

EXCEPTION_WRONG_PARENT_ERROR ― 入力された PBDOM_OBJECTが現行の PBDOM_ELEMENT オブジェク トの子でない場合

例 RemoveContent メ ソ ッ ドを使って、 次の XML を修正します。

<Telephone_Book><Entry>

<Particulars><Name>John Doe</Name><Age>21</Age><Phone_Number>1234567</Phone_Number>

</Particulars></Entry>

</Telephone_Book>

次のスク リプ トから RemoveContent メ ソ ッ ドを呼び出します。

PBDOM_DOCUMENT pbdom_docPBDOM_ELEMENT pbdom_entry

pbdom_doc.GetRootElement().RemoveContent(pbdom_entry)

XML は次のよ うにな り ます。

<Telephone_Book></Telephone_Book>

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

pbdom_object_ref 削除する PBDOM_OBJECT を指定

PowerBuilder エクステンシ ョ ン リファレンス 261

Page 278: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

関連項目 AddContent 構文 1AddContent 構文 2GetContentInsertContentSetContent

RemoveNamespaceDeclaration機能 指定された PBDOM_NAMESPACE 宣言を PBDOM_ELEMENT オブ

ジェ ク ト から削除します。 名前空間の接頭辞が空の文字列の場合は、RemoveNamespaceDeclaration はデフォル ト の名前空間の宣言を削除します。

構文 pbdom_element_name.RemoveNamespaceDeclaration(string strNamespacePrefix, string strNamespaceUri)

戻り値 Boolean 型。PBDOM_ELEMENT オブジェク トから名前空間が正常に削除された場合は true を返し、 それ以外の場合は false を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力されたいずれかのパラ メータが無効 (たとえば、 null) である場合

EXCEPTION_INVALID_NAME ― 名前空間の接頭辞または URI が無効である場合、 または名前空間の接頭辞と URI の両方が組み合わせと して無効である場合

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リの割り当てに失敗した場合

関連項目 AddNamespaceDeclarationGetNamespacePrefixGetNamespaceUriGetQualifiedNameSetNamespace

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strNamespacePrefix 削除する名前空間の宣言の接頭辞を指定

strNamespaceUri 削除する名前空間の宣言の URI を指定

262 PowerBuilder

Page 279: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

SetAttribute機能 SetAttribute メ ソ ッ ドは、 次のよ うに上書きされます。

• 構文 1 は、 定義済みの PBDOM_ATTRIBUTE オブジェク ト を PBDOM_ELEMENT オブジェク ト に追加します。

• 構文 2 は、 PBDOM_ATTRIBUTE の名前と 値に対する文字列を指定して、 PBDOM_ATTRIBUTE オブジェク ト とその値を PBDOM_ELEMENT オブジェク トに追加します。

• 構文 3 は、 PBDOM_ATTRIBUTE の名前と値に対する文字列に加え、 PBDOM_ATTRIBUTE が属する名前空間の接頭辞と URI を指定して、 属性と値の組み合わせを PBDOM_ELEMENT オブジェクトに追加します。

構文

SetAttribute 構文 1機能 定義済みの PBDOM_ATTRIBUTE オブジェク ト を PBDOM_ELEMENT

オブジェク トに追加します。 同じ名前と名前空間の URI を持つ属性が存在する場合、 その属性は上書きされます。

構文 pbdom_element_name.SetAttribute(pbdom_attribute pbdom_attribute_ref)

戻り値 PBDOM_ELEMENT。 指定された PBDOM_ATTRIBUTE を含んでいるPBDOM_ELEMENT オブジェク トです。

構文 参照先

SetAttribute(pbdom_attribute pbdom_attribute_ref) SetAttribute 構文 1

SetAttribute(string strName, string strValue) SetAttribute 構文 2SetAttribute(string strName, string strValue, string strNamespacePrefix, string strNamespaceUri, boolean bVerifyNamespace)

SetAttribute 構文 3

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

pbdom_attribute_ref 現行の PBDOM_ELEMENT オブジェク トに対して設定する PBDOM_ATTRIBUTE オブジェク ト を指定

PowerBuilder エクステンシ ョ ン リファレンス 263

Page 280: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

Throws EXCEPTION_INVALID_ARGUMENT ― 入力された PBDOM_ATTRIBUTEが無効である場合。 PBDOM_ATTRIBUTE が正し く初期化されていなかった場合や、null オブジェク ト参照である場合に、無効となるこ とがある

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 入力された PBDOM_ATTRIBUTE にユーザ定義名が付いていない場合

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_OWNER ― 入力されたPBDOM_ATTRIBUTE がすでにオーナー要素を持っている場合

例 例 1 次の要素に対して、 SetAttribute メ ソ ッ ドを呼び出します。

<image></image>

次のスク リプ トから SetAttribute を呼び出します。 elem_image は前述のXML の image 要素を表します。

attr_src.SetName("src")attr_src.SetValue("logo.gif")elem_image.SetAttribute(attr_src)

XML は次のよ うにな り ます。

<image src="logo.gif"></image>

例 2 次の例では、 入力された PBDOM_ATTRIBUTE と同じ名前と名前空間の URI を持つ属性がすでに PBDOM_ELEMENT オブジェ ク ト に存在している場合に、 この PBDOM_ELEMENT オブジェク トに対してPBDOM_ATTRIBUTE を設定する と、 どのよ う な影響があるかを示します。

この例では、次の文書に基づいて PBDOM_DOCUMENT を作成します。

<root xmlns:pre1="http://www.pre.com" xmlns:pre2="http://www.pre.com">

<child1 pre1:a="123"/></root>

次に、 PBDOM_ATTRIBUTE オブジェク ト を作成し、 その名前を a に、その接頭辞と URI をそれぞれ pre2 と http://www.pre.com に設定します。 この PBDOM_ATTRIBUTE にはオーナー PBDOM_ELEMENT オブジェク トが設定されていないので、 事前宣言された名前空間についての確認が失敗するよ うに、bVerifyNamespace 引数を false に設定します。テキス ト値に 456 を設定します。

264 PowerBuilder

Page 281: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

child1 要素には、 接頭辞 pre1 が示すよう に、 名前空間 http://www.pre.com に属する a とい う名前の属性が含まれています。 新しい PBDOM_ATTRIBUTE は接頭辞 pre2 を使用していますが、 これは、 同じ名前空間の URI を表します。 そこで、 新しい PBDOM_ATTRIBUTE を child1 に設定する と、 既存の pre1:a が新しい PBDOM_ATTRIBUTE pre2:a に置き換えられます。

PBDOM_BUILDER pbdom_buildrPBDOM_DOCUMENT pbdom_docPBDOM_ATTRIBUTE pbdom_attrstring strXML = "<root xmlns:pre1=~"http://www.pre.com~" xmlns:pre2=~"http://www.pre.com~"><child1 pre1:a=~"123~"/></root>"

trypbdom_buildr = Create PBDOM_BUILDERpbdom_doc = pbdom_buildr.BuildFromString (strXML)

// PBDOM_ATTRIBUTE を作成し、 そのプロパティ を設定します。pbdom_attr = Create PBDOM_ATTRIBUTEpbdom_attr.SetName ("a")pbdom_attr.SetNamespace ("pre2", &

"http://www.pre.com", false)pbdom_attr.SetText("456")

// child1 要素を取得し、 新しい属性を// その要素に設定します。pbdom_doc.GetRootElement(). &

GetChildElement("child1").SetAttribute(pbdom_attr)

pbdom_doc.SaveDocument &("pbdom_elem_set_attribute_1.xml")

catch (PBDOM_EXCEPTION except)MessageBox ("PBDOM_EXCEPTION", except.GetMessage())

end try

保存して XML 文書に変換する と、 文書は次のよ うにな り ます。

<root xmlns:pre1="http://www.pre.com" xmlns:pre2="http://www.pre.com"

<child1 pre2:a="456"/</root

PowerBuilder エクステンシ ョ ン リファレンス 265

Page 282: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

解説 この メ ソ ッ ド を使用する と、 定義済みの PBDOM_ATTRIBUTE オブジェ ク ト を PBDOM_ELEMENT オブジェ ク ト に追加できます。 このPBDOM_ELEMENT オブジェク トに、入力された PBDOM_ATTRIBUTEと同じ名前と名前空間の URI を持つ属性がすでに存在する場合、 既存の属性は入力された PBDOM_ATTRIBUTE に置き換えられます。

PBDOM_ATTRIBUTE は、 元の属性を表すよう に作成されていた場合には呼び出した後も有効ですが、 PBDOM_ATTRIBUTE が表す属性は元のオーナー要素から切り 離されています。 この PBDOM_ATTRIBUTE に対して GetOwnerElementObject を呼び出すと 、 null 値が返されます。

関連項目 GetAttributeGetAttributesGetAttributeValueHasAttributesSetAttribute 構文 2SetAttribute 構文 3SetAttributes

SetAttribute 構文 2機能 PBDOM_ATTRIBUTE オブジェク ト とその値を PBDOM_ELEMENT オ

ブジェク トに追加します。 同じ名前と名前空間の URI を持つ属性が存在する場合、 その属性は上書きされます。

構文 pbdom_element_name.SetAttribute(string strName, string strValue)

戻り値 PBDOM_ELEMENT。 指定された PBDOM_ATTRIBUTE と指定されたその値を含む PBDOM_ELEMENT オブジェク トです。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力された文字列のいずれかまたは両方が無効である場合。 いずれかまたは両方の文字列が正し く初期化されていないか、 null である場合に、 無効となるこ とがある

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リ不足が発生した場合

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strName 追加する PBDOM_ATTRIBUTE の名前を指定

strValue 追加する PBDOM_ATTRIBUTE の値を指定

266 PowerBuilder

Page 283: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_ELEMENT オブジェク トの内部実装が null の場合。 この例外が送出されるのはまれですが、 重大なメモ リの破損が発生した場合に送出されるこ とがある

EXCEPTION_INVALID_NAME ― 属性に無効な名前が指定されている場合

EXCEPTION_INVALID_STRING ― 属性値に無効な文字列が指定されている場合

例 例 1 次の XML 要素に対して、 SetAttribute メ ソ ッ ドを呼び出します。

<code0789725045</code

次の PowerScript 文から SetAttribute を呼び出します。 elem_code は code要素を表します。

elem_code.SetAttribute("type", "ISBN")

XML 要素は次のよ うにな り ます。

<code type="ISBN">0789725045</code>

例 2 次の例では、 PBDOM_ELEMENT オブジェク トにすでに属性が存在している場合に、 このオブジェク トに対して同じ名前の属性を設定する と、 どのよ う な影響があるかを示します。 この例では、 以下の文書に基づいて PBDOM_DOCUMENT を作成します。

<root xmlns:pre1="http://www.pre.com"><child1 pre1:a="123" b="456"/>

</root>

child1 要素には、 値 456 が設定された b とい う属性がすでに存在します。名前 b と値 789 を指定して SetAttribute メ ソ ッ ドを呼び出すと、child1の新しい属性が作成され、 この属性が元の b 属性に置き換わり ます。

PBDOM_BUILDER pbdom_buildrPBDOM_DOCUMENT pbdom_docstring strXML = "<root xmlns:pre1=~"http://www.pre.com~" ><child1 pre1:a=~"123~" b=~"456~"/></root>"

trypbdom_buildr = Create PBDOM_BUILDERpbdom_doc = pbdom_buildr.BuildFromString (strXML)pbdom_doc.GetRootElement(). &

GetChildElement("child1").SetAttribute("b", "789")catch (PBDOM_EXCEPTION except)

MessageBox ("PBDOM_EXCEPTION", except.GetMessage())end try

PowerBuilder エクステンシ ョ ン リファレンス 267

Page 284: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

PBDOM_DOCUMENT オブジェ ク ト を保存して XML に変換する と、XML 文書は次のよ うにな り ます。

<root xmlns:pre1="http://www.pre.com"><child1 pre1:a="123" b="789"/>

</root>

解説 このメ ソ ッ ドを使用する と、 属性と値の組み合わせを PBDOM_ELEMENT オブジェク トに追加できます。 入力した名前と同じ名前を持ち、 名前空間に属していない属性がすでに PBDOM_ELEMENT オブジェク トに存在する場合、 元の属性は現行の PBDOM_ELEMENT オブジェク トから削除され、 指定した属性名と値が一致する新しい属性が作成されて、 元の属性に置き換わり ます。

PBDOM_ATTRIBUTE は、 元の属性を表すよ うに作成されていた場合にはそのま ま有効ですが、 PBDOM_ATTRIBUTE が表す属性は元のオーナー要素から切り離されています。 この PBDOM_ATTRIBUTE に対して GetOwnerElementObject を呼び出すと、 null 値が返されます。

関連項目 GetAttributeGetAttributesGetAttributeValueHasAttributesSetAttribute 構文 1SetAttribute 構文 3SetAttributes

SetAttribute 構文 3機能 属性と値の組み合わせを PBDOM_ELEMENT オブジェク トに追加しま

す。 属性の名前空間を指定し、 同じ名前と名前空間の URI を持つ属性があれば、 これを削除します。

構文 pbdom_element_name.SetAttribute(string strName, string strValue, string strNamespacePrefix, string strNamespaceUri, boolean bVerifyNamespace)

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strName 追加する PBDOM_ATTRIBUTE の名前を指定

strValue 追加する PBDOM_ATTRIBUTE の値を指定

strNamespacePrefix PBDOM_ATTRIBUTE が属している名前空間の接頭辞を指定

strNamespaceUri PBDOM_ATTRIBUTE が属している名前空間の URIを指定

268 PowerBuilder

Page 285: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

戻り値 Long 型。 名前空間の確認エラーが発生した場合は 0 を返し、 指定された接頭辞と URI を設定するスコープ内名前空間の宣言が存在しない場合は -1 を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― いずれかの引数が無効である場合。PowerScript SetNull 関数を使って、 入力されたいずれかの文字列を nullに設定していた場合に、 無効となるこ とがあ り ます。

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_ELEMENT オブジェク トの内部実装が null の場合。 この例外が送出されるのはまれですが、 重大なメモ リの破損が発生した場合に送出されるこ とがある

EXCEPTION_INVALID_NAME ― 入力された名前空間の接頭辞またはURI、あるいはその組み合わせが無効である場合。無効となるのは、次の場合

• 名前空間の接頭辞が空の文字列で、 URI が空の文字列でない場合。両方が空の文字列である場合は、NONAMESPACE 名前空間が指定されるこ とにな り、 この接頭辞と URI の組み合わせは正しいものになり ます。

• 名前空間の接頭辞が xmlns であり ながら、 URI が http://www.w3.org/2000/xmlns/ でない場合。この名前空間の接頭辞と URI の組み合わせは一意で排他的なものであり 、 別々に使用すること はできません。 この組み合わせで使用すると 、 名前空間の宣言となり ます。

• 名前空間の接頭辞の文字列が無効である場合。 つまり 、 接頭辞と して指定した文字列が、接頭辞の名前に関する W3C の 「Namespaces inXML」 仕様に準拠していない場合です。

• 名前空間の URI の文字列が無効である場合。 つま り、 URI と して指定した文字列が、URI 文字列に関する W3C 仕様に準拠していない場合です。

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リの割り当てに失敗した場合

bVerifyNamespace 指定された接頭辞と URI のスコープ内名前空間の宣言が存在するかど うかを、 メ ソ ッ ドで確認する必要があるかど うかを指定

引数 説明

PowerBuilder エクステンシ ョ ン リファレンス 269

Page 286: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

例 例 1 次の XML 要素に対して、 SetAttribute メ ソ ッ ドを呼び出します。

<code>0789725045</code>

次の PowerScript 文から SetAttribute を呼び出します。 elem_code は code要素を表します。

elem_code.SetAttribute("type", "ISBN", "ns", & "http://www.books.com/codes", false)

XML 要素は次のよ うにな り ます。

<code ns:type="ISBN">0789725045</code>

例 2 次の例では、名前と名前空間の URI を持つ属性が存在している要素に対して、 同じ名前と名前空間の URI を持つ属性を設定する と、 どのよ う な影響があるかを示します。 次の XML に基づいて、PBDOM_DOCUMENT を作成します。

<root xmlns:pre1="http://www.pre.com" xmlns:pre2="http://www.pre.com">

<child1 pre1:a="123"/></root>

child1 要素には、 接頭辞 pre1 で指定されている よ う に、 名前空間http://www.pre.com に属する a と い う 名前の属性が含まれています。SetAttribute を呼び出すと、 名前には同じ a が指定されても、 名前空間の接頭辞には pre2 が指定されて、 child1 の属性が設定されます。

最後のパラ メータ bVerifyNamespace は true に設定します。これは、pre2と http://www.pre.com に対するスコープ内名前空間の宣言が存在しているかど うかを最初に確認するよ うに、 SetAttribute メ ソ ッ ドに指示します。 名前空間の接頭辞と URI の組み合わせに対するスコープ内宣言は存在しているので、 この確認は正常に実行されます。

元の pre1:a 属性が child1 要素から削除され、 同じ名前空間に属し、 値456 を持つ新しい属性 pre2:a が作成され、 元の属性に代わって設定されます。 新しい属性と元の属性は同じ URI を持っているため、 新しい属性は追加属性と して設定されるのではな く、 元の属性に置き換わります。

PBDOM_BUILDER pbdom_buildrPBDOM_DOCUMENT pbdom_docstring strXML = "<root xmlns:pre1=~"http://www.pre.com~" xmlns:pre2=~"http://www.pre.com~"><child1 pre1:a=~"123~"/></root>"

try

270 PowerBuilder

Page 287: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

pbdom_buildr = Create PBDOM_BUILDERpbdom_doc = pbdom_buildr.BuildFromString (strXML)

pbdom_doc.GetRootElement().GetChildElement("child1").SetAttribute("a", "456", "pre2", "http://www.pre.com", true)

catch (PBDOM_EXCEPTION pbdom_except)MessageBox ("PBDOM_EXCEPTION",

pbdom_except.GetMessage())end try

解説 このメ ソ ッ ドを使用する と、 属性と値の組み合わせを PBDOM_ELEMENT オブジェク トに追加できます。

パラ メータ bVerifyNamespace を true に設定する と、 現行の PBDOM_ELEMENT オブジェク トから順に DOM ノード ツ リーをすべて検索し、 指定された接頭辞と URI に対してスコープ内名前空間の宣言がなされているかど うかを調べるよ うにメ ソ ッ ドに指示します。 名前空間の宣言が検出されない場合は、 属性は作成されていません。 名前空間の宣言が検出された場合は、 属性が作成されています。

bVerifyNamespace パラ メータを false に設定する と、 名前空間の宣言を確認する検索は行われず、 メ ソ ッ ドは常に 0 を返します。

PBDOM_ELEMENT オブジェ ク ト に、 入力された名前と同じ名前と、入力された名前空間の URI と同じ名前空間の URI を持つ属性がすでに存在する場合、 この元の属性は同じ名前と URI を持つ新しい属性に置き換えられます。

PBDOM_ATTRIBUTE は、 元の属性を表すよ うに作成されていた場合にはそのま ま有効ですが、 PBDOM_ATTRIBUTE が表す属性は元のオーナー要素から切り離されています。 この PBDOM_ATTRIBUTE に対して GetOwnerElementObject を呼び出すと、 null 値が返されます。

関連項目 GetAttributeGetAttributesGetAttributeValueHasAttributesSetAttribute 構文 1SetAttribute 構文 2SetAttributes

PowerBuilder エクステンシ ョ ン リファレンス 271

Page 288: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

SetAttributes機能 現行の PBDOM_ELEMENT オブジェク トで表される DOM 要素の属性

を設定します。

構文 pbdom_element_name.SetAttributes(pbdom_attribute pbdom_attribute_array[])

戻り値 PBDOM_ELEMENT。 修正された PBDOM_ELEMENT オブジェク ト です。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_ELEMENT オブジェク トの内部実装、 または PBDOM_ATTRIBUTE 配列項目のいずれかが null の場合。 こ の例外が送出されるのはまれですが、 重大なメモ リの破損が発生した場合に送出されるこ とがあ り ます。

EXCEPTION_INVALID_ARGUMENT ― PBDOM_ATTRIBUTE 配列項目のいずれかが null の場合

EXCEPTION_INVALID_NAME ― 配列内の複数の PBDOM_ATTRIBUTEに、 同じ名前と名前空間の URI が含まれている場合

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― PBDOM_ATTRIBUTE配列項目のいずれかに名前が付いていない場合

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_OWNER ― PBDOM_ATTRIBUTE 配列項目のいずれかが、 すでにオーナー PBDOM_ELEMENT オブジェク ト を持っている場合

例 次の例では、 PBDOM_ATTRIBUTE オブジェ ク ト の配列を使って、PBDOM_ELEMENT オブジェ ク ト の属性を設定します。 次の XML に基づいて、 PBDOM_DOCUMENT を作成します。

<root xmlns:pre1="http://www.pre.com"><child1 pre1:a="123"/>

</root>

a、 b、 および c とい う名前を持つ PBDOM_ATTRIBUTE オブジェク トの配列を作成し、 これらのオブジェク トの名前空間の接頭辞と URI をpre1 と http://www.pre.com に設定します。 SetAttributes を呼び出して、 この配列の PBDOM_ATTRIBUTE を使って child1 の属性を設定します。PBDOM_DOCUMENT を保存して XML 文書に変換する と、 XML は次のよ うにな り ます。

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

pbdom_attribute_array PBDOM_ATTRIBUTE オブジェク トの配列を指定

272 PowerBuilder

Page 289: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

<root xmlns:pre1="http://www.pre.com"><child1 pre1:a="456" pre1:b="456" pre1:c="456" />

</root>

child1 には元々 pre1:a 属性が含まれており、 PBDOM_ATTRIBUTE 配列にも、a という名前を持ち、名前空間の URI http://www.pre.com 内にある項目が含まれていましたが、 例外は送出されません。 元の pre1:a 属性が、 a とい う名前を持ち、 名前空間の URI http://www.pre.com 内にあるPBDOM_ATTRIBUTE 配列項目に置き換えられます。

PBDOM_BUILDER pbdom_buildrPBDOM_DOCUMENT pbdom_docPBDOM_ATTRIBUTE pbdom_attr_array[]string Name[]long l = 0string strXML = "<root xmlns:pre1=~"http://www.pre.com~"><child1 pre1:a=~"123~"/></root>"

trypbdom_buildr = Create PBDOM_BUILDERpbdom_doc = pbdom_buildr.BuildFromString (strXML)

Name[1] = "a"Name[2] = "b"Name[3] = "c"

for l = 1 to 3pbdom_attr_array[l] = Create PBDOM_ATTRIBUTEpbdom_attr_array[l].SetName (Name[l])pbdom_attr_array[l].SetNamespace ("pre1", &

"http://www.pre.com", false)pbdom_attr_array[l].SetText("456")

next

pbdom_doc.GetRootElement().GetChildElement &("child1").SetAttributes(pbdom_attr_array)

pbdom_doc.SaveDocument ("set_attributes.xml")

catch (PBDOM_EXCEPTION except)MessageBox ("PBDOM_EXCEPTION", except.GetMessage())

end try

PowerBuilder エクステンシ ョ ン リファレンス 273

Page 290: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

解説 こ のメ ソ ッ ド は、 現行の PBDOM_ELEMENT オブジェク ト で表さ れるDOM 要素の属性を設定します。指定する配列には、PBDOM_ATTRIBUTEオブジェク ト だけを含めるよう にしてく ださい。

指定した配列のすべてのオブジェク トが正当なもので、 新しい属性が追加される前である場合には、 すべての古い属性はその親の存在が null (親がいない) に設定されて、 古い属性リ ス トが現行の PBDOM_ELEMENT オブジェク トから消去されます。 これによ り、GetAttributes を呼び出してすでに取得したすべてのアク ティ ブな属性リ ス ト も、 古い属性に対して新たな状態を反映するよ うに変更されます。 また、 指定された配列内のすべての PBDOM_ATTRIBUTE も、 その親の存在が現行の PBDOM_ELEMENT オブジェク ト に設定されます。

空の配列を渡すと、 現行の PBDOM_ELEMENT オブジェク トの既存の属性が消去されます。

PBDOM_ATTRIBUTE 配列に、 同じ名前と名前空間の URI を持つ複数の PBDOM_ATTRIBUTE が含まれている場合は、 このメ ソ ッ ドは失敗し、 例外が送出されます。

現行の PBDOM_ELEMENT オブジェク ト に、 名前と 名前空間の URI がPBDOM_ATTRIBUTE 配列項目のいずれかと 一致する属性が含まれている場合には、例外は送出されません。現行の PBDOM_ELEMENT オブジェク ト に存在するすべての属性が削除されるため、 名前と 名前空間の URIに関しては、 既存の属性のどれが配列のどの PBDOM_ATTRIBUTE 項目と 一致しているかは関係あり ません。

例外が送出された場合、 PBDOM_ELEMENT オブジェク トの元の属性はそのまま変わらず、 指定された配列の PBDOM_ATTRIBUTE は変更されません。

PBDOM_ATTRIBUTE が元の属性を表すよ うに作成されていた場合にはそのまま有効ですが、 PBDOM_ATTRIBUTE が表す属性は元のオーナー要素から切り離されています。 この PBDOM_ATTRIBUTE に対して GetOwnerElementObject を呼び出すと、 null 値が返されます。

関連項目 GetAttributeGetAttributesGetAttributeValueHasAttributesSetAttribute

274 PowerBuilder

Page 291: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

SetContent機能 PBDOM_ELEMENT オブジェク ト に対して正当な PBDOM_OBJECT オブ

ジェク ト が含まれた配列を使って、 PBDOM_ELEMENT オブジェク ト の内容を設定します。SetContent メ ソ ッ ド を呼び出すと 、PBDOM_ELEMENTオブジェク ト に存在する子が削除されます。

入力された配列参照が null の場合は、 PBDOM_ELEMENT オブジェクトの内容がすべて削除されます。 配列に不正なオブジェク トが含まれている場合は、 例外が送出され、 内容は変更されません。

構文 pbdom_element_name.SetContent(pbdom_object pbdom_object_array[])

戻り値 PBDOM_OBJECT。 修正されて、 PBDOM_OBJECT オブジェ ク ト と して返された PBDOM_ELEMENT オブジェク トです。

Throws EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 入力された PBDOM_OBJECT 配列項目にユーザ定義名が付いていない場合

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_OBJECT 配列項目が、 派生した PBDOM_OBJECTに関連付けられていない場合

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 入力されたPBDOM_OBJECT 配列項目にすでに親 PBDOM_OBJECT がある場合

EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT ― 不適切なPBDOM_OBJECT 配列項目が検出された場合。 PBDOM_OBJECT 配列項目が PBDOM_ELEMENT オブジェク トの子と して追加するこ とが許されない (たとえば、 PDBOM_DOCUMENT である) 場合に、 この例外が送出される

EXCEPTION_HIERARCHY_ERROR ― PBDOM_OBJECT 配列項目のいずれかが、 現行の PBDOM_ELEMENT オブジェク トの内容の一部と して設定されている と きに、 現行の PBDOM_ELEMENT オブジェク トが整形式でなくなった場合

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

pbdom_object_array PBDOM_ELEMENT オブジェク トの内容を構成するPBDOM_OBJECT の配列を指定

PowerBuilder エクステンシ ョ ン リファレンス 275

Page 292: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

例 次の XML に対して、 SetContent メ ソ ッ ドを呼び出します。

<Telephone_Book><Entry>

<Particulars><Name>John Doe</Name><Age>21</Age><Phone_Number>1234567</Phone_Number>

</Particulars></Entry>

</Telephone_Book>

次のスク リプ トから SetContent メ ソ ッ ドを呼び出します。

PBDOM_OBJECT pbdom_obj_array[]

pbdom_obj_array[1] = entry_1pbdom_obj_array[2] = entry_2

pbdom_doc.GetRootElement().SetContent(pbdom_obj_array)

entry_1 PBDOM_ELEMENT オブジェク トには、次の内容が含まれます。

<Entry><Particulars>

<Name>James Gomez</Name><Age>25</Age><Phone_Number>1111111</Phone_Number>

</Particulars></Entry>

entry_2 PBDOM_ELEMENT オブジェク トには、次の内容が含まれます。

<Entry><Particulars>

<Name>Mary Jones</Name><Age>22</Age><Phone_Number>2222222</Phone_Number>

</Particulars></Entry>

SetContent メ ソ ッ ドは、 次の内容を返します。

<Telephone_Book><Entry>

<Particulars><Name>James Gomez</Name><Age>25</Age><Phone_Number>1111111</Phone_Number>

</Particulars>

276 PowerBuilder

Page 293: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

</Entry><Entry>

<Particulars><Name>Mary Jones</Name><Age>22</Age><Phone_Number>2222222</Phone_Number>

</Particulars></Entry>

</Telephone_Book>

解説 PBDOM_ELEMENT オブジェク トに追加できるのは、 次の種類の PBDOM_OBJECT だけです。

• PBDOM_ELEMENT

• PBDOM_CDATA

• PBDOM_COMMENT

• PBDOM_ENTITYREFERENCE

• PBDOM_PROCESSINGINSTRUCTION

• PBDOM_TEXT

関連項目 AddContent 構文 1AddContent 構文 2GetContentInsertContentRemoveContent

PowerBuilder エクステンシ ョ ン リファレンス 277

Page 294: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

SetDocument機能 PBDOM_DOCUMENT を PBDOM_ELEMENT オブジェク トの親と して

設定し、 PBDOM_ELEMENT オブジェク ト をルート要素にします。

構文 pbdom_element_name.SetDocument(pbdom_document pbdom_document_ref)

戻り値 PBDOM_ELEMENT。 修正された PBDOM_ELEMENT オブジェク ト です。

解説 参照される PBDOM_OBJECT は PBDOM_DOCUMENT オブジェク ト でなければなり ません。 PBDOM_ELEMENT オブジェク トには、 親オブジェク トが存在していてはなり ません。 ターゲッ トの PBDOM_DOCUMENT にすでにルート要素が存在している場合は、 そのルート要素は新しい PBDOM_ELEMENT オブジェク トに置き換えられます。

SetName機能 PBDOM_ELEMENT オブジェク トのローカル名を設定します。 この名

前は、 要素のタグ名のローカル部分を参照します。

構文 pbdom_element_name.SetName(string strName)

戻り値 Boolean 型。PBDOM_ELEMENT オブジェク トのローカル名が変更された場合は true を返し、 それ以外の場合は false を返します。

例 次の XML の abc 要素に対して、 SetName メ ソ ッ ドを呼び出します。

<abc>My Data</abc>

次のスク リ プト で SetName メ ソッ ド を呼び出します。PBDOM_ELEMENTオブジェク ト elem が abc 要素を表します。

elem.SetName("def")

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

pbdom_document_ref 現行の PBDOM_ELEMENT オブジェク トのオーナー文書および親と して設定する PBDOM_DOCUMENT を指定

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strName PBDOM_ELEMENT オブジェク トの新しいローカル名を指定

278 PowerBuilder

Page 295: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

XML は次のよ うにな り ます。

<def>My Data</def>

elem オブジェク トは同じ要素を表しているので、 SetName メ ソ ッ ドを呼び出すと、 def 要素が変更されます。

関連項目 GetName

SetNamespace機能 PBDOM_ELEMENT オブジェク トの名前空間を設定します。 指定され

た名前空間の接頭辞と URI が空の文字列の場合は、SetNamespace は名前空間を PBDOM_ELEMENT オブジェク トに割り当てません。

構文 pbdom_element_name.SetNamespace(string strNamespacePrefix, string strNamespaceUri, boolean bVerifyNamespace)

戻り値 Long 型。正常に終了した場合は 0 を返し、入力された接頭辞と URI に一致するスコープ内名前空間の宣言が存在しない場合は -1 を返します。

Throws EXCEPTION_INVALID_ARGUMENT ― いずれかの入力引数が無効 (たとえば、 null) である場合

EXCEPTION_INVALID_NAME ― 入力された名前空間の接頭辞または URIが無効である場合

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リの割り当てに失敗した場合

EXCEPTION_INTERNAL_XML_ENGINE_ERROR ― このメ ソ ッ ドの実行中に、 内部 XML エンジンでエラーが発生した場合

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strNamespacePrefix PBDOM_ELEMENT オブジェク トに対して設定する名前空間の接頭辞を指定

strNamespaceUri PBDOM_ELEMENT オブジェク トに対して設定する名前空間の URI を指定

bVerifyNamespace 指定された名前空間の接頭辞と URI が、 現行のPBDOM_ELEMENT オブジェク ト内、 または先祖のPBDOM_ELEMENT オブジェク トのどちらかで宣言されているかを確認する必要があるかど うかを示すboolean 型の値を指定

PowerBuilder エクステンシ ョ ン リファレンス 279

Page 296: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

解説 bVerifyNamespace を true に設定し、 名前空間の接頭辞と URI を宣言していなかった場合は、 SetNamespace は -1 の値を返して失敗します。

bVerifyNamespace を false に設定する と、 SetNamespace は、PBDOM_ELEMENT オブジェク トの名前空間を指定した接頭辞と URI に設定します。 PBDOM ユーザは、 文書を保存して XML 文書に変換する前に、 そのよ うな名前空間が宣言されて、 現行の PBDOM_ELEMENT オブジェク トのスコープ内にあるこ とを確認する必要があ り ます。

関連項目 AddNamespaceDeclarationGetNamespacePrefixGetNamespaceUriGetQualifiedNameRemoveNamespaceDeclaration

SetParentObject機能 参照される PBDOM_OBJECT を、 メ ソ ッ ドが呼び出された

PBDOM_ELEMENT オブジェク トの親と して設定します。

構文 pbdom_element_name.SetParentObject(pbdom_object pbdom_object_ref)

戻り値 PBDOM_OBJECT。 修正されて、 PBDOM_OBJECT オブジェ ク ト と して返された PBDOM_ELEMENT オブジェク トです。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_OBJECT が、派生した PBDOM_OBJECT に関連付けられていない場合

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 入力された挿入する PBDOM_OBJECT にすでに親が存在する場合

EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT ― 入力されたPBDOM_OBJECT を PBDOM_ELEMENT オブジェク トの親と して設定できない場合

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 入力さ れた PBDOM_OBJECT に名前を付けるこ と ができるが、 名前が付いていない場合

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

pbdom_object_ref 現行の PBDOM_ELEMENT オブジェ ク ト の親と して設定する PBDOM_OBJECT を指定

280 PowerBuilder

Page 297: · PDF file(PBDOM : PowerBuilder Document Object Model

第 13 章 PBDOM_ELEMENT クラス

解説 参照さ れる PBDOM_OBJECT のク ラ スが PBDOM_DOCUMENT の場合は、 SetParentObject メ ソ ッ ド の動作は SetDocument メ ソ ッ ド の動作と 同じです。 参照される PBDOM_OBJECT のクラスが PBDOM_ELEMENT の場合は、SetParentObject は、参照されるオブジェク ト をメ ソ ッ ド が呼び出された PBDOM_ELEMENT オブジェク ト の親と して設定します。 参照される PBDOM_OBJECT がそのほかのク ラスのオブジェク ト である場合は、例外が送出されます。

関連項目 GetOwnerDocumentObjectGetParentObject

SetText機能 指定したテキス ト を、 PBDOM_ELEMENT オブジェク トの内容と して

設定します。

構文 pbdom_element_name.SetText(string strText)

戻り値 PBDOM_OBJECT。 修正されて、 PBDOM_OBJECT オブジェ ク ト と して返された PBDOM_ELEMENT オブジェク トです。

解説 既存のテキス ト内容とテキス ト以外の内容は、 strText で指定したテキス トに置き換えられます。 strText に null 値を指定した場合は、 空の文字列値と同じにな り ます。 PBDOM_ELEMENT オブジェク トにテキスト内容と入れ子になった要素の両方を設定する と きは、 SetText ではなく SetContent メ ソ ッ ドを使います。

関連項目 GetTextGetTextNormalizeGetTextTrim

引数 説明

pbdom_element_name PBDOM_ELEMENT オブジェク トの名前を指定

strText PBDOM_ELEMENT オブジェク トの内容と して設定する文字列を指定

PowerBuilder エクステンシ ョ ン リファレンス 281

Page 298: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_ELEMENT

282 PowerBuilder

Page 299: · PDF file(PBDOM : PowerBuilder Document Object Model

第 1 4 章 PBDOM_EXCEPTION クラス

この章について この章では、 PBDOM の例外コードを掲載する と と もに、PBDOM_EXCEPTION ク ラスについて説明します。

内容

PBDOM 例外PBDOM は、 標準の PowerBuilder Exception ク ラスから派生した例外ク ラスを定義します。 このク ラスは Exception ク ラスを拡張したもので、 送出される例外を識別する一意のコードを返す GetExceptionCode メ ソ ッ ドを持っています。

次の表に、 PBDOM 例外とそのコード値を示します。 それぞれの例外が送出される状況については、 表の後で説明します。

項目 ページ

PBDOM 例外 283PBDOM_EXCEPTION 290

PowerBuilder エクステンシ ョ ン リファレンス 283

Page 300: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM 例外

表 14-1: PBDOM 例外とそのコード値

PBDOM 例外の説明

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECTコード値 : 1

この例外は、 たとえばメ ソ ッ ドの呼び出しやパラ メータ と しての使用時など、 命名可能な PBDOM_OBJECT をユーザ定義名を指定せずに使用した場合に送出されます。

例外 値

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT 1EXCEPTION_WRONG_DOCUMENT_ERROR 2EXCEPTION_MULTIPLE_ROOT_ELEMENT 3EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT 4EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE 5EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT 6EXCEPTION_MULTIPLE_DOCTYPE 7EXCEPTION_ILLEGAL_PBOBJECT 8EXCEPTION_WRONG_PARENT_ERROR 9EXCEPTION_INVALID_ARGUMENT 10EXCEPTION_INVALID_NAME 11EXCEPTION_DATA_CONVERSION 12EXCEPTION_MEMORY_ALLOCATION_FAILURE 13EXCEPTION_INTERNAL_XML_ENGINE_ERROR 14EXCEPTION_MULTIPLE_XMLDECL 15EXCEPTION_INVALID_STRING 16EXCEPTION_INVALID_OPERATION 17EXCEPTION_HIERARCHY_ERROR 18EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_OWNER 19EXCEPTION_PBDOM_NOT_INITIALIZED 20

284 PowerBuilder

Page 301: · PDF file(PBDOM : PowerBuilder Document Object Model

第 14 章 PBDOM_EXCEPTION クラス

EXCEPTION_WRONG_DOCUMENT_ERRORコード値 : 2

この例外は、 PBDOM 操作時に、 間違った PBDOM_DOCUMENT オブジェク ト を使用した場合に送出されます。

た と えば、 RemoveContent メ ソ ッ ド を呼び出した と きに、 削除するPBDOM_OBJECT が、RemoveContent メ ソ ッ ドが呼び出されたアクティブな PBDOM_DOCUMENT と同じ文書内にない場合に、 この例外が送出されます。

EXCEPTION_MULTIPLE_ROOT_ELEMENTコード値 : 3

この例外は、 PBDOM メ ソ ッ ド呼び出しによ り PBDOM_DOCUMENTに複数のルート要素が含まれた場合に送出されます。

たとえば、 AddContent メ ソ ッ ド を呼び出したと きに、 追加するために入力した PBDOM_OBJECT が PBDOM_ELEMENT であ り、 かつアクティブな PDBOM_DOCUMENT にすでにルート要素が含まれている場合に、 この例外が送出されます。

EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECTコード値 : 4

この例外は、 PBDOM_OBJECT を不適切な方法で使用した場合に送出されます。 代表的な例と しては、 PBDOM メ ソ ッ ド呼び出しによ り、PBDOM_DOCUMENT の整形に関して違反がある と発生します。

たとえば、 PBDOM_DOCUMENT オブジェク トに対して AddContent メソ ッ ド を呼び出し た と きに追加でき るのは、 PBDOM_ELEMENT、PBDOM_COMMENT、 PBDOM_PROCESSINGINSTRUCTION、 およびPBDOM_DOCTYPE の各ク ラスの PBDOM_OBJECT だけです。 それ以外のク ラスの PBDOM_OBJECT を追加する と、 この例外が送出されます。

PowerBuilder エクステンシ ョ ン リファレンス 285

Page 302: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM 例外

EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USEコード値 : 5

この例外は、 メ ソ ッ ドの直接呼び出しまたはパラ メータ と しての使用のいずれかで、 無効な PBDOM_OBJECT を使用している場合に送出されます。

PBDOM_OBJECT が無効である と判断されるケースには、PBDOM_OBJECT が派生し たク ラ ス オブジェク ト と し てではなく 、PBDOM_OBJECT と してインスタンス化される場合があり ます。 また、PBDOM_CHARACTERDATA が PBDOM_CHARACTERDATA オブジェク ト と して直接インスタンス化される場合も これに含まれます。

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENTコード値 : 6

この例外は、 PBDOM_OBJECT を別の PBDOM_OBJECT の子と して設定する と きに、 その子にすでに親 PBDOM_OBJECT がある場合に送出されます。

こ う いったメ ソ ッ ド 呼び出し の例と し ては、 AddContent メ ソ ッ ド と 、PBDOM_OBJECT ク ラスから派生したすべてのク ラスの SetParentObject、SetContent、 InsertContent メ ソ ッ ド があり ます。

EXCEPTION_MULTIPLE_DOCTYPEコード値 : 7

この例外は、 PBDOM メ ソ ッ ド呼び出しによ り PBDOM_DOCUMENTに複数の DOCTYPE が含まれた場合に送出されます。

たとえば、 AddContent メ ソ ッ ド を呼び出したと きに、 追加するために入力した PBDOM_OBJECT が PBDOM_DOCTYPE であ り、 かつアクティブな PDBOM_DOCUMENT にすでに DOCTYPE DOM ノードが含まれている場合に、 この例外が送出されます。

EXCEPTION_ILLEGAL_PBOBJECTコード値 : 8

この例外は、 メ ソッ ド 呼び出しで指定する PBDOM_OBJECT の配列に無効な配列項目が含まれている場合に送出されます。 PBDOM_OBJECT の配列項目が無効であると 判断されるのは、 項目が特に null に設定されている場合や、 正しく 初期化されていない場合です。

286 PowerBuilder

Page 303: · PDF file(PBDOM : PowerBuilder Document Object Model

第 14 章 PBDOM_EXCEPTION クラス

EXCEPTION_WRONG_PARENT_ERRORコード値 : 9

この例外は、PBDOM 操作時に、親子関係が不適切である というエラーが発生した場合に送出されます。

この例外が送出される可能性のあるメ ソ ッ ド 呼び出しには、 InsertContentと RemoveContent があり ます。これらのメ ソッ ド では、メ ソッ ド を適用する PBDOM_OBJECT の子と みなされる PBDOM_OBJECT パラメ ータを 1つ以上指定します。 このパラメ ータが現行の PBDOM_OBJECT の子でない場合に、 この例外が送出されます。

EXCEPTION_INVALID_ARGUMENTコード値 : 10

この例外は、 メ ソ ッ ドに入力した PBDOM_OBJECT パラ メータが無効である場合に送出されます。 PBDOM_OBJECT パラ メータが正し く初期化されていない場合や、null オブジェク ト参照である場合に、無効となるこ とがあ り ます。

この例外は、 メ ソ ッ ドに入力した文字列パラ メータが無効な場合にも送出されるこ とがあ り ます。 PowerScript SetNull 関数を使って、 文字列を null に設定していた場合に、 無効となるこ とがあ り ます。

EXCEPTION_INVALID_NAMEコード値 : 11

この例外は、パラ メータ と して指定した名前が、 XML の名前、名前空間の接頭辞、 または名前空間の URI に関する W3C 仕様に準拠していない場合に送出されます。

この例外が送出される可能性のある メ ソ ッ ドには、 SetName、SetNamespace、 および SetNamespace メ ソ ッ ドがあ り ます。

EXCEPTION_DATA_CONVERSIONコード値 : 12

この例外は、 データ変換処理を実行しよ う と して、 変換に失敗した場合に送出されます。 この例外が送出されるのは、 PBDOM_ATTRIBUTEの GetDateValue メ ソ ッ ドなど、 PBDOM_ATTRIBUTE オブジェ ク ト のGet メ ソ ッ ドを実行した場合だけです。

PowerBuilder エクステンシ ョ ン リファレンス 287

Page 304: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM 例外

EXCEPTION_MEMORY_ALLOCATION_FAILUREコード値 : 13

この例外は、 メ ソ ッ ドの実行中にメモ リ不足が発生した場合に送出されます。 PBDOM では、 文字列や構造体などを格納する メモ リ を内部的に割り当て、 解放、 および再割り当てします。 各メモ リ割り当てに失敗する可能性がある場合と、 失敗した場合に、 この例外が送出されます。

EXCEPTION_INTERNAL_XML_ENGINE_ERRORコード値 : 14

この例外は、PBDOM で使用される XML エンジンを含む内部エラーが発生した場合に送出されます。現在 PBDOM では、XML 文書の処理用と、 DOM ツ リ ーの構築および維持用の基本デバイ ス と して XercesXML パーサを使用しています。

低レベルの XML パーサ エンジンでは問題となる可能性があ り、 問題が発生した場合には、 この例外がまれに送出されます。

EXCEPTION_MULTIPLE_XMLDECLコード値 : 15

この例外は、 PBDOM メ ソ ッ ド呼び出しによ り PBDOM_DOCUMENTに複数の XML 宣言が含まれた場合に送出されます。

たとえば、 PBDOM_DOCUMENT オブジェク トに対して SetContent メソ ッ ド を呼び出した と きに、 入力された PBDOM_OBJECT 配列に、XML 宣言と して作成された PBDOM_PROCESSINGINSTRUCTION が複数含まれている場合に、 この例外が送出されます。

EXCEPTION_INVALID_STRINGコード値 : 16

この例外は、 テキス ト または属性値を設定する メ ソ ッ ドのパラ メータと して文字列を指定し、許容できる XML 文字に関する W3C 仕様に準拠していない文字が、その文字列に含まれている場合に送出されます。

この例外が送出される可能性のあるメ ソッ ド には、PBDOM_ATTRIBUTEク ラスの SetText メ ソ ッ ド と 、 PBDOM_ELEMENT クラスの SetAttribute メソ ッ ド があり ます。

288 PowerBuilder

Page 305: · PDF file(PBDOM : PowerBuilder Document Object Model

第 14 章 PBDOM_EXCEPTION クラス

EXCEPTION_INVALID_OPERATIONコード値 : 17

この例外は、 メ ソ ッ ド呼び出しによって、 現在実行されている PowerBuilder アプリ ケーショ ンに重大かつ予期しない問題が発生する可能性がある場合に送出されます。

EXCEPTION_HIERARCHY_ERRORコード値 : 18

この例外は、 メ ソ ッ ド呼び出しが、 PBDOM_DOCUMENT の整形や有効性に違反している場合に送出されます。

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_OWNERコード値 : 19

この例外は、 指定した PBDOM_ATTRIBUTE にすでにオーナー PBDOM_ELEMENT が設定されているにもかかわらず、PBDOM_ATTRIBUTE のオーナーと して PBDOM_ELEMENT を設定した場合に送出されます。

EXCEPTION_PBDOM_NOT_INITIALIZEDコード値 : 20

この例外は、 PBDOM エンジンが初期化に失敗した場合や、 初期化が早すぎた場合にまれに送出されます。 このよ う な場合、 例外を送出するこ とによって、 ク ラ ッシュを防止しています。

PowerBuilder エクステンシ ョ ン リファレンス 289

Page 306: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_EXCEPTION

PBDOM_EXCEPTION機能 PBDOM_EXCEPTION ク ラスは、 PowerBuilder Exception ク ラスから派

生しています。

メ ソ ッ ド このク ラスは Exception ク ラスを拡張したものであ り、送出される例外を識別する一意のコードを返すメ ソ ッ ドが 1 つあ り ます。

GetExceptionCode

GetExceptionCode機能 送出された例外のコードを返します。

構文 pbdom_exception.GetExceptionCode()

戻り値 Long 型。 送出される例外に関連付けられたコード値です。

例 次の例では、 パラメ ータ xmlns:nuskin を指定して、 PBDOM_DOCUMENTのルート 要素に対して PBDOM_ELEMENT の GetAttribute メ ソ ッ ド の呼び出しを試みますが、 名前が有効な NCName (コロンなしの名前) でないために、 例外が送出されます。 名前空間に属する属性を取得する正しい方法は、 PBDOM_ELEMENT の GetAttribute メ ソ ッ ド の名前空間を使用する方法です。

EXCEPTION_INVALID_NAME (コード値 11) 例外が送出されて、 メ ッセージ ボッ クスに表示されます。

PBDOM_DOCUMENT pbdom_doc1PBDOM_DOCUMENT pbdom_get_docPBDOM_ELEMENT pbdom_elem_rootPBDOM_ATTRIBUTE pbdom_attrPBDOM_OBJECT pbdom_obj

trypbdom_doc1 = Create PBDOM_DOCUMENT

pbdom_doc1.NewDocument("nuskin", &"http://www.nuskin.com", "nuskin:root", "", "")

pbdom_elem_root = pbdom_doc1.GetRootElement()pbdom_attr = &pbdom_elem_root.GetAttribute("xmlns:nuskin")

引数 説明

pbdom_exception PBDOM_EXCEPTION オブジェ ク ト の名前を指定

290 PowerBuilder

Page 307: · PDF file(PBDOM : PowerBuilder Document Object Model

第 14 章 PBDOM_EXCEPTION クラス

catch (PBDOM_EXCEPTION pbdom_except)

MessageBox (" 例外 ", " コード : " & + string(pbdom_except.GetExceptionCode()) &+ "~r~nText : " + pbdom_except.Text)

end try

解説 例外コードの リ ス トについては、 283 ページの 「PBDOM 例外」 を参照して ください。 それぞれの例外が発生する可能性のある場合については、 284 ページの 「PBDOM 例外の説明」 を参照して ください。

関連項目 GetAttribute 構文 2 (PBDOM_ELEMENT)『PowerScript リ ファレンス』マニュアルの「GetMessage」 と 「SetMessage」

PowerBuilder エクステンシ ョ ン リファレンス 291

Page 308: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_EXCEPTION

292 PowerBuilder

Page 309: · PDF file(PBDOM : PowerBuilder Document Object Model

第 1 5 章 PBDOM_OBJECT クラス

この章について この章では、 PBDOM_OBJECT ク ラスについて説明します。

PBDOM_OBJECT機能 PBDOM_OBJECT ク ラスは、 すべての PBDOM ク ラスの基本ク ラ

スです。 このク ラスには、 派生ク ラスで必要となる基本メ ソ ッ ドがすべて含まれています。 PBDOM_OBJECT の派生ク ラスは個々に PBDOM_OBJECT ク ラスの基本メ ソ ッ ド を継承する と と もに、さ らに独自の専用メ ソ ッ ド も持っています。

メ ソ ッ ド PBDOM_OBJECT には次のメ ソ ッ ドがあ り ます。

AddContentCloneDetachEqualsGetContentGetOwnerDocumentObjectGetNameGetObjectClassGetObjectClassStringGetParentObjectGetTextGetTextNormalizeGetTextTrimHasChildrenInsertContentIsAncestorObjectOfRemoveContentSetContentSetNameSetParentObject

PowerBuilder エクステンシ ョ ン リファレンス 293

Page 310: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_OBJECT

AddContent機能 新しい PBDOM_OBJECT を現行の PBDOM_OBJECT に追加します。

構文 pbdom_object_name.AddContent(pbdom_object pbdom_object_ref)

戻り値 PBDOM_OBJECT

修正された新しい PBDOM_OBJECT です。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トや入力された PBDOM_OBJECTが、派生した PBDOM_OBJECT ク ラス オブジェク トに関連付けられていない場合

EXCEPTION_INVALID_ARGUMENT ― 入力された引数が無効である場合

解説 新しい PBDOM_OBJECT を現行の PBDOM_OBJECT オブジェ ク ト に追加する と、新しい PBDOM_OBJECT は現行の PBDOM_OBJECT オブジェク トの子ノードにな り ます。

関連項目 GetContentInsertContentRemoveContentSetContent

Clone機能 現行の PBDOM_OBJECT の一般的な複製を作成します。

構文 pbdom_object_name.Clone(boolean bDeep)

戻り値 PBDOM_OBJECT。 この戻り値は PBDOM_OBJECT のクローンです。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トが、 派生した PBDOM_OBJECTク ラス オブジェク トに関連付けられていない場合

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

pbdom_object_ref 追加する PBDOM_OBJECT を指定

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定 bDeep 詳細クローンを返すか、 簡易ク ローンを返すかを指定

する Boolean 型の値を指定。指定する値は、詳細クローンの場合は true、 簡易クローンの場合は false

294 PowerBuilder

Page 311: · PDF file(PBDOM : PowerBuilder Document Object Model

第 15 章 PBDOM_OBJECT クラス

解説 Clone メ ソ ッ ドは、 現行の PBDOM_OBJECT の一般的な複製を作成します。 bDeep パラ メータが true の場合は詳細クローンが返され、 それ以外の場合は簡易クローンが返されます。

PBDOM_OBJECT のクローンには親はあ り ませんが、 元の PBDOM_OBJECT と同じ PBDOM_DOCUMENT に格納されます。元の PBDOM_OBJECT がスタンドアロンのと きは、 ク ローンもスタンドアロンです。

通常 bDeep が true の場合、Clone メ ソ ッ ドは、PBDOM_OBJECT とその下位サブツ リーすべてのクローンを作成します。bDeep が false の場合、Clone メ ソ ッ ドは、可能な限り多くの情報を含めた PBDOM_OBJECT のみのクローンを作成します。

クローン作成はクラス固有である

ク ローンの作成は、 すべての PBDOM_OBJECT ク ラスで同じ動作ではあ り ません。 ク ラス固有のク ローン作成についての詳細は、 各ク ラスの説明を参照して ください。

Detach機能 PBDOM_OBJECT をその親から切り離します。

構文 pbdom_object_name.Detach()

戻り値 PBDOM_OBJECT

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トが、 派生した PBDOM_OBJECTク ラス オブジェク トに関連付けられていない場合

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 295

Page 312: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_OBJECT

例 次の例では、pbdom_doc とい う PBDOM_DOCUMENT のルート要素を、その親オブジェク ト 、 つま り PBDOM_DOCUMENT 自体から切り離します。次に、親 PBDOM_OBJECT を取得し、 IsValid メ ソ ッ ドを使って、その親 PBDOM_OBJECT が null であるかど うかを調べます。

pbdom_obj = pbdom_doc.GetRootElement()pbdom_obj.Detach()pbdom_parent_obj = pbdom_obj.GetParentObject()if (not IsValid(pbdom_parent_obj)) then

MessageBox ("不正 ", "ルート要素に親がありません。 ")end if

解説 PBDOM_OBJECT に親がない場合は、 このメ ソ ッ ドは何も実行しません。

Equals機能 参照される PBDOM_OBJECT が同じであるかど うかを調べます。

構文 pbdom_object_name.Equals(pbdom_object pbdom_object_ref)

戻り値 Boolean 型。現行の PBDOM_OBJECT が入力された PBDOM_OBJECT と 同じである場合は true を返し、 それ以外の場合は false を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トや入力された PBDOM_OBJECTが、派生した PBDOM_OBJECT ク ラス オブジェク トに関連付けられていない場合

EXCEPTION_INVALID_ARGUMENT ― 入力された PBDOM_OBJECT が無効である場合。PBDOM_OBJECT が正し く初期化されていないか、 nullオブジェク ト参照である場合に、 無効となる

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

pbdom_object_ref 現行の PBDOM_OBJECT と同じであるかど うかを調べる PBDOM_OBJECT を指定

296 PowerBuilder

Page 313: · PDF file(PBDOM : PowerBuilder Document Object Model

第 15 章 PBDOM_OBJECT クラス

GetContent機能 PBDOM_OBJECT オブジェク トの配列を取得します。 この配列の各項

目は、 呼び出された PBDOM_OBJECT の子ノードです。

構文 pbdom_object_name.GetContent(ref pbdom_object pbdom_object_array[ ])

戻り値 Boolean 型。正常に終了した場合は true を返し、それ以外の場合は falseを返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トが、 派生した PBDOM_OBJECTク ラス オブジェク トに関連付けられていない場合

解説 返された配列は、 PBDOM_OBJECT に表示される と き と同じ配列項目の順序で、 参照渡し されます。 配列項目に変更を加える と、 配列が参照する実際の項目にも影響を与えます。

関連項目 AddContentInsertContentRemoveContentSetContent

GetName機能 現行の PBDOM_OBJECT の名前を取得し ます。 返される文字列は、

PBDOM_OBJECT 内に格納されている DOM オブジェ ク ト の種類によって決ま り ます。

構文 pbdom_object_name.GetName()

戻り値 次の表に、 PBDOM_OBJECT 内に格納されている DOM オブジェ ク トの種類ごとの戻り値を示します。

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

pbdom_object_array PBDOM_OBJECT オブジェク ト を受け取る、PBDOM_OBJECT オブジェク トの配列への参照を指定

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

DOM オブジェク トの種類 戻り値

PBDOM_DOCTYPE 「#document」

PowerBuilder エクステンシ ョ ン リファレンス 297

Page 314: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_OBJECT

PBDOM_ELEMENT 名前空間の接頭辞を持たない要素のローカル タグ名を返します。

たとえば、 要素が <abc>Value</abc> である場合には、 GetName から返される文字列は 「abc」 にな り ます。

また、 要素のタグ名に名前空間の接頭辞が含まれていても、 その接頭辞は返される文字列には含まれません。

たとえば、 要素が、 <MyMusic:CD xmlns:MyMusic=

"http://www.MyMusicDiscs.com"/> である場合、 GetName から返される文字列は「CD」 です。

PBDOM_ATTRIBUTE 名前空間が付いていない属性自体のローカル名を返します。

たとえば、 属性を持つ要素が <abc ATTRIBUTE_1="My Attribute"> である場合、 GetName は 「ATTRIBUTE_1」 を返します。

属性の名前に名前空間の接頭辞が含まれていても、 その接頭辞は返される文字列には含まれません。

たとえば、 属性を持つ要素が、<MyMusic:CD xmlns:MyMusic="http://www.MyMusicDiscs.com"

MyMusic:Type="Jazz"/> である場合、GetName は文字列 「Type」 を返します。

PBDOM_CDATA #cdata-sectionPBDOM_COMMENT #commentPBDOM_DOCTYPE DOCTYPE オブジェク ト自体に指定されてい

る名前を返します。

たとえば、 DOCTYPE 宣言が <!DOCTYPE d_grid_object > である場合、 GetName は「d_grid_object」 を返します。

PBDOM_PROCESSINGINSTRUCTION

処理命令自体に指定されている名前を返します。

たとえば、 処理命令の定義が <?works document="hello.doc"

data="hello.wks" ?> である場合、GetName は 「works」 を返します。

PBDOM_TEXT #text

DOM オブジェク トの種類 戻り値

298 PowerBuilder

Page 315: · PDF file(PBDOM : PowerBuilder Document Object Model

第 15 章 PBDOM_OBJECT クラス

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT が PBDOM_OBJECT から派生したオブジェク トへの参照でない場合

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リ不足が発生した場合

解説 PBDOM_OBJECT を直接インスタンス化するこ とはできません。

関連項目 SetName

GetObjectClass機能 現行の PBDOM_OBJECT のク ラスを示す Long 型の整数値コードを返

します。

構文 pbdom_object_name.GetObjectClass()

戻り値 Long 型。 現行の PBDOM_OBJECT のク ラスを示すコードを返します。

解説 このメ ソ ッ ドが返す値は次のとおりです。

関連項目 GetObjectClassString

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

クラス Long 型の整数値

UNKNOWN (エラーを示す) 0PBDOM_OBJECT (基本ク ラス) 1PBDOM_DOCUMENT 2PBDOM_ELEMENT 3PBDOM_DOCTYPE 4PBDOM_ATTRIBUTE 5PBDOM_CHARACTERDATA 6PBDOM_TEXT 7PBDOM_CDATA 8PBDOM_COMMENT 9PBDOM_PROCESSINGINSTRUCTION 10PBDOM_ENTITYREFERENCE 11

PowerBuilder エクステンシ ョ ン リファレンス 299

Page 316: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_OBJECT

GetObjectClassString機能 PBDOM_OBJECT のク ラスを文字列で返します。

構文 pbdom_object_name.GetObjectClassString()

戻り値 String 型。 現行の PBDOM_OBJECT のク ラスを示す文字列を返します。

解説 このメ ソ ッ ドが返す値は次のとおりです。

関連項目 GetObjectClass

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

クラス 返される文字列

PBDOM_OBJECT pbdom_objectPBDOM_DOCUMENT pbdom_documentPBDOM_ELEMENT pbdom_elementPBDOM_ENTITYREFERENCE pbdom_entityreferencePBDOM_DOCTYPE pbdom_doctypePBDOM_ATTRIBUTE pbdom_attributePBDOM_CHARACTERDATA pbdom_characterdataPBDOM_TEXT pbdom_textPBDOM_CDATA pbdom_cdataPBDOM_COMMENT pbdom_commentPBDOM_PROCESSINGINSTRUCTION pbdom_processinginstruction

300 PowerBuilder

Page 317: · PDF file(PBDOM : PowerBuilder Document Object Model

第 15 章 PBDOM_OBJECT クラス

GetOwnerDocumentObject機能 現行の PBDOM_OBJECT を所有している PBDOM_DOCUMENT を返

します。

構文 pbdom_object_name.GetOwnerDocumentObject()

戻り値 PBDOM_DOCUMENT

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トが、 派生した PBDOM_OBJECTク ラス オブジェク トに関連付けられていない場合

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リ不足が発生した場合

解説 PBDOM_OBJECT がどの PBDOM_DOCUMENT からも所有されていない場合、 または現行の PBDOM_OBJECT 自体が PBDOM_DOCUMENTオブジェク トである場合には、 現行の PBDOM_OBJECT を所有している PBDOM_DOCUMENT は null です。

関連項目 GetParentObjectSetParentObject

GetParentObject機能 現行の PBDOM_OBJECT の親 PBDOM_OBJECT を返します。

構文 pbdom_object_name.GetParentObject()

戻り値 PBDOM_OBJECT

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トが、 派生した PBDOM_OBJECTク ラス オブジェク トに関連付けられていない場合

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リ不足が発生した場合

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 301

Page 318: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_OBJECT

例 次の例では、 GetRootElement メ ソ ッ ドを使って、 pbdom_doc という PBDOM_DOCUMENT のルート要素を、 pbdom_obj という PBDOM_OBJECT に返します。 GetParentObject メ ソ ッ ドは、PBDOM_DOCUMENT 自体であるルート要素の親を返し、 それを pbdom_parent_obj に格納します。

GetObjectClassString メ ソ ッ ドは、 pbdom_parent_obj のク ラス名を、 メ ッセージ ボッ クスに表示される文字列と して返します。

pbdom_document pbdom_docpbdom_object pbdom_objpbdom_object pbdom_parent_objstring strClassName

// コードを省略...pbdom_doc = pbdombuilder_new.BuildFromString (strXML)pbdom_obj = pbdom_doc.GetRootElement()pbdom_parent_obj = pbdom_obj.GetParentObject()strClassName = pbdom_parent_obj.GetObjectClassString()

MessageBox ("親クラス名 ", strClassName)

解説 PBDOM_OBJECT に親がない場合は、 null が返されます。

関連項目 GetOwnerDocumentObjectSetParentObject

GetText機能 現行の PBDOM_OBJECT 内に格納されているテキス ト データを取得

します。

構文 pbdom_object_name.GetText()

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

302 PowerBuilder

Page 319: · PDF file(PBDOM : PowerBuilder Document Object Model

第 15 章 PBDOM_OBJECT クラス

戻り値 String 型

次の表に、 PBDOM_OBJECT 内に格納されている DOM オブジェ ク トの種類ごとの戻り値を示します。

DOM オブジェク トの種類 戻り値

PBDOM_ELEMENT PBDOM_ELEMENT 内に格納されているすべての TEXT ノードのテキス ト値を連結した文字列を返します。

PBDOM_ELEMENT 定義が <abc>Root Element Data<data>ABC Data </data> now with

extra info </abc> である場合、 GetText は「Root Element Data now with extra info 」を返します。

余分なスペース

「Data」 と 「now」 の間と 「info」 の後に余分なスペースがあ り ます。 これらのスペースは元からテキス トにあったスペースなので、 そのまま戻り値にも含まれます。

PBDOM_ELEMENT 定義が <abc>Root Element Data</abc> である場合、 GetText は 「Root Element Data」 を返します。

PBDOM_ATTRIBUTE PBDOM_ATTRIBUTE オブジェク ト内に格納されているテキス ト データを返します。

属性を持つ要素が <abc ATTRIBUTE_1="My Attribute"> である場合、 GetText は 「My Attribute」 を返します。

PBDOM_TEXT PBDOM_TEXT オブジェク ト自体に格納されているテキス ト データを返します。

たとえば、 次の要素がある と します。

<abc>MY TEXT</abc>

テキス ト ノード 「MY TEXT 」 を表す PBDOM_TEXT オブジェク トがある と き、PBDOM_TEXT に対して呼び出した GetText は、 文字列 「MY TEXT」 を返します。

PowerBuilder エクステンシ ョ ン リファレンス 303

Page 320: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_OBJECT

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トが、 派生した PBDOM_OBJECTク ラス オブジェク トに関連付けられていない場合

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リ不足が発生した場合

解説 このメ ソ ッ ドは、 PBDOM_OBJECT が、 テキス ト ノード、 CDATA セクシ ョ ン、 または基本テキス ト を格納できる種類のオブジェク トである場合にのみ、 意味のあるデータを返します。 これらの種類には次のものがあ り ます。

• PBDOM_ELEMENT

• PBDOM_ATTRIBUTE

• PBDOM_TEXT

• PBDOM_CDATA

• PBDOM_COMMENT

PBDOM_CDATA CDATA セクシ ョ ン自体に格納されている文字列データを返します。 たとえば、 次の CDATA がある と します。

<![CDATA[ They're saying "x < y" & that "z > y" so I guess that means that z > x ]]>

上記の CDATA セクシ ョ ンを表す PBDOM_CDATA がある と き、 この PBDOM_CDATA に対して呼び出した GetText は次の文字列を返します。

They're saying "x < y" & that "z > y" so I guess that means that z > x

PBDOM_COMMENT COMMENT 自体に格納されている文字列データを返します。 たとえば、 次の COMMENT がある と します。

<!- This is some comment. -->

上記の COMMENT を表す PBDOM_COMMENT がある と き、 この PBDOM_COMMENT に対して呼び出した GetText は次の文字列を返します。

This is some comment.

DOM オブジェク トの種類 戻り値

304 PowerBuilder

Page 321: · PDF file(PBDOM : PowerBuilder Document Object Model

第 15 章 PBDOM_OBJECT クラス

PBDOM_TEXT、PBDOM_CDATA、および PBDOM_COMMENT オブジェク ト は、オブジェク ト 内に元から含まれているテキスト データを GetTextメ ソ ッ ド で返す特殊なケースです。 PBDOM_TEXT オブジェク ト は本来DOM テキスト ノ ード であるため、 子テキスト ノ ード はあり ません。PBDOM_CDATA オブジェク ト は DOM CDATA オブジェク ト を表しているため、子 DOM ノ ード はあり ません。同様に、 PBDOM_COMMENT オブジェク ト にも子ノ ード はあり ません。

関連項目 GetTextNormalizeGetTextTrim

GetTextNormalize機能 現行の PBDOM_OBJECT 内に格納されているテキス ト データを、テキ

ス ト前後の空白文字をすべて削除し、 テキス ト内の空白文字を半角スペース 1 つに正規化して取得します。

構文 pbdom_object_name.GetTextNormalize()

戻り値 String 型。 現行の PBDOM_OBJECT を正規化したテキス ト内容を返します。 テキス ト内容がない場合は、 空の文字列を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トが、 派生した PBDOM_OBJECTク ラス オブジェク トに関連付けられていない場合

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リ不足が発生した場合

解説 このメ ソ ッ ドは、PBDOM_OBJECT が、テキス ト ノードまたは CDATAセクシ ョ ンを格納できる種類である場合、 または基本テキス ト を元から格納している種類のオブジェ ク ト である場合にのみ、 意味のあるデータを返します。 これらの種類には次のものがあ り ます。

• PBDOM_ELEMENT

• PBDOM_ATTRIBUTE

• PBDOM_TEXT

• PBDOM_CDATA

• PBDOM_COMMENT

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 305

Page 322: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_OBJECT

PBDOM_TEXT、PBDOM_CDATA、および PBDOM_COMMENT クラスは、インスタンス内に含まれている本来のテキスト データを GetTextNormalizeメ ソ ッ ド で返す特殊なケースです。 PBDOM_TEXT オブジェク ト は DOMテキス ト ノ ード を表し ている ため、 子 DOM ノ ード はあり ません。PBDOM_CDATA オブジェク ト も DOM CDATA オブジェク ト を表したものなので、 子 DOM ノ ード はあり ません。 同様に、 PBDOM_COMMENTにも子 DOM ノ ード はあり ません。

次の表に、PBDOM_OBJECT 内に格納されている実際の DOM オブジェク トの種類ごとの戻り値を示します。

DOM オブジェク トの種類 戻り値

PBDOM_ELEMENT PBDOM_ELEMENT 内に格納されているすべてのテキス ト ノード と CDATA セクシ ョ ンのテキス ト値を、 連結して正規化したテキス ト を返します。

次のよ うに定義された PBDOM_ELEMENT がある と します。

<abc> Root Element Data <data>ABC Data </data> now with extra info </abc>

GetTextNormalize は 「Root Element Data now with extra info」 を返します。

次のよ うに定義された PBDOM_ELEMENT がある と します。

<abc> Root Element Data </abc>

GetTextNormalize は 「Root Element Data」 を返します。

次のよ うに定義された PBDOM_ELEMENT がある と します。

<abc> Root Element Data <![CDATA[ with some cdata text]]></abc>

GetTextNormalize は 「Root Element Data with some cdata text」 を返します。

PBDOM_ATTRIBUTE PBDOM_ATTRIBUTE オブジェク ト内に格納されているテキス ト データを正規化したテキス ト を返します。

次のよ うな属性を持った要素がある と します。

<abc ATTRIBUTE_1=" My Attribute ">

GetTextNormalize は 「My Attribute」 を返します。

PBDOM_TEXT PBDOM_TEXT オブジェク ト自体に格納されているテキス ト データを正規化したテキス ト を返します。

たとえば、 次の要素がある と します。

<abc> MY TEXT </abc>

テキス ト ノード 「MY TEXT」 を表す PBDOM_TEXT オブジェク トがある とき、 PBDOM_TEXT に対して呼び出した GetTextNormalize は文字列 「MY TEXT」 を返します。

306 PowerBuilder

Page 323: · PDF file(PBDOM : PowerBuilder Document Object Model

第 15 章 PBDOM_OBJECT クラス

関連項目 GetTextGetTextTrim

GetTextTrim機能 現行の PBDOM_OBJECT に含まれているテキス ト データを、前後の空

白文字を削除して取得します。

構文 pbdom_object_name.GetTextTrim()

戻り値 String 型。 現行の PBDOM_OBJECT の前後の空白が削除されたテキスト内容を返します。 テキス ト内容がない場合、 あるいは空白文字だけの場合は、 空の文字列を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トが、 派生した PBDOM_OBJECTク ラス オブジェク トに関連付けられていない場合

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リ不足が発生した場合

PBDOM_CDATA CDATA セクシ ョ ン自体に格納されている文字列データを正規化した文字列を返します。 たとえば、 次の CDATA がある と します。

<![CDATA[ They're saying "x < y" & that "z > y" so I guess that means that z > x ]]>

上記の CDATA セクシ ョ ンを表す PBDOM_CDATA がある と き、GetTextNormalize は次の文字列を返します。

They're saying "x < y" & that "z > y" so I guess that means that z > x

「They're」 の前の最初のスペースと、 「x」 の後の最後のスペースが削除されています。 また、 「guess」 と 「that」 の間のスペースが半角スペース 1 つになり ます。

PBDOM_COMMENT COMMENT 自体に格納されている文字列データを正規化した文字列を返します。 たとえば、 次の COMMENT がある と します。

<!— Comment Here !-->

COMMENT に対して呼び出した GetTextNormalize は、 文字列 「Comment Here !」 を返します。

DOM オブジェク トの種類 戻り値

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 307

Page 324: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_OBJECT

解説 このメ ソ ッ ドは、PBDOM_OBJECT が、テキス ト ノードまたは CDATAセクシ ョ ンを格納できる種類である場合、 または基本テキス ト を元から格納している種類のオブジェ ク ト である場合にのみ、 意味のあるデータを返します。 これらの種類には次のものがあ り ます。

• PBDOM_ELEMENT

• PBDOM_ATTRIBUTE

• PBDOM_TEXT

• PBDOM_CDATA

• PBDOM_COMMENT

PBDOM_TEXT、 PBDOM_CDATA、 およ び PBDOM_COMMENT ク ラ スは、インスタンス内に含まれている本来のテキスト データを GetTextTrimメ ソ ッ ド で返す特殊なケースです。PBDOM_TEXT オブジェク ト は DOMテキス ト ノ ード を表し ている ため、 子 DOM ノ ード はあり ません。PBDOM_CDATA オブジェク ト も DOM CDATA オブジェク ト を表したものなので、 子 DOM ノ ード はあり ません。 同様に、 PBDOM_COMMENTにも子 DOM ノ ード はあり ません。

次の表に、PBDOM_OBJECT 内に格納されている実際の DOM オブジェク トの種類ごとの戻り値を示します。

DOM オブジェク トの種類 戻り値

PBDOM_ELEMENT PBDOM_ELEMENT 内に格納されているすべてのテキス ト ノード と CDATA セクシ ョ ンのテキス ト値を、 連結して ト リ ミ ングしたテキス ト を返します。テキス トの前後の空白文字が削除されます。

次のよ うに定義された PBDOM_ELEMENT がある と します。

<abc>Root Element Data<data>ABC Data </data> now with extra info</abc>

GetTextTrim は「Root Element Data now with extra info」を返します。

次のよ うに定義された PBDOM_ELEMENT がある と します。

<abc> Root Element Data </abc>

GetTextTrim は 「Root Element Data」 を返します。

次のよ うに定義された PBDOM_ELEMENT がある と します。

<abc>Root Element Data <![CDATA[ with some cdata text]]></abc>

GetTextTrim は 「Root Element Data with some cdata text」 を返します。

308 PowerBuilder

Page 325: · PDF file(PBDOM : PowerBuilder Document Object Model

第 15 章 PBDOM_OBJECT クラス

関連項目 GetTextGetTextNormalize

PBDOM_ATTRIBUTE PBDOM_ATTRIBUTE オブジェク トに格納されているテキス ト データの前後の空白文字を削除したテキス ト を返します。

次のよ うな属性を持った要素がある と します。

<abc ATTRIBUTE_1="My Attribute ">

GetTextTrim は次のテキス ト を返します。

My Attribute

ただし、 「My」 と 「Attribute」 の間のスペースはそのままです。

PBDOM_TEXT PBDOM_TEXT オブジェク ト自体に格納されているテキス ト データの前後の空白文字を削除したテキス ト を返します。

たとえば、 次の要素がある と します。

<abc> MY TEXT </abc>

テキス ト ノード 「MY TEXT 」 を表す PBDOM_TEXT オブジェク トがあると き、 PBDOM_TEXT に対して呼び出した GetTextTrim は、 文字列 「MY TEXT」 を返します。

PBDOM_CDATA CDATA セクシ ョ ン自体に格納されている文字列データの前後の空白文字を削除した文字列を返します。 たとえば、 次の CDATA がある と します。

<![CDATA[ They're saying "x < y" & that "z > y" so I guess that means that z > x ]]>

上記の CDATA セクシ ョ ンを表す PBDOM_CDATA がある と き、 GetTextTrim は次の文字列を返します。

They're saying " x < y " & that "z > y" so I guess that means that z > x

「They're」 の前の最初のスペースと、 「x」 の後の最後のスペースが削除されています。

PBDOM_COMMENT COMMENT 自体に格納されている文字列データの前後の空白を削除した文字列を返します。 たとえば、 次の COMMENT がある と します。

<!- Comment Here ! -->

「Comment」 の前と、 感嘆符 「!」 の後に空白があ り ます。

COMMENT に対して呼び出した GetTextTrim は、 文字列「 Comment Here !」を返します。

DOM オブジェク トの種類 戻り値

PowerBuilder エクステンシ ョ ン リファレンス 309

Page 326: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_OBJECT

HasChildren機能 PBDOM_OBJECT に子オブジェク トがあるかど うかを調べます。

構文 pbdom_object_name.HasChildren()

戻り値 Boolean 型。 現行の PBDOM_OBJECT オブジェ ク ト に 1 つ以上の子PBDOM_OBJECT がある場合は true を返し、 1 つもない場合は false を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トが、 派生した PBDOM_OBJECTク ラス オブジェク トに関連付けられていない場合

例 次の例では、 簡単な XML 文字列から PBDOM_DOCUMENT を作成します。 ルート要素 abc には、 テキス ト 「abc data」 がカプセル化されている子テキス ト ノードがあ り ます。ルート要素に対して HasChildren を呼び出すと、 このメ ソ ッ ドは true を返します。 メ ッセージ ボッ クスには 「子があります」 と表示されます。 メ ソ ッ ドが false を返すと きは、メ ッセージ ボッ クスに 「子がありません」 と表示します。

PBDOM_Builder pbdombuilder_newpbdom_document pbdom_docpbdom_object pbdom_root_elementstring strXML = "<abc>abc data</abc>"

pbdombuilder_new = Create PBDOM_Builderpbdom_doc = pbdombuilder_new.BuildFromString (strXML)pbdom_root_element = pbdom_doc.GetRootElement()if (pbdom_root_element.HasChildren()) then

MessageBox ("pbdom_root_element", "子があります ")else

MessageBox ("pbdom_root_element", "子がありません ")end ifDestroy pbdombuilder_new

解説 PBDOM_OBJECT オブジェク トに 1 つ以上の子がある場合は true が返され、 1 つもない場合は false が返されます。

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

310 PowerBuilder

Page 327: · PDF file(PBDOM : PowerBuilder Document Object Model

第 15 章 PBDOM_OBJECT クラス

InsertContent機能 新しい PBDOM_OBJECT を現行の PBDOM_OBJECT に挿入します。

構文 pbdom_object_name.InsertContent(pbdom_object_new, pbdom_object_ref)

戻り値 PBDOM_OBJECT。 修正された新しい PBDOM_OBJECT です。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク ト 、 新しい PBDOM_OBJECT、 または参照 PBDOM_OBJECT が、 派生した PBDOM_OBJECT ク ラス オブジェク トに関連付けられていない場合

EXCEPTION_INVALID_ARGUMENT ― 入力された引数のいずれかが無効である場合。 入力引数が正し く初期化されていないか、 null オブジェク ト参照である場合に、 無効となるこ とがある

解説 新しい PBDOM_OBJECT を現行の PBDOM_OBJECT に挿入する と、新しい PBDOM_OBJECT は現行の PBDOM_OBJECT の子ノードにな ります。 また、 新しい PBDOM_OBJECT は、 2 番目のパラ メータで指定したも う 1 つの PBDOM_OBJECT の直前に配置されます。

2 番目の PBDOM_OBJECT を null に指定すると 、新しい PBDOM_OBJECTは、 現行の PBDOM_OBJECT の子のリ スト の最後に挿入されます。

派生クラス

PBDOM_OBJECT ク ラスから派生したク ラスのメ ソ ッ ドは、 派生ク ラスが子オブジェク ト を持つこ とができない場合と、 メ ソ ッ ドが子ノードの内容の操作に関わっている場合には、 重要な結果を返すこ とはあり ません。

関連項目 AddContentGetContentRemoveContentSetContent

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

pbdom_object_new 挿入する PBDOM_OBJECT の参照名を指定

pbdom_object_ref 新しい PBDOM_OBJECT を挿入する位置の後にあるPBDOM_OBJECT の名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 311

Page 328: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_OBJECT

IsAncestorObjectOf機能 現行の PBDOM_OBJECT がほかの PBDOM_OBJECT の先祖であるか

ど うかを調べます。

構文 pbdom_object_name.IsAncestorObjectOf(pbdom_object_ret)

戻り値 Boolean 型。 現行の PBDOM_OBJECT が参照される PBDOM_OBJECT の先祖である場合は true を返し、 それ以外の場合は false を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トが、 派生した PBDOM_OBJECTク ラス オブジェク トに関連付けられていない場合

EXCEPTION_INVALID_ARGUMENT ― 入力された PBDOM_OBJECT が無効である場合。 PBDOM_ELEMENT が正し く初期化されていないか、null オブジェク ト参照である場合に、 無効となるこ とがあ り ます。

例 次のコードでは、 IsAncestorObjectOf メ ソ ッ ド を使って、 構造化文書を作成します。 このコードでは、 pbdom_elem_1 は pbdom_elem_1 要素を表します。 これは、 pbdom_elem_ 要素を表し、 pbdom_elem_3 の先祖であるので、 IsAncestorObjectOf を呼び出すと true が返されます。

PBDOM_ELEMENT pbdom_elem_1PBDOM_ELEMENT pbdom_elem_2PBDOM_ELEMENT pbdom_elem_3PBDOM_ELEMENT pbdom_elem_rootPBDOM_DOCUMENT pbdom_doc1

pbdom_doc1 = Create PBDOM_DOCUMENTpbdom_elem_1 = Create PBDOM_ELEMENTpbdom_elem_2 = Create PBDOM_ELEMENTpbdom_elem_3 = Create PBDOM_ELEMENT

pbdom_elem_1.SetName("pbdom_elem_1")pbdom_elem_2.SetName("pbdom_elem_2")pbdom_elem_3.SetName("pbdom_elem_3")

pbdom_elem_1.AddContent(pbdom_elem_2)pbdom_elem_2.AddContent(pbdom_elem_3)pbdom_doc1.NewDocument("", "", &

"Root_Element_From_Doc_1" , "", "")pbdom_elem_root = pbdom_doc1.GetRootElement()

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

pbdom_object_ref チェッ ク対象となる PBDOM_OBJECT を指定

312 PowerBuilder

Page 329: · PDF file(PBDOM : PowerBuilder Document Object Model

第 15 章 PBDOM_OBJECT クラス

pbdom_elem_root.AddContent(pbdom_elem_1)

IF (pbdom_elem_1.IsAncestorObjectOf(pbdom_elem_3)) THEN

MessageBox ("先祖 ", &"pbdom_elem_1 は pbdom_elem_3 の先祖です。 ")

ELSE

MessageBox ("先祖 ", &"pbdom_elem_1 は pbdom_elem_3 の先祖ではありません。 ")

END IF

destroy pbdom_elem_1destroy pbdom_elem_2destroy pbdom_elem_3destroy pbdom_elem_rootdestroy pbdom_doc1

上記のコードでは、 次の文書が作成されます。

<!DOCTYPE Root_Element_From_Doc_1><Root_Element_From_Doc_1>

<pbdom_elem_1><pbdom_elem_2>

<pbdom_elem_3 /></pbdom_elem_2>

</pbdom_elem_1></Root_Element_From_Doc_1>

解説 IsAncestorObjectOf メ ソ ッ ドは、 現行の PBDOM_OBJECT がほかの PBDOM_OBJECT の先祖であるかど うかを調べます。

PowerBuilder エクステンシ ョ ン リファレンス 313

Page 330: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_OBJECT

RemoveContent機能 現行の PBDOM_OBJECT から子 PBDOM_OBJECT を削除します。

構文 pbdom_object_name.RemoveContent(pbdom_object_ref)

戻り値 Boolean 型。 内容が削除された場合は true を返し、 それ以外の場合はfalse を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トや入力された PBDOM_OBJECTが、派生した PBDOM_OBJECT ク ラス オブジェク トに関連付けられていない場合

EXCEPTION_INVALID_ARGUMENT ― 入力された削除する PBDOM_OBJECTが無効である場合。 PBDOM_OBJECT が正し く 初期化さ れていないか、null オブジェク ト 参照である場合に、 無効と なること がある

解説 新しい PBDOM_OBJECT を現行の PBDOM_OBJECT オブジェ ク ト から削除する と、 削除される PBDOM_OBJECT の子もすべて削除されます。

関連項目 AddContentGetContentInsertContentSetContent

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

pbdom_object_ref 削除する PBDOM_OBJECT を指定

314 PowerBuilder

Page 331: · PDF file(PBDOM : PowerBuilder Document Object Model

第 15 章 PBDOM_OBJECT クラス

SetContent機能 PBDOM_OBJECT のすべての内容を設定します。

構文 pbdom_object_name.SetContent(pbdon_objectpbdom_object_array)

戻り値 PBDOM_OBJECT。 修正された新しい PBDOM_OBJECT です。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トが、 派生した PBDOM_OBJECTク ラス オブジェク トに関連付けられていない場合

解説 指定した配列には、 現行の PBDOM_OBJECT に関連付けられている、特定の派生 PBDOM_OBJECT に対して正当な PBDOM_OBJECT オブジェク トが格納されます。

たとえば、 PBDOM_DOCUMENT は、 PBDOM_ELEMENT、PBDOM_COMMENT、 PBDOM_DOCTYPE、 または PBDOM_PROCESSINGINSTRUCTION オブジェク トが格納されている配列だけを受け取り ます。 また、 配列に格納できるのは、 そのルート要素と して設定された PBDOM_ELEMENT オブジェク ト 1 つと、その DOCTYPE と して設定された PBDOM_DOCTYPE オブジェク ト 1 つだけです。

配列に不正なオブジェク トが含まれている場合は、 特定の派生 PBDOM_OBJECT に固有の例外が送出されます。 詳細は、PBDOM_OBJECT から派生したオブジェク ト の SetContent メ ソ ッ ド を参照して ください。

例外が発生した場合、 現行の PBDOM_OBJECT オブジェク トの元の内容は変更されず、 指定した配列に格納されている PBDOM_OBJECT オブジェク トは変わり ません。

関連項目 AddContentGetContentInsertContentRemoveContent

引数 説明

pbdom_object_name PBDOM オブジェク トの名前を指定

pbdom_object_array PBDOM_OBJECT の内容と して設定する PBDOM_OBJECT オブジェク トの配列を指定

PowerBuilder エクステンシ ョ ン リファレンス 315

Page 332: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_OBJECT

SetName機能 PBDOM_OBJECT の名前を設定します。

構文 pbdom_object_name.SetName(stringstrName)

戻り値 Boolean 型。 PBDOM_OBJECT の名前が変更された場合は true を返し、それ以外の場合は false を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トが、 派生した PBDOM_OBJECTク ラス オブジェク トに関連付けられていない場合

EXCEPTION_INVALID_ARGUMENT ― 入力された名前の文字列が無効である場合。特に文字列を null に設定した場合に、無効となるこ とがある

EXCEPTION_MEMORY_ALLOCATION_FAILURE ― このメ ソ ッ ドの実行中に、 メモ リ不足が発生した場合

EXCEPTION_INVALID_NAME ― 入力された名前の文字列が、 XML 名に関する W3C の基準に準拠していない場合

解説 設定する名前は、 現行の PBDOM_OBJECT が参照する特定の派生PBDOM_OBJECT の名前です。 一部の種類の PBDOM_OBJECT には、関連付けられた名前を持たないものも あ り ます。 詳細についてはGetName の説明を参照して ください。

たとえば、 PBDOM_DOCUMENT は名前を持たないので、 SetName メソ ッ ドを呼び出すと、 false が返されます。

関連項目 GetName

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

strName PBDOM_OBJECT に設定する新しい名前を指定

316 PowerBuilder

Page 333: · PDF file(PBDOM : PowerBuilder Document Object Model

第 15 章 PBDOM_OBJECT クラス

SetParentObject機能 参照される PBDOM_OBJECT を現行の PBDOM_OBJECT の親と して

設定します。

構文 pbdom_object_name.SetParentObject(pbdom_object pbdom_object_ref)

戻り値 PBDOM_OBJECT。 現行の PBDOM_OBJECT が参照される親の子ノード と して追加されます。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_OBJECT オブジェク トや入力された PBDOM_OBJECTが、派生した PBDOM_OBJECT ク ラス オブジェク トに関連付けられていない場合

EXCEPTION_INVALID_ARGUMENT ― 入力された PBDOM_OBJECT が無効である場合。 PBDOM_OBJECT が正し く初期化されていなかった場合や、 null オブジェク ト参照である場合に、 無効となるこ とがある

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 現行の PBDOM_OBJECT にすでに親が存在する場合

EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT ― 入力されたPBDOM_OBJECT が、 現行の PBDOM_OBJECT と正当な親子関係を持つこ とができないク ラスのオブジェク トである場合

例 次の例では、 PBDOM_ELEMENT オブジェク ト を作成して、pbdom_elem_1 とい う名前を付けます。 その親を、 pbdom_doc とい う名の PBDOM_DOCUMENT のルート要素に設定します。 これを実行すると、 ただちに pbdom_elem_1 は pbdom_doc 文書に転送され、pbdom_elem_1 は pbdom_doc のルート要素の子ノード と して追加されます。

次のメ ソ ッ ド呼び出しは、 ルート要素が PBDOM_ELEMENT であるため、 文字列 「pbdom_element」 を返します。

pbdom_elem_1.GetParentObject().GetObjectClassString()

次のメ ソ ッ ド呼び出しは、 ルート要素の名前である文字列「Root_Element」 を返します。

pbdom_elem_1.GetParentObject().GetName()

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

pbdom_object_ref 現行の PBDOM_OBJECT の親と して設定する PBDOM_OBJECT を指定

PowerBuilder エクステンシ ョ ン リファレンス 317

Page 334: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_OBJECT

完全なコード例は、 次のとおりです。

PBDOM_ELEMENT pbdom_elem_1PBDOM_ELEMENT pbdom_elem_rootPBDOM_DOCUMENT pbdom_doc1

pbdom_doc1 = Create PBDOM_DOCUMENTpbdom_elem_1 = Create PBDOM_ELEMENTpbdom_elem_1.SetName ("pbdom_elem_1")

pbdom_doc1.NewDocument ("", "", "Root_Element", "", "")pbdom_elem_root = pbdom_doc1.GetRootElement()pbdom_elem_1.SetParentObject(pbdom_elem_root)

MessageBox ("親クラス ", &pbdom_elem_1.GetParentObject(). &GetObjectClassString())

MessageBox ("親名 ", &pbdom_elem_1.GetParentObject().GetName())

destroy pbdom_elem_1destroy pbdom_elem_rootdestroy pbdom_doc1

解説 呼び出し側には、 現行の PBDOM_OBJECT と参照される PBDOM_OBJECT に正当な親子関係があるこ と を確認する責任があります。 また、 呼び出し側では、 既存の親の存在が正当なものであることを確認する必要もあ り ます。

JDOM では Element、 Comment、 および CDATA などのいく つかの特定のクラスに対して setParent を定義しているので、 PBDOM の SetParentObjectメ ソ ッ ド は、 JDOM の setParent メ ソ ッ ド と は異なり ます。PBDOM は、多相性 (ポリ モフィ ズム) をサポート するために、基本の PBDOM_OBJECTク ラスにおいて SetParentObject メ ソ ッ ド を実装しています。

特定のク ラスの実装についての詳細は、 派生 PBDOM_OBJECT ク ラスの SetParentObject の説明を参照して ください。

関連項目 GetOwnerDocumentObjectGetParentObject

318 PowerBuilder

Page 335: · PDF file(PBDOM : PowerBuilder Document Object Model

第 1 6 章 PBDOM_PROCESSINGINSTRUCTION クラス

この章について この章では、 PBDOM_PROCESSINGINSTRUCTION ク ラスについて説明します。

PBDOM_PROCESSINGINSTRUCTION機能 PBDOM_PROCESSINGINSTRUCTION ク ラスは、XML 処理命令の

動作を定義します。 このク ラスのメ ソ ッ ドを使用する と、 処理命令オブジェク トのターゲッ ト とそのデータを取得できます。 データには常に文字列と してアクセスするこ とができ、必要に応じて、名前と値の組み合わせと してアクセスするこ と もできます。

命令が別の name=“value” の組み合わせに分けられたと しても 、処理命令オブジェク ト の実際の処理命令は文字列です。 PBDOM では、このよう な処理命令オブジェク ト 形式をサポート しています。処理命令オブジェク ト データに名前と 値の組み合わせが含まれる場合には、 通常の場合と 同様に、 PBDOM_PROCESSINGINSTRUCTIONがこれらの組み合わせを解析して、名前と 値の組み合わせの内部リスト に分類します。

メ ソ ッ ド PBDOM_OBJECT から継承されたメ ソ ッ ド の中には、 意味のある用途を持たず、 デフォルト の機能や重要でない機能しか実行しないものもあり ます。 これらのメ ソッ ド について、 次の表で説明します。

メ ソ ッ ド 戻り値

AddContent 現行の PBDOM_PROCESSINGINSTRUCTION。かわりに AddValue を使用

GetContent false。 かわりに、 GetName と GetValue を使用

HasChildren false

InsertContent 現行の PBDOM_PROCESSINGINSTRUCTIONIsAncestorObjectOf false

RemoveContent false。 かわりに RemoveValue を使用

SetContent 現行の PBDOM_PROCESSINGINSTRUCTION。かわりに SetData を使用

PowerBuilder エクステンシ ョ ン リファレンス 319

Page 336: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_PROCESSINGINSTRUCTION

PBDOM_PROCESSINGINSTRUCTION には次のメ ソ ッ ドがあ り ます。

CloneDetachEqualsGetDataGetNameGetNamesGetObjectClassGetObjectClassStringGetOwnerDocumentObjectGetParentObjectGetTargetGetTextGetTextNormalizeGetTextTrimGetValueRemoveValueSetDataSetNameSetParentObjectSetValue

Clone機能 現行の PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト のク ロー

ンを作成して返します。

構文 pbdom_pi_name.Clone(boolean bDeep)

戻り値 PBDOM_OBJECT。 PBDOM_OBJECT と して返された現行の PBDOM_PROCESSINGINSTRUCTION オブジェク トのク ローンです。

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の名前を指定

bDeep 詳細ク ローンを返すか、 簡易ク ローンを返すかを指定する Boolean 型の値を指定。指定する値は、詳細クローンの場合は true、 簡易ク ローンの場合は false。 この引数は現在無視される

320 PowerBuilder

Page 337: · PDF file(PBDOM : PowerBuilder Document Object Model

第 16 章 PBDOM_PROCESSINGINSTRUCTION クラス

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 現行の PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の内部実装が null の場合。 この例外が送出されるのはまれですが、 重大なメモリの破損が発生した場合に送出されるこ とがある

解説 Clone メ ソ ッ ドは、 元の PBDOM_PROCESSINGINSTRUCTION の複製であ り、 かつ独立したオブジェク トである、 新しい PBDOM_PROCESSINGINSTRUCTION オブジェク ト を作成します。PBDOM_PROCESSINGINSTRUCTION オブジェク トには子 PBDOM_OBJECT のサブツ リーが含まれていないので、PBDOM_PROCESSINGINSTRUCTION オブジェク トのク ローンは、bDeep が true であるか false であるかにかかわらず、 必ず元のオブジェク ト と同じです。

PBDOM_PROCESSINGINSTRUCTION のクローンには親はあ り ませんが、 元の PBDOM_PROCESSINGINSTRUCTION と同じ PBDOM_DOCUMENT に格納されます。 元の PBDOM_PROCESSINGINSTRUCTION オブジェク トがスタンドアロンのと きは、 ク ローンもスタンドアロンです。

Detach機能 PBDOM_PROCESSINGINSTRUCTION オブジェク ト をその親

PBDOM_OBJECT から切り離します。

構文 pbdom_pi_name.Detach()

戻り値 PBDOM_OBJECT。 親オブジェク トから切り離された現行の PBDOM_PROCESSINGINSTRUCTION オブジェク トです。 現行の PBDOM_PROCESSINGINSTRUCTION オブジェク ト に親がない場合は、このメ ソ ッ ドは何も実行しません。

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 321

Page 338: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_PROCESSINGINSTRUCTION

Equals機能 現行の PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト が指定さ

れた PBDOM_OBJECT と同じであるかど うかを調べます。

構文 pbdom_pi_name.Equals(pbdom_object_ref)

戻り値 Boolean 型。 現行の PBDOM_PROCESSINGINSTRUCTION オブジェ クトが入力された PBDOM_OBJECT と同じである場合は true を返し、 そうでない場合は false を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_OBJECT が PBDOM_OBJECT から派生したオブジェク トへの参照でない場合

GetData機能 PBDOM_PROCESSINGINSTRUCTION オブジェク トの元のデータを返

します。

構文 pbdom_pi_name.GetData()

戻り値 String 型。PBDOM_PROCESSINGINSTRUCTION オブジェク トのデータです。

解説 処理命令データは基本的には文字列であ り、 name=“value” の組み合わせの集合ではあ り ません。

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェク トの名前を指定

pbdom_object_ref 現行の PBDOM_PROCESSINGINSTRUCTION オブジェク ト と同じであるかど うかを調べる PBDOM_OBJECT を指定

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の名前を指定

322 PowerBuilder

Page 339: · PDF file(PBDOM : PowerBuilder Document Object Model

第 16 章 PBDOM_PROCESSINGINSTRUCTION クラス

GetName機能 現行の PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の名前を

取得します。

構文 pbdom_pi_name.GetName()

戻り値 String 型

例 次の処理命令に対して呼び出した GetName メ ソ ッ ドは、 「works」 を返します。

<?works document="hello.doc" data="hello.wks" ?>

解説 このメ ソ ッ ドは、 GetTarget メ ソ ッ ドに類似しています。 PBDOM では、処理命令のターゲッ トは処理命令の名前と同義です。

GetNames機能 name=“value” の組み合わせに分けられる

PBDOM_PROCESSINGINSTRUCTION オブジェク トのデータ部分から取り出した名前を リ ス トにして取得します。 このメ ソ ッ ドは GetValue メ ソ ッ ド と一緒に使用できます。

構文 pbdom_pi_name.GetNames(string name_array[ ])

戻り値 Boolean 型。名前のリ ス トが取得された場合は true を返し、それ以外の場合は false を返します。 名前と値の組み合わせがない場合は、 このメソ ッ ドは false を返します。

例 次の PBDOM_PROCESSINGINSTRUCTION オブジェク トの場合、 a が複数回出現しても、GetNames が返すのは a、b、および c の 3 つの文字列です。

<? dw-set_values a="1" b="2" c="3" a="4" ?>

a に対して GetValue メ ソ ッ ドを呼び出した場合は、a に設定された最後の値が 4 なので、 値 4 が返されます。 .

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の名前を指定

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の名前を指定

name_array 名前を格納する可変長文字列配列を指定

PowerBuilder エクステンシ ョ ン リファレンス 323

Page 340: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_PROCESSINGINSTRUCTION

解説 PBDOM_PROCESSINGINSTRUCTION オブジェク トで、 名前と値の組み合わせの名前と して、 名前が複数回使用されている場合は、 その名前が最後に出現したと きに設定された値が使用され、 それ以前の出現時に宣言された値はすべて破棄されます。

GetObjectClass機能 現行の PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト のク ラ ス

を示す Long 型の整数値コードを返します。

構文 pbdom_pi_name.GetObjectClass()

戻り値 Long 型。 現行の PBDOM_OBJECT のク ラスを示す Long 型の整数値コード を返します。pbdom_pi_name が PBDOM_PROCESSINGINSTRUCTION オブジェク ト のと きは、 戻り 値は 10 です。

GetObjectClassString機能 PBDOM_PROCESSINGINSTRUCTION オブジェク トのク ラスを文字列

で返します。

構文 pbdom_pi_name.GetObjectClassString()

戻り値 String 型。 現行の PBDOM_OBJECT のク ラスを示す文字列を返します。pbdom_pi_name が PBDOM_PROCESSINGINSTRUCTION オブジェク トのと きは、 返される文字列は 「pbdom_processinginstruction」 です。

引数 説明

pbdom_pi_name PBDOM_OBJECT の名前を指定

引数 説明

pbdom_pi_name PBDOM_OBJECT の名前を指定

324 PowerBuilder

Page 341: · PDF file(PBDOM : PowerBuilder Document Object Model

第 16 章 PBDOM_PROCESSINGINSTRUCTION クラス

GetOwnerDocumentObject機能 現行の PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト を所有し

ている PBDOM_DOCUMENT を返します。

構文 pbdom_pi_name.GetOwnerDocumentObject()

戻り値 PBDOM_DOCUMENT。 所有している PBDOM_DOCUMENT がない場合は、 null が返されます。

GetParentObject機能 現行の PBDOM_PROCESSINGINSTRUCTION オブジェク ト の親

PBDOM_OBJECT を返し ます。

構文 pbdom_pi_name.GetParentObject()

戻り値 PBDOM_OBJECT。 PBDOM_PROCESSINGINSTRUCTION オブジェ クトの親です。 親がない場合は、 null を返します。

GetTarget機能 PBDOM_PROCESSINGINSTRUCTION オブジェク トのターゲッ ト を返

します。

構文 pbdom_pi_name.GetTarget()

戻り値 String 型。 PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト のターゲッ トです。

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の名前を指定

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の名前を指定

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 325

Page 342: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_PROCESSINGINSTRUCTION

例 次の PBDOM_PROCESSINGINSTRUCTION オブジェク トに対して GetTarget メ ソ ッ ド を呼び出すと 、 こ のメ ソ ッ ド は「 xml-stylesheet」 を返します。

<?xml-stylesheet href="simple-ie5.xsl" type="text/xsl" ?>

GetName メ ソ ッ ドを呼び出しても、 同じ文字列を返します。

関連項目 GetName

GetText機能 現行の PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト 内に格納

されているテキス ト データを取得します。

構文 pbdom_pi_name.GetText()

戻り値 String 型

解説 GetText メ ソ ッ ドは、現行の PBDOM_PROCESSINGINSTRUCTION オブジェク トのテキス ト データを返します。 GetText は GetData に類似しています。 ただし、 処理命令オブジェク トのテキス ト内容は、 テキス トノードではあ り ません。

関連項目 GetDataGetTextNormalizeGetTextTrimSetData

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の名前を指定

326 PowerBuilder

Page 343: · PDF file(PBDOM : PowerBuilder Document Object Model

第 16 章 PBDOM_PROCESSINGINSTRUCTION クラス

GetTextNormalize機能 現行の PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト 内に格納

されているテキス ト データを、 テキス ト前後の空白文字をすべて削除し、 テキス ト内の空白文字を半角スペース 1 つに正規化して取得します。

構文 pbdom_pi_name.GetTextNormalize()

戻り値 String 型。PBDOM_PROCESSINGINSTRUCTION オブジェク ト を正規化したテキス ト内容です。 現行の PBDOM_OBJECT にテキス ト値が含まれていない場合、または含まれているのが空白文字のみである場合は、空の文字列を返します。

関連項目 GetDataGetTextGetTextTrimSetData

GetTextTrim機能 現行の PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト 内に格納

されているテキス ト データを、 前後の空白スペースを削除して取得します。

構文 pbdom_pi_name.GetTextTrim()

戻り値 String 型。 PBDOM_PROCESSINGINSTRUCTION オブジェク ト の前後の空白スペースを削除したテキス ト内容です。 現行の PBDOM_PROCESSINGINSTRUCTION オブジェク トにテキス ト値が含まれていない場合、 または含まれているのが空白文字だけである場合は、 空の文字列を返します。

関連項目 GetDataGetTextGetTextNormalizeSetData

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の名前を指定

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 327

Page 344: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_PROCESSINGINSTRUCTION

GetValue機能 PBDOM_PROCESSINGINSTRUCTION オブジェク トで指定した名前と

値の組み合わせの値を返します。 指定した組み合わせが PBDOM_PROCESSINGINSTRUCTION オブジェク トにない場合は、 空の文字列を返します。

構文 pbdom_pi_name.GetValue(string strName)

戻り値 String 型。 値を検索する名前と値の組み合わせの文字列名です。

例 次の PBDOM_PROCESSINGINSTRUCTION オブジェク トの場合、GetValue("href") は文字列 「simple-ie5.xsl」 を返します。

<?xml-stylesheet href="simple-ie5.xsl" type="text/xsl" ?>

関連項目 GetDataGetTextSetValue

RemoveValue機能 指定された名前と値の組み合わせを削除します。

構文 pbdom_pi_name.RemoveValue(string strName)

戻り値 Boolean 型。 指定された名前と値の組み合わせが削除された場合は trueを返し、 それ以外の場合は false を返します。

例 次の PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト がある と します。

<?xml-stylesheet href="simple-ie5.xsl" type="text/xsl" ?>

RemoveValue("href") を実行する と、PBDOM_PROCESSINGINSTRUCTION オブジェク トは次のよ うに変更されます。

<?xml-stylesheet type="text/xsl" ?>

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェク トの名前を指定

strName 名前と値の組み合わせの文字列名を指定

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の名前を指定

strName 削除する名前と値の組み合わせの文字列名を指定

328 PowerBuilder

Page 345: · PDF file(PBDOM : PowerBuilder Document Object Model

第 16 章 PBDOM_PROCESSINGINSTRUCTION クラス

SetData機能 PBDOM_PROCESSINGINSTRUCTION オブジェク トの元のデータを設

定します。

構文 pbdom_pi_name.SetData(string strData)

戻り値 PBDOM_PROCESSINGINSTRUCTION。 新し いデータ で修正さ れたPBDOM_PROCESSINGINSTRUCTION オブジェク トです。

Throws EXCEPTION_INVALID_ARGUMENT ― 入力されたデータが無効である場合。 次の場合に、 無効となる可能性があ り ます。

1 入力されたデータに、 文字列の一部分に 「?>」 が含まれている場合。 これは、 処理命令のデータ要件に違反しています。

2 処理命令のターゲッ ト名が、 現行の PBDOM_PROCESSINGINSTRUCTION オブジェク ト を XML 宣言処理命令にする xml である場合に、 入力されたデータ文字列が次の条件に適合していないと、 この例外が送出されます。

• データには、version に名前と値の組み合わせが含まれていなければならない

• データには、 encoding に名前と値の組み合わせを含めるこ とができる

• データには、 standalone に名前と値の組み合わせを含めることができる。 含める場合は、 standalone の値は、 yes またはno のいずれかでなければならない

• データには、上記以外のデータを、名前と値の組み合わせ形式またはそのほかの形式でも含めてはならない

小文字

文字列 xml、 version、 encoding、 standalone、 yes、 および no はすべて大文字小文字が区別されるため、 小文字で指定しなければなり ません。

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェク トの名前を指定

strData PBDOM_PROCESSINGINSTRUCTION オブジェク トの新しいデータを指定

PowerBuilder エクステンシ ョ ン リファレンス 329

Page 346: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_PROCESSINGINSTRUCTION

例 次の PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト がある と します。

<?xml-stylesheet href="simple-ie5.xsl" type="text/xsl" ?>

SetData("href=new.xsl") を実行する と、PBDOM_PROCESSINGINSTRUCTION オブジェク トは次のよ うに変更されます。

<?xml-stylesheet href=new.xsl" ?>

PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の全データが リセッ ト されています。

解説 処理命令のターゲッ ト名が xml で、XML 宣言であるこ とを示していると きは、 特殊な処理が行われます。 名前と値の組み合わせの名前の部分にデータ と して入力できる有効な命令は、 version、 encoding、および standalone です。 version 命令を指定してからでなければ、 処理命令を文書に追加するこ とはできません。

XML 仕様では、 version、 encoding、 standalone の順序で命令を指定するこ とを推奨しています。 この関数では、 XML 仕様に準拠するために、 たとえば次のよ うに入力データの順序を変更します。

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

SetName機能 現行の PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の名前を

設定します。

構文 pbdom_pi_name.SetName(string strName)

戻り値 Boolean 型。 現行の PBDOM_PROCESSINGINSTRUCTION オブジェ クトの名前が変更された場合は true を返し、そ うでない場合は false を返します。

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェク トの名前を指定

strName 現行の PBDOM_PROCESSINGINSTRUCTION オブジェク トに対して設定する、 新しい名前を指定

330 PowerBuilder

Page 347: · PDF file(PBDOM : PowerBuilder Document Object Model

第 16 章 PBDOM_PROCESSINGINSTRUCTION クラス

Throws EXCEPTION_INVALID_NAME ― 名前が無効である場合に、 こ の例外が送出されます。 名前と して xml を設定して、 現行の PBDOM_PROCESSINGINSTRUCTION オブジェク ト を XML 宣言処理命令にするこ と ができます。 ただし 、 こ の場合には、 xml を小文字にします。 小文字でない場合は、 EXCEPTION_INVALID_NAME 例外が送出されます。

EXCEPTION_INVALID_STRING ― 名前が xml で、 現行の PBDOM_PROCESSINGINSTRUCTION オブジェク トの現在の値が有効でない場合に、 こ の例外が送出さ れます。 データが有効であるのは、次の場合に限られます。

• データが空の文字列である

• データが空の文字列でない場合は、version に名前と値の組み合わせが含まれていなければならない

• データが空の文字列でなく、version に名前と値の組み合わせが含まれている場合は、 encoding に名前と値の組み合わせを含めること もできる

• データが空の文字列でなく、version に名前と値の組み合わせが含まれている場合は、 standalone に名前と値の組み合わせを含めるこ と もできる。 含める場合は、 standalone の値は、 yes または noのいずれかでなければならない。 どちら も小文字で指定する

• データが空の文字列でなく、version に名前と値の組み合わせが含まれる場合は、encoding と standalone を除き、名前と値の組み合わせ形式にかかわらず、 それ例外のデータを含めてはならない

解説 このメ ソ ッ ドは、 処理命令オブジェク トのターゲッ トの設定と同じです。 ターゲッ ト と して xml を使用する際の制限については、 例外のリス ト を参照して ください。

PowerBuilder エクステンシ ョ ン リファレンス 331

Page 348: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_PROCESSINGINSTRUCTION

SetParentObject機能 参照される PBDOM_OBJECT を、 現行の

PBDOM_PROCESSINGINSTRUCTION オブジェク トの親と して設定します。

構文 pbdom_pi_name.SetParentObject(pbdom_object pbdom_object_ref)

戻り値 PBDOM_OBJECT。 修正された現行の PBDOM_PROCESSINGINSTRUCTION オブジェク トです。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_OBJECT が PBDOM_OBJECT から派生したオブジェク トへの参照でない場合

EXCEPTION_HIERARCHY_ERROR ― 入力された PBDOM_OBJECT を現行の PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の親と して設定したために、 親 PBDOM_OBJECT が整形式でなくなった場合。 たとえば、現行の PBDOM_PROCESSINGINSTRUCTION オブジェク トがXML 宣言であ り、 親と して設定するのが PBDOM_ELEMENT である場合など。

解説 親と して設定する PBDOM_OBJECT と、 現行の PBDOM_PROCESSINGINSTRUCTION オブジェク ト には、 正当な親子関係がなければなり ません。 現在、 PBDOM_PROCESSINGINSTRUCTION オブジェク ト の親と して設定できるのは、 PBDOM_ELEMENT と PBDOM_DOCUMENT だけです。

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の名前を指定

pbdom_object_ref 現行の PBDOM_PROCESSINGINSTRUCTION オブジェク トの親と して設定する PBDOM_OBJECT を指定

332 PowerBuilder

Page 349: · PDF file(PBDOM : PowerBuilder Document Object Model

第 16 章 PBDOM_PROCESSINGINSTRUCTION クラス

SetValue機能 指定された名前と値の組み合わせの値を設定します。

構文 pbdom_pi_name.SetValue(string strName, stringstrValue)

戻り値 PBDOM_PROCESSINGINSTRUCTION

Throws EXCEPTION_INVALID_ARGUMENT ― 入力された strName と strValue が無効である場合。 次の場合に、 無効となる可能性があ り ます。

• 入力された strName と strValue に文字列の一部分に 「?>」 が含まれている場合。 これは、 処理命令のデータ要件に違反している

• 処理命令のターゲッ ト名が、 現行の PBDOM_PROCESSINGINSTRUCTION オブジェク ト を XML 宣言処理命令にする xml である場合に、 入力さ れたデータ文字列が次の条件に適合していないと 、 この例外が送出される。 データには、standalone に名前と 値の組み合わせを含めるこ と ができる。 含める場合は、 standalone の値は、 yes または no のいずれかでなければならない。 文字列 xml、 standalone、 yes、 および no は大文字小文字が区別されるため、 小文字で指定しなければならない

EXCEPTION_INVALID_NAME ― 入力された strName が無効である場合。ターゲッ ト 名が、 現行の PBDOM_PROCESSINGINSTRUCTION オブジェク ト を XML 宣言処理命令にする xml であ り、次のいずれかが trueである場合に、 無効となるこ とがあ り ます。

• strName の値が、version、standalone、 または encoding 以外である場合

• 最初に version が設定されていないのに、 standalone または encoding のいずれかが設定されている場合

例 次の PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト がある と します。

<?xml-stylesheet href="simple-ie5.xsl" type="text/xsl" ?>

SetValue("href","new.xsl") は、 href の値を修正し、 処理命令を次のよ うに変更します。

<?xml-stylesheet href="new.xsl" type="text/xsl"?>

引数 説明

pbdom_pi_name PBDOM_PROCESSINGINSTRUCTION オブジェ ク ト の名前を指定

strName 名前と値の組み合わせの文字列名を指定

strValue 名前と値の組み合わせの文字列値を指定

PowerBuilder エクステンシ ョ ン リファレンス 333

Page 350: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_PROCESSINGINSTRUCTION

SetValue("extra_info","xalan") は、 extra_info の新しい名前と値の組み合わせを追加し、 処理命令を次のよ うに変更します。

<?xml-stylesheet href=new.xsl" type="text/xsl" extra_info "xalan" ?>

次に、 SetValue("extra_info_2","") は、 値と して空の文字列を指定して extra_info_2 の新しい名前と値の組み合わせを追加し、処理命令を次のよ うに変更します。

<?xml-stylesheet href=new.xsl" type="text/xsl" extra_info="xalan" extra_info_2="" ?>

解説 値が見つからない場合は、 指定さ れた組み合わせが処理命令データに追加さ れます。 PBDOM_PROCESSINGINSTRUCTION オブジェク トの名前と値の組み合わせを表示する順序は任意です。 この点では、PBDOM_PROCESSINGINSTRUCTION オブジェク トの名前と値の組み合わせは、 要素の属性に類似しています。 属性を決まった順序で並べるこ とはあ り ません。

処理命令のターゲッ ト名が xml で、XML 宣言であるこ とを示していると きは、 特殊な処理が行われます。 名前と値の組み合わせの名前の部分にデータ と して入力できる有効な命令は、 version、 encoding、および standalone です。 version 命令を指定してからでなければ、 処理命令を文書に追加するこ とはできません。

XML 仕様では、 version、 encoding、 standalone の順序で命令を指定するこ とを推奨しています。 この関数では、 XML 仕様に準拠するために、 たとえば次のよ うに入力データの順序を変更します。

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

334 PowerBuilder

Page 351: · PDF file(PBDOM : PowerBuilder Document Object Model

第 1 7 章 PBDOM_TEXT クラス

この章について この章では、 PBDOM_TEXT ク ラスについて説明します。

PBDOM_TEXT機能 PBDOM_TEXT ク ラスは、XML 文書内の DOM テキス ト ノードを

表します。 このク ラスは、 特に DOM テキス ト ノードの操作を目的と した一連のメ ソ ッ ドを使用して、PBDOM_CHARACTERDATAク ラスを拡張します。

PBDOM_TEXT ク ラスは PBDOM_CHARACTERDATA ク ラスから派生しています。 通常、 PBDOM_ELEMENT または PBDOM_ATTRIBUTE のテキスト 内容を表すと きに PBDOM_TEXT オブジェク ト を使用します。

空白文字

PBDOM_TEXT オブジェク トのテキス トには、 キャ リ ッジ リ ターン (CR)、 ラ インフ ィード (LF)、 タブ、 半角スペースなどの文字を含めるこ とができます。

メ ソ ッ ド PBDOM_OBJECT から継承されたメ ソ ッ ドの中には、 意味のある用途を持たず、 デフォル トの機能や重要でない機能しか実行しないものもあ り ます。 これらのメ ソ ッ ドについて、 次の表で説明します。

メ ソ ッ ド 戻り値

AddContent 現行の PBDOM_TEXTGetContent false

GetName 文字列 「#text」HasChildren false

InsertContent 現行の PBDOM_TEXTIsAncestorObjectOf false

RemoveContent false

PowerBuilder エクステンシ ョ ン リファレンス 335

Page 352: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_TEXT

PBDOM_TEXT ク ラスには、 次の重要なメ ソ ッ ドがあ り ます。

AppendCloneDetachEqualsGetObjectClassGetObjectClassStringGetOwnerDocumentObjectGetParentObjectGetTextGetTextNormalizeGetTextTrimSetParentObjectSetText

Append機能 Append メ ソ ッ ドは、 次のよ うに上書きされます。

• 構文 1 は、 入力された文字列を、 現行の PBDOM_TEXT オブジェク ト内にすでに格納されているテキス ト内容に追加します。

• 構文 2 は、 PBDOM_CHARACTERDATA オブジェク トのテキス トデータを、 現行の PBDOM_TEXT オブジェク ト内にすでに格納されているテキス ト内容に追加します。

構文

SetContent 現行の PBDOM_TEXTSetName false

メ ソ ッ ド 戻り値

構文 参照先

Append(string strAppend) Append 構文 1Append(pbdom_characterdata pbdom_characterdata_ref)

Append 構文 2

336 PowerBuilder

Page 353: · PDF file(PBDOM : PowerBuilder Document Object Model

第 17 章 PBDOM_TEXT クラス

Append 構文 1機能 入力された文字列を、 現行の PBDOM_TEXT オブジェク ト内にすでに

格納されているテキス ト内容に追加します。

構文 pbdom_text_name.Append(string strAppend)

戻り値 PBDOM_CHARACTERDATA。修正されて PBDOM_CHARACTERDATAオブジェク ト と して返された、 現行の PBDOM_TEXT です。

Append 構文 2機能 PBDOM_CHARACTERDATA オブジェク トのテキス ト データを、 現行

の PBDOM_TEXT オブジェク ト内にすでに格納されているテキス ト内容に追加します。

構文 pbdom_text_name.Append(pbdom_characterdata pbdom_characterdata_ref)

戻り値 PBDOM_CHARACTERDATA。修正されて PBDOM_CHARACTERDATAオブジェク ト と して返された、 現行の PBDOM_TEXT です。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_CHARACTERDATA が PBDOM_CHARACTERDATA から継承されたオブジェク トへの参照でない場合

解説 JDOM では、 TEXT ク ラ スの Append メ ソ ッ ド は定義さ れていません。PBDOM は、基本の PBDOM_CHARACTERDATA ク ラ スで Append メソ ッ ドを実装しています。 PBDOM_COMMENT オブジェク ト 、PBDOM_CDATA オブジェク ト 、および PBDOM_TEXT オブジェク ト はすべて PBDOM_CHARACTERDATA から継承されたオブジェク トであるので、 その内部テキス ト データを相互に追加できます。

引数 説明

pbdom_text_name PBDOM_TEXT オブジェク トの名前を指定

strAppend 現行の PBDOM_TEXT オブジェク トの既存テキス トに追加する文字列を指定

引数 説明

pbdom_text_name PBDOM_TEXT オブジェク トの名前を指定

pbdom_characterdata_ref 現行の PBDOM_TEXT オブジェク トの既存テキス ト に追加するテキス ト データが含まれている、参照される PBDOM_CHARACTERDATA オブジェク ト を指定

PowerBuilder エクステンシ ョ ン リファレンス 337

Page 354: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_TEXT

Clone機能 現行の PBDOM_TEXT オブジェク トのク ローンを作成して返します。

構文 pbdom_text_name.Clone(boolean bDeep)

戻り値 PBDOM_OBJECT。 戻り値は、 PBDOM_OBJECT と して返された現行の PBDOM_TEXT オブジェク トのク ローンです。

例 次の例では、 シ リ アラ イズする と次のよ うに表示される XML 文書を作成します。

<!DOCTYPE root[<!ELEMENT root (child_1, child_2)><!ELEMENT child_1 (#PCDATA)*><!ELEMENT child_2 (#PCDATA)*>]><root>

<child_1>text for child.</child_1><child_2>text for child.</child_2>

</root>

DTD の定義では、文書を次の構成にする必要があるこ とを示しています。

• 文書は root とい う名前のルート要素を含む

• root 要素は、 child_1 と child_2 とい う名前の 2 つの子要素を含む

• child_1 と child_2 はどちら もテキス トのみを含む

次のスク リプ トでは PBDOM_TEXT オブジェク ト を作成して、 そのオブジェク トにテキス ト値を代入します。次に、 child_1 要素を作成して、これに PBDOM_TEXT オブジェ ク ト を追加し ます。 child_1 の簡易クローンを作成して、 このク ローンに child_2 という名前を付けます。 テキス ト オブジェク トのク ローンを child_2 に追加してから、次のコードで両方の子オブジェク ト をルート要素に追加します。

PBDOM_BUILDER pbdom_buildrPBDOM_DOCUMENT pbdom_docPBDOM_ELEMENT pbdom_elem_child_1

引数 説明

pbdom_text_name PBDOM_TEXT オブジェク トの名前を指定 bDeep 詳細クローンを返すか、 簡易クローンを返すか

を指定する Boolean 型の値を指定。 指定する値は、 詳細クローンの場合は true、 簡易クローンの場合は false。 このパラ メータは無視される

338 PowerBuilder

Page 355: · PDF file(PBDOM : PowerBuilder Document Object Model

第 17 章 PBDOM_TEXT クラス

PBDOM_ELEMENT pbdom_elem_child_2PBDOM_TEXT pbdom_txtstring strXML = "<!DOCTYPE root [<!ELEMENT root (child_1, child_2)><!ELEMENT child_1 (#PCDATA)><!ELEMENT child_2 (#PCDATA)>]><root/>"

trypbdom_buildr = Create PBDOM_BUILDERpbdom_doc = pbdom_buildr.BuildFromString (strXML)

pbdom_txt = Create PBDOM_TEXTpbdom_txt.SetText ("text for child.")

pbdom_elem_child_1 = Create PBDOM_ELEMENTpbdom_elem_child_1.SetName ("child_1")pbdom_elem_child_1.AddContent (pbdom_txt)

pbdom_elem_child_2 = pbdom_elem_child_1.Clone(false)pbdom_elem_child_2.SetName("child_2")pbdom_elem_child_2.AddContent

(pbdom_txt.Clone(false))

pbdom_doc.GetRootElement().AddContent(pbdom_elem_child_1)

pbdom_doc.GetRootElement().AddContent(pbdom_elem_child_2)

pbdom_doc.SaveDocument ("sample.xml")

catch (PBDOM_EXCEPTION pbdom_except)MessageBox ("PBDOM_EXCEPTION",

pbdom_except.GetMessage())end try

解説 Clone メ ソ ッ ドは、 元の PBDOM_TEXT オブジェ ク ト のク ローンであり、 かつ独立したオブジェク トである、 新しい PBDOM_TEXT を作成します。 この関数のパラ メータ と して true または false のどちらを指定しても、 PBDOM_TEXT のク ローンは常に元のオブジェク ト と同じにな り ます。 その理由は、 PBDOM_TEXT には子 PBDOM_OBJECT のサブツ リーが含まれていないためです。

PBDOM_TEXT のク ローンには親はあ り ません。 ただし、 ク ローンは元の PBDOM_TEXT と同じ PBDOM_DOCUMENT に格納され、 元のPBDOM_TEXT オブジェク トがスタンドアロンのと きは、 ク ローンもスタンドアロンです。

PowerBuilder エクステンシ ョ ン リファレンス 339

Page 356: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_TEXT

Detach機能 PBDOM_TEXT オブジェク ト をその親 PBDOM_OBJECT から切り離し

ます。

構文 pbdom_text_name.Detach()

戻り値 PBDOM_OBJECT。親から切り 離された現行の PBDOM_TEXT オブジェクト です。

解説 現行の PBDOM_TEXT オブジェク トに親がない場合は、 何も実行されません。

Equals機能 現行の PBDOM_TEXT オブジェク ト と参照される PBDOM_OBJECT が

同じであるかど うかを調べます。

構文 pbdom_text_name.Equals(pbdom_object pbdom_object_ref)

戻り値 Boolean 型。 現行の PBDOM_TEXT オブジェク トが入力された PBDOM_OBJECT と同じである場合は true を返し、 それ以外の場合は false を返します。

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力された PBDOM_OBJECT が PBDOM_OBJECT から派生したオブジェク トへの参照でない場合

解説 参照される PBDOM_OBJECT も派生した PBDOM_TEXT オブジェク トであ り、 かつ現行の PBDOM_TEXT オブジェ ク ト と同じ DOM オブジェ ク ト を参照している場合にのみ、 true が返されます。 た とえば、別々に作成された 2 つの PBDOM_TEXT オブジェク トにまった く同じテキス トが含まれていても、 同じものとはいえません。

引数 説明

pbdom_text_name PBDOM_TEXT オブジェク トの名前を指定

引数 説明

pbdom_text_name PBDOM_TEXT オブジェク トの名前を指定

pbdom_object_ref 現行の PBDOM_TEXT オブジェク ト と同じであるかど う かを調べる PBDOM_OBJECT への参照を指定

340 PowerBuilder

Page 357: · PDF file(PBDOM : PowerBuilder Document Object Model

第 17 章 PBDOM_TEXT クラス

GetObjectClass機能 現行の PBDOM_OBJECT のク ラスを示す Long 型の整数値コードを返

します。

構文 pbdom_object_name.GetObjectClass()

戻り値 Long 型。 現行の PBDOM_OBJECT のク ラ スを示す Long 型の整数値コードを返します。 pbdom_object_name が PBDOM_TEXT オブジェ クトのと きは、 戻り値は 7 です。

関連項目 GetObjectClassString

GetObjectClassString機能 PBDOM_OBJECT のク ラスを文字列で返します。

構文 pbdom_object_name.GetObjectClassString()

戻り値 String 型。 現行の PBDOM_OBJECT のク ラスを示す文字列を返します。pbdom_object_name が PBDOM_TEXT オブジェ ク ト のと きは、 返される文字列は 「pbdom_text」 です。

関連項目 GetObjectClass

GetOwnerDocumentObject機能 現行の PBDOM_TEXT オブジェク ト を所有している

PBDOM_DOCUMENT を返します。

構文 pbdom_text_name.GetOwnerDocumentObject()

戻り値 PBDOM_OBJECT

解説 所有している PBDOM_DOCUMENT がない場合は、 null が返されます。

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

引数 説明

pbdom_object_name PBDOM_OBJECT の名前を指定

引数 説明

pbdom_text_name PBDOM_TEXT オブジェク トの名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 341

Page 358: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_TEXT

GetParentObject機能 現行の PBDOM_TEXT オブジェ ク ト の親 PBDOM_OBJECT を返しま

す。

構文 pbdom_text_name.GetParentObject()

戻り値 PBDOM_OBJECT

解説 親も PBDOM_TEXT から継承されたオブジェク トです。PBDOM_TEXTオブジェク トに親がない場合は、 null が返されます。

関連項目 SetParentObject

GetText機能 現行の PBDOM_TEXT オブジェ ク ト 内に格納されているテキス ト

データを取得します。

構文 pbdom_text_name.GetText()

戻り値 String 型。現行の PBDOM_TEXT オブジェク トのテキス ト内容を返します。

例 要素 <abc>MY TEXT</abc> があ り、 テキス ト ノード 「MY TEXT」 を表す PBDOM_TEXT オブジェ ク ト がある と き、 PBDOM_TEXT オブジェク トに対して GetText を呼び出すと、 文字列 「MY TEXT」 が返されます。

関連項目 GetTextNormalizeGetTextTrimSetText

引数 説明

pbdom_text_name PBDOM_TEXT オブジェク トの名前を指定

引数 説明

pbdom_text_name PBDOM_TEXT オブジェ ク ト の名前を指定

342 PowerBuilder

Page 359: · PDF file(PBDOM : PowerBuilder Document Object Model

第 17 章 PBDOM_TEXT クラス

GetTextNormalize機能 現行の PBDOM_TEXT オブジェ ク ト 内に格納されているテキス ト

データを、 テキス ト前後の空白文字をすべて削除し、 テキス ト内の空白文字を半角スペース 1 つに正規化して取得します。

構文 pbdom_text_name.GetTextNormalize()

戻り値 String 型

例 テキス ト ノード 「 MY TEXT 」 を表す PBDOM_TEXT オブジェク トがある と き、GetTextNormalize を呼び出すと、文字列 「MY TEXT」 が返されます。テキス ト前後の空白文字をすべて削除し、「MY」 と 「TEXT」の間の空白文字を半角スペース 1 つにします。

解説 このメ ソ ッ ドを使用する と、 現行の PBDOM_TEXT オブジェク ト内に格納されているテキス ト データを、 前後の空白をすべて削除し、 テキス ト内の空白を半角スペース 1 つに正規化して取得できます。 現行のPBDOM_TEXT オブジェク トにテキス ト値が含まれていない場合、 または含まれているのが空白文字だけである場合は、 空の文字列を返します。

関連項目 GetTextGetTextTrimSetText

GetTextTrim機能 現行の PBDOM_TEXT オブジェク トのテキス ト内容を、 前後の空白文

字をすべて削除して返します。

構文 pbdom_text_name.GetTextTrim()

戻り値 String 型

例 テキス ト ノード 「 MY TEXT 」 を表す PBDOM_TEXT オブジェクト がある と き、 GetTextNormalize を呼び出すと、 文字列 「MY TEXT」が返されます。前後の空白はすべて削除されます。 「MY」 と 「TEXT」 との間の空白はそのままです。

引数 説明

pbdom_text_name PBDOM_TEXT オブジェク トの名前を指定

引数 説明

pbdom_text_name PBDOM_TEXT オブジェク トの名前を指定

PowerBuilder エクステンシ ョ ン リファレンス 343

Page 360: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_TEXT

解説 このメ ソ ッ ドを使用する と、 現行の PBDOM_TEXT オブジェク ト内に格納されているテキス ト データを、 前後の空白がすべて削除して取得できます。 テキス ト内の空白はそのままです。 現行の PBDOM_TEXTオブジェク トにテキス ト値が含まれていない場合、 または含まれているのが空白文字だけである場合は、 空の文字列を返します。

関連項目 GetTextGetTextNormalizeSetText

SetParentObject機能 参照される PBDOM_OBJECT を現行の PBDOM_TEXT オブジェク トの

親と して設定します。

構文 pbdom_text_name.SetParentObject(pbdom_object pbdom_object_ref)

戻り値 PBDOM_OBJECT

Throws EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE ― 入力さ れた PBDOM_OBJECT が PBDOM_OBJECT から 派生したオブジェク ト への参照でない場合

EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PARENT ― 現行の PBDOM_TEXT オブジェク トにすでに親がある場合

EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OBJECT ― 入力されたPBDOM_OBJECT が、 PBDOM_TEXT ク ラス と適切な親子関係を持たないク ラスのオブジェク トである場合

EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT ― 入力さ れた PBDOM_OBJECT にユーザ定義名が必要であるが、名前が付いていない場合

解説 現行の PBDOM_TEXT の親と して設定する PBDOM_OBJECT は、現行のオブジェク ト と正当な親子関係を持っている必要があ り ます。 このよ う な親子関係がない場合は、 例外が送出されます。 PBDOM_TEXTオブジェ ク ト の親と して設定でき るのは、 PBDOM_ELEMENT オブジェク トだけです。

関連項目 GetParentObject

引数 説明

pbdom_text_name PBDOM_TEXT オブジェク トの名前を指定

pbdom_object_ref 現行の PBDOM_TEXT オブジェク トの親と して設定する PBDOM_OBJECT を指定

344 PowerBuilder

Page 361: · PDF file(PBDOM : PowerBuilder Document Object Model

第 17 章 PBDOM_TEXT クラス

SetText機能 入力された文字列を、 現行の PBDOM_TEXT オブジェク トのテキス ト

内容と して設定します。

構文 pbdom_text_name.SetText(strSet)

戻り値 String 型。 DTD を参照しない場合は、 空の文字列を返します。

関連項目 GetTextGetTextNormalizeGetTextTrim

引数 説明

pbdom_text_name PBDOM_TEXT オブジェク トの名前を指定

strSet PBDOM_TEXT のテキス ト と して設定する文字列を指定

PowerBuilder エクステンシ ョ ン リファレンス 345

Page 362: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM_TEXT

346 PowerBuilder

Page 363: · PDF file(PBDOM : PowerBuilder Document Object Model

第 1 8 章 PBDOM のまとめ

この章について この章では、 PBDOM 基本ク ラスのメ ソ ッ ド と、 継承ク ラスから提供される追加メ ソ ッ ドのク イ ッ ク リ ファレンスを記載しています。

PBDOM のクラスと メ ソ ッ ドのまとめ

PowerBuilder NonVisualObject から継承された PBDOM_OBJECTaddcontent ( pbdom_object pbdom_object_ref ) - pbdom_object を返すclone ( boolean bdeep ) - pbdom_object を返すdetach ( ) - pbdom_object を返すequals ( pbdom_object pbdom_object_ref ) - boolean 型の値を返すgetcontent ( ref pbdom_object pbdom_object_array[] ) - boolean 型の値を返すgetname ( ) - string 型の値を返すgetobjectclass ( ) - long 型の値を返すgetobjectclassstring ( ) - string 型の値を返すgetownerdocumentobject ( ) - pbdom_document を返すgetparentobject ( ) - pbdom_object を返すgettext ( ) - string 型の値を返すgettextnormalize ( ) - string 型の値を返すgettexttrim ( ) - string 型の値を返すhaschildren ( ) - boolean 型の値を返すinsertcontent ( pbdom_object pbdom_object_new, pbdom_object pbdom_object_ref ) - pbdom_object を返すisancestorobjectof ( pbdom_object pbdom_object_ref ) - boolean 型の値を返すremovecontent ( pbdom_object pbdom_object_ref ) - boolean 型の値を返すsetcontent ( pbdom_object pbdom_object_array[] ) - pbdom_object を返すsetname ( string strname ) - boolean 型の値を返すsetparentobject ( pbdom_object pbdom_object_ref ) - pbdom_object を返す

PowerBuilder エクステンシ ョ ン リファレンス 347

Page 364: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM のクラスと メ ソ ッ ドのまとめ

PBDOM_OBJECT から継承された PBDOM_ELEMENTaddcontent ( string strtext ) - pbdom_element を返すaddnamespacedeclaration ( string strnamespaceprefix, string strnamespaceuri ) - pbdom_element を返すgetattribute ( string strname ) - pbdom_attribute を返すgetattribute ( string strname, string strnamespaceprefix, string strnamespaceuri ) - pbdom_attribute を返すgetattributes ( ref pbdom_attribute pbdom_attribute_array[] ) - boolean 型の値を返すgetattributevalue ( string strattributename ) - string 型の値を返すgetattributevalue ( string strattributename, string strdefaultvalue ) - string 型の値を返すgetattributevalue ( string strattributename, string strnamespaceprefix, string strnamespaceuri ) - string 型の値を返すgetattributevalue ( string strattributename, string strnamespaceprefix, string strnamespaceuri,

string strdefaultvalue ) - string 型の値を返すgetchildelement ( string strelementname ) - pbdom_element を返すgetchildelement ( string strelementname, string strnamespaceprefix, string strnamespaceuri )

- pbdom_element を返すgetchildelements ( ref pbdom_element pbdom_element_array[] ) - boolean 型の値を返すgetchildelements ( string strelementname, ref pbdom_element pbdom_element_array[] ) - boolean 型の値を返すgetchildelements ( string strelementname, string strnamespaceprefix, string strnamespaceuri,

ref pbdom_element pbdom_element_array[] ) - boolean 型の値を返すgetnamespaceprefix ( ) - string 型の値を返すgetnamespaceuri ( ) - string 型の値を返すgetqualifiedname ( ) - string 型の値を返すhasattributes ( ) - boolean 型の値を返すhaschildelements ( ) - boolean 型の値を返すisrootelement ( ) - boolean 型の値を返すremoveattribute ( pbdom_attribute pbdom_attribute_ref ) - boolean 型の値を返すremoveattribute ( string strattributename ) - boolean 型の値を返すremoveattribute ( string strattributename, string strnamespaceprefix, string strnamespaceuri ) - boolean 型の値を返すremovechildelement ( string strelementname ) - boolean 型の値を返すremovechildelement ( string strelementname, string strnamespaceprefix, string strnamespaceuri ) - boolean 型の値を返すremovechildelements ( ) - boolean 型の値を返すremovechildelements ( string strelementname ) - boolean 型の値を返すremovechildelements ( string strelementname, string strnamespaceprefix, string strnamespaceuri ) - boolean 型の値を返すremovenamespacedeclaration ( string strnamespaceprefix, string strnamespaceuri ) - boolean 型の値を返すsetattribute ( pbdom_attribute pbdom_attribute_ref ) - pbdom_element を返すsetattribute ( string strname, string strvalue ) - pbdom_element を返すsetattribute ( string strname, string strvalue, string strnamespaceprefix, string strnamespaceuri,

boolean bverifynamespace ) - long 型の値を返すsetattributes ( pbdom_attribute pbdom_attribute_array[] ) - pbdom_element を返すsetdocument ( pbdom_object pbdom_document_ref ) - pbdom_element を返すsetnamespace ( string strnamespaceprefix, string strnamespaceuri, boolean bverifynamespace ) - long 型の値を返すsettext ( string strtext ) - pbdom_element を返す

348 PowerBuilder

Page 365: · PDF file(PBDOM : PowerBuilder Document Object Model

第 18 章 PBDOM のまとめ

PBDOM_OBJECT から継承された PBDOM_ATTRIBUTEgetbooleanvalue ( ) - boolean 型の値を返すgetdatetimevalue ( string strdateformat, string strtimeformat ) - datetime 型の値を返すgetdatevalue ( string strdateformat ) - date 型の値を返すgetdoublevalue ( ) - double 型の値を返すgetintvalue ( ) - integer 型の値を返すgetlongvalue ( ) - long 型の値を返すgetnamespaceprefix ( ) - string 型の値を返すgetnamespaceuri ( ) - string 型の値を返すgetownerelementobject ( ) - pbdom_element を返すgetqualifiedname ( ) - string 型の値を返すgetrealvalue ( ) - real 型の値を返すgettimevalue ( string strtimeformat ) - time 型の値を返すgetuintvalue ( ) - unsignedinteger 型の値を返すgetulongvalue ( ) - unsignedlong 型の値を返すsetbooleanvalue ( boolean boolvalue ) - pbdom_attribute を返すsetdatetimevalue ( datetime datetimevalue, string strdateformat, string strtimeformat ) - pbdom_attribute を返すsetdatevalue ( date datevalue, string strdateformat ) - pbdom_attribute を返すsetdoublevalue ( double doublevalue ) - pbdom_attribute を返すsetintvalue ( integer intvalue ) - pbdom_attribute を返すsetlongvalue ( long longvalue ) - pbdom_attribute を返すsetnamespace ( string strnamespaceprefix, string strnamespaceuri, boolean bverifynamespace ) - long 型の値を返すsetownerelementobject( pbdom_element pbdom_element_ref ) - pbdom_attribute を返すsetrealvalue ( real realvalue ) - pbdom_attribute を返すsettext ( string strtext ) - pbdom_attribute を返すsettimevalue ( time timevalue, string strtimeformat ) - pbdom_attribute を返すsetuintvalue ( unsignedinteger uintvalue ) - pbdom_attribute を返すsetulongvalue ( unsignedlong ulongvalue ) - pbdom_attribute を返す

PBDOM_OBJECT から継承された PBDOM_CHARACTERDATAappend ( pbdom_characterdata pbdom_characterdata_ref ) - pbdom_characterdata を返すappend ( string strappend ) - pbdom_characterdata を返すsettext ( string strtext ) - pbdom_characterdata を返す

PBDOM_CHARACTERDATA から継承された PBDOM_COMMENT追加メ ソ ッ ドはあ り ません。

PBDOM_CHARACTERDATA から継承された PBDOM_TEXT追加メ ソ ッ ドはあ り ません。

PBDOM_TEXT から継承された PBDOM_CDATA追加メ ソ ッ ドはあ り ません。

PowerBuilder エクステンシ ョ ン リファレンス 349

Page 366: · PDF file(PBDOM : PowerBuilder Document Object Model

PBDOM のクラスと メ ソ ッ ドのまとめ

PBDOM_OBJECT から継承された PBDOM_DOCTYPEgetinternalsubset ( ) - string 型の値を返すgetpublicid ( ) - string 型の値を返すgetsystemid ( ) - string 型の値を返すsetdocument ( pbdom_document pbdom_document_ref ) - pbdom_doctype を返すsetinternalsubset ( string strinternalsubset ) - pbdom_doctype を返すsetpublicid ( string strpublicid ) - pbdom_doctype を返すsetsystemid ( string strsystemid ) - pbdom_doctype を返す

PBDOM_OBJECT から継承された PBDOM_DOCUMENTdetachrootelement ( ) - pbdom_element を返すgetdoctype ( ) - pbdom_doctype を返すgetrootelement ( ) - pbdom_element を返すhasrootelement ( ) - boolean 型の値を返すnewdocument ( string strrootelementname ) - boolean 型の値を返すnewdocument ( string strrootelementnamespaceprefix, string strrootelementnamespaceuri,

string strrootelementname, string strdoctypepublicid, string strdoctypesystemid ) - boolean 型の値を返すsavedocument ( string strfilename ) - boolean 型の値を返すsetdoctype ( pbdom_doctype pbdom_doctype_ref ) - pbdom_document を返すsetrootelement ( pbdom_element pbdom_element_ref ) - pbdom_document を返す

PBDOM_OBJECT から継承された PBDOM_ENTITYREFERENCE追加メ ソ ッ ドはあ り ません。

PBDOM_OBJECT から継承された PBDOM_PROCESSINGINSTRUCTIONgetdata ( ) - string 型の値を返すgetnames ( ref string name_array[] ) - boolean 型の値を返すgettarget ( ) - string 型の値を返すgetvalue ( string strname ) - string 型の値を返すremovevalue ( string strname ) - boolean 型の値を返すsetdata ( string strdata ) - pbdom_processinginstruction を返すsetvalue ( string strname, string strvalue ) - pbdom_processinginstruction を返す

PowerBuilder NonVisualObject から継承された PBDOM_BUILDERbuildfromdatastore ( datastore datastore_ref ) - pbdom_document を返すbuildfromfile ( string strurl ) - pbdom_document を返すbuildfromstring ( string strxmlstream ) - pbdom_document を返すgetparseerrors( ref string strErrorMessageArray[]) - boolean 型の値を返す

PowerBuilder Exception から継承された PBDOM_EXCEPTIONgetexceptioncode ( ) - long 型の値を返す

350 PowerBuilder

Page 367: · PDF file(PBDOM : PowerBuilder Document Object Model

索引

AAddContent メ ソ ッ ド (PBDOM_ATTRIBUTE)

57AddContent メ ソ ッ ド (PBDOM_DOCUMENT)

194AddContent メ ソ ッ ド (PBDOM_ELEMENT) 218AddContent メ ソ ッ ド (PBDOM_OBJECT) 294AddNamespaceDeclaration メ ソ ッ ド

(PBDOM_ELEMENT) 222Append メ ソ ッ ド (PBDOM_CDATA) 117Append メ ソ ッ ド (PBDOM_COMMENT) 170,

171Append メ ソ ッ ド (PBDOM_TEXT) 137, 140,

336, 337

BBegin メ ソ ッ ド (EJBTransaction) 13BuildFromDataStore メ ソ ッ ド

(PBDOM_BUILDER) 108BuildFromFile メ ソ ッ ド (PBDOM_BUILDER)

109BuildFromString メ ソ ッ ド (PBDOM_BUILDER)

112

CClone メ ソ ッ ド (PBDOM_ATTRIBUTE) 58Clone メ ソ ッ ド (PBDOM_CDATA) 117, 128Clone メ ソ ッ ド (PBDOM_CHARACTERDATA)

141Clone メ ソ ッ ド (PBDOM_COMMENT) 172Clone メ ソ ッ ド (PBDOM_DOCTYPE) 182Clone メ ソ ッ ド (PBDOM_DOCUMENT) 197Clone メ ソ ッ ド (PBDOM_ELEMENT) 224Clone メ ソ ッ ド (PBDOM_OBJECT) 294

PowerBuilder エクステンシ ョ ン リファレンス

Clone メ ソ ッ ド(PBDOM_PROCESSINGINSTRUCTION)

320Clone メ ソ ッ ド (PBDOM_TEXT) 338Commit メ ソ ッ ド (EJBTransaction) 14ConnectToServer メ ソ ッ ド (EJBConnection) 8CreateInstance メ ソ ッ ド (SoapConnection) 34CreateJavaInstance メ ソ ッ ド (EJBConnection) 9CreateJavaInstance メ ソ ッ ド (JavaVM) 22CreateJavaVM メ ソ ッ ド (JavaVM) 19

DDetach メ ソ ッ ド (PBDOM_ATTRIBUTE) 59Detach メ ソ ッ ド (PBDOM_CDATA) 120Detach メ ソ ッ ド (PBDOM_CHARACTERDATA)

143Detach メ ソ ッ ド (PBDOM_COMMENT) 174Detach メ ソ ッ ド (PBDOM_DOCTYPE) 183Detach メ ソ ッ ド (PBDOM_ELEMENT) 225Detach メ ソ ッ ド (PBDOM_ENTITYREFERENCE)

130Detach メ ソ ッ ド (PBDOM_OBJECT) 295Detach メ ソ ッ ド

(PBDOM_PROCESSINGINSTRUCTION) 321

Detach メ ソ ッ ド (PBDOM_TEXT) 340DisconnectServer メ ソ ッ ド (EJBConnection) 10DynamicCast メ ソ ッ ド (JavaVM) 23DynamicCast メ ソ ッ ド (SoapConnection) 36

EEJB ク ラス

EJBConnection 7EJBTransaction 12JavaVM 19

EJBConnection ク ラス 7

351

Page 368: · PDF file(PBDOM : PowerBuilder Document Object Model

索引

EJBTransaction ク ラス 12Equals メ ソ ッ ド (PBDOM_ATTRIBUTE) 61Equals メ ソ ッ ド (PBDOM_CDATA) 120Equals メ ソ ッ ド (PBDOM_CHARACTERDATA) 145Equals メ ソ ッ ド (PBDOM_COMMENT) 175Equals メ ソ ッ ド (PBDOM_DOCTYPE) 183Equals メ ソ ッ ド (PBDOM_ELEMENT) 226Equals メ ソ ッ ド (PBDOM_ENTITYREFERENCE)

131Equals メ ソ ッ ド (PBDOM_OBJECT) 296Equals メ ソ ッ ド

(PBDOM_PROCESSINGINSTRUCTION) 322Equals メ ソ ッ ド (PBDOM_TEXT) 340EXCEPTION_DATA_CONVERSION 287EXCEPTION_HIERARCHY_ERROR 289EXCEPTION_ILLEGAL_PBOBJECT 286EXCEPTION_INAPPROPRIATE_USE_OF_PBDOM_OB

JECT 285EXCEPTION_INTERNAL_XML_ENGINE_ERROR

288EXCEPTION_INVALID_ARGUMENT 287EXCEPTION_INVALID_NAME 287EXCEPTION_INVALID_OPERATION 289EXCEPTION_INVALID_STRING 288EXCEPTION_MEMORY_ALLOCATION_FAILURE

288EXCEPTION_MULTIPLE_DOCTYPE 286EXCEPTION_MULTIPLE_ROOT_ELEMENT 285EXCEPTION_MULTIPLE_XMLDECL 288EXCEPTION_PBDOM_NOT_INITIALIZED 289EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_OW

NER 289EXCEPTION_PBDOM_OBJECT_ALREADY_HAS_PAR

ENT 286EXCEPTION_PBDOM_OBJECT_INVALID_FOR_USE

286EXCEPTION_USE_OF_UNNAMED_PBDOM_OBJECT

284EXCEPTION_WRONG_DOCUMENT_ERROR 285EXCEPTION_WRONG_PARENT_ERROR 287

FfindBusiness メ ソ ッ ド (UDDIProxy) 48findService メ ソ ッ ド (UDDIProxy) 50

352

GGetActualClass メ ソ ッ ド (JavaVM) 27GetAttribute メ ソ ッ ド (PBDOM_ELEMENT) 227GetAttributes メ ソ ッ ド (PBDOM_ELEMENT) 229GetAttributeValue メ ソ ッ ド (PBDOM_ELEMENT)

230GetBooleanValue メ ソ ッ ド (PBDOM_ATTRIBUTE)

62getBusinessDetail メ ソ ッ ド (UDDIProxy) 49GetChildElement メ ソ ッ ド (PBDOM_ELEMENT)

234GetChildElements メ ソ ッ ド (PBDOM_ELEMENT)

236GetContent メ ソ ッ ド (PBDOM_ATTRIBUTE) 64GetContent メ ソ ッ ド (PBDOM_DOCUMENT)

199GetContent メ ソ ッ ド (PBDOM_OBJECT) 297GetData メ ソ ッ ド

(PBDOM_PROCESSINGINSTRUCTION) 322

GetDateTimeValue メ ソ ッ ド(PBDOM_ATTRIBUTE) 65

GetDateValue メ ソ ッ ド (PBDOM_ATTRIBUTE) 64

GetDocType メ ソ ッ ド (PBDOM_DOCUMENT) 201

GetDocument メ ソ ッ ド (PBDOM_ATTRIBUTE) 71

GetDocument メ ソ ッ ド(PBDOM_CHARACTERDATA) 146

GetDocument メ ソ ッ ド (PBDOM_COMMENT) 176

GetDocument メ ソ ッ ド (PBDOM_DOCTYPE) 185

GetDocument メ ソ ッ ド (PBDOM_ELEMENT) 243

GetDocument メ ソ ッ ド(PBDOM_ENTITYREFERENCE) 132

GetDocument メ ソ ッ ド (PBDOM_OBJECT) 301GetDocument メ ソ ッ ド

(PBDOM_PROCESSINGINSTRUCTION) 325

GetDocument メ ソ ッ ド (PBDOM_TEXT) 341GetDoubleValue メ ソ ッ ド (PBDOM_ATTRIBUTE)

66GetEJBTransaction メ ソ ッ ド (EJBConnection) 10

PowerBuilder

Page 369: · PDF file(PBDOM : PowerBuilder Document Object Model

索引

GetElementsByTagName メ ソ ッ ド (PBDOM_DOCUMENT) 201

GetExceptionCode メ ソ ッ ド(PBDOM_EXCEPTION) 290

GetInterfaces メ ソ ッ ド (JavaVM) 28GetInternalSubset メ ソ ッ ド (PBDOM_DOCTYPE)

184GetIntValue メ ソ ッ ド (PBDOM_ATTRIBUTE)

66GetJavaClasspath メ ソ ッ ド (JavaVM) 29GetJavaVMVersion メ ソ ッ ド (JavaVM) 30GetLongValue メ ソ ッ ド (PBDOM_ATTRIBUTE)

67GetMessage メ ソ ッ ド (SoapException) 45GetName メ ソ ッ ド (PBDOM_ATTRIBUTE) 67GetName メ ソ ッ ド

(PBDOM_CHARACTERDATA) 149GetName メ ソ ッ ド (PBDOM_DOCTYPE) 184GetName メ ソ ッ ド (PBDOM_ELEMENT) 240GetName メ ソ ッ ド

(PBDOM_ENTITYREFERENCE) 131GetName メ ソ ッ ド (PBDOM_OBJECT) 297GetName メ ソ ッ ド

(PBDOM_PROCESSINGINSTRUCTION) 323

GetNames メ ソ ッ ド(PBDOM_PROCESSINGINSTRUCTION)

323GetNamespacePrefix メ ソ ッ ド

(PBDOM_ATTRIBUTE) 68GetNamespacePrefix メ ソ ッ ド

(PBDOM_ELEMENT) 241GetNamespaceUri メ ソ ッ ド

(PBDOM_ATTRIBUTE) 69GetNamespaceUri メ ソ ッ ド (PBDOM_ELEMENT)

241GetObjectClass メ ソ ッ ド (PBDOM_ATTRIBUTE)

69GetObjectClass メ ソ ッ ド (PBDOM_CDATA)

121GetObjectClass メ ソ ッ ド

(PBDOM_CHARACTERDATA) 150GetObjectClass メ ソ ッ ド (PBDOM_COMMENT)

175GetObjectClass メ ソ ッ ド (PBDOM_DOCTYPE)

184

PowerBuilder エクステンシ ョ ン リファレンス

GetObjectClass メ ソ ッ ド (PBDOM_DOCUMENT) 202

GetObjectClass メ ソ ッ ド (PBDOM_ELEMENT) 242

GetObjectClass メ ソ ッ ド(PBDOM_ENTITYREFERENCE) 132

GetObjectClass メ ソ ッ ド (PBDOM_OBJECT) 299GetObjectClass メ ソ ッ ド

(PBDOM_PROCESSINGINSTRUCTION) 324

GetObjectClass メ ソ ッ ド (PBDOM_TEXT) 341GetObjectClassString メ ソ ッ ド

(PBDOM_ATTRIBUTE) 70GetObjectClassString メ ソ ッ ド (PBDOM_CDATA)

121GetObjectClassString メ ソ ッ ド

(PBDOM_CHARACTERDATA) 150GetObjectClassString メ ソ ッ ド

(PBDOM_COMMENT) 176GetObjectClassString メ ソ ッ ド

(PBDOM_DOCTYPE) 185GetObjectClassString メ ソ ッ ド

(PBDOM_DOCUMENT) 203GetObjectClassString メ ソ ッ ド

(PBDOM_ELEMENT) 243GetObjectClassString メ ソ ッ ド

(PBDOM_ENTITYREFERENCE) 132GetObjectClassString メ ソ ッ ド (PBDOM_OBJECT)

300GetObjectClassString メ ソ ッ ド

(PBDOM_PROCESSINGINSTRUCTION) 324

GetObjectClassString メ ソ ッ ド (PBDOM_TEXT) 341

GetOwnerDocumentObject メ ソ ッ ド(PBDOM_CDATA) 121

GetOwnerElementObject メ ソ ッ ド(PBDOM_ATTRIBUTE) 72

GetParent メ ソ ッ ド (PBDOM_ATTRIBUTE) 55GetParentObject メ ソ ッ ド (PBDOM_CDATA)

122GetParentObject メ ソ ッ ド

(PBDOM_CHARACTERDATA) 153GetParentObject メ ソ ッ ド (PBDOM_COMMENT)

176

353

Page 370: · PDF file(PBDOM : PowerBuilder Document Object Model

索引

GetParentObject メ ソ ッ ド (PBDOM_DOCTYPE) 185GetParentObject メ ソ ッ ド (PBDOM_ELEMENT) 244GetParentObject メ ソ ッ ド

(PBDOM_ENTITYREFERENCE) 133GetParentObject メ ソ ッ ド (PBDOM_OBJECT) 301GetParentObject メ ソ ッ ド

(PBDOM_PROCESSINGINSTRUCTION) 325GetParentObject メ ソ ッ ド (PBDOM_TEXT) 342GetParseErrors メ ソ ッ ド (PBDOM_BUILDER) 113GetPublicID メ ソ ッ ド (PBDOM_DOCTYPE) 186GetQualifiedName メ ソ ッ ド (PBDOM_ATTRIBUTE)

73GetQualifiedName メ ソ ッ ド (PBDOM_ELEMENT)

245GetRealValue メ ソ ッ ド (PBDOM_ATTRIBUTE) 74GetStatus メ ソ ッ ド (EJBTransaction) 15GetSuperClass メ ソ ッ ド (JavaVM) 30GetSystemID メ ソ ッ ド (PBDOM_DOCTYPE) 187GetTarget メ ソ ッ ド

(PBDOM_PROCESSINGINSTRUCTION) 325GetText メ ソ ッ ド (PBDOM_ATTRIBUTE) 74GetText メ ソ ッ ド (PBDOM_CDATA) 122GetText メ ソ ッ ド (PBDOM_CHARACTERDATA)

155GetText メ ソ ッ ド (PBDOM_COMMENT) 177GetText メ ソ ッ ド (PBDOM_ELEMENT) 245GetText メ ソ ッ ド (PBDOM_OBJECT) 302GetText メ ソ ッ ド

(PBDOM_PROCESSINGINSTRUCTION) 326GetText メ ソ ッ ド (PBDOM_TEXT) 342GetTextNormalize メ ソ ッ ド (PBDOM_ATTRIBUTE)

77GetTextNormalize メ ソ ッ ド (PBDOM_CDATA) 123GetTextNormalize メ ソ ッ ド

(PBDOM_CHARACTERDATA) 156GetTextNormalize メ ソ ッ ド (PBDOM_COMMENT)

177GetTextNormalize メ ソ ッ ド (PBDOM_ELEMENT)

246GetTextNormalize メ ソ ッ ド (PBDOM_OBJECT) 305GetTextNormalize メ ソ ッ ド

(PBDOM_PROCESSINGINSTRUCTION) 327GetTextTrim メ ソ ッ ド (PBDOM_ATTRIBUTE) 78GetTextTrim メ ソ ッ ド (PBDOM_CDATA) 123GetTextTrim メ ソ ッ ド (PBDOM_CHARACTERDATA)

160

354

GetTextTrim メ ソ ッ ド (PBDOM_COMMENT) 178

GetTextTrim メ ソ ッ ド (PBDOM_ELEMENT) 247GetTextTrim メ ソ ッ ド (PBDOM_OBJECT) 307GetTextTrim メ ソ ッ ド

(PBDOM_PROCESSINGINSTRUCTION) 327

GetTextTrim メ ソ ッ ド (PBDOM_TEXT) 343GetTimeValue メ ソ ッ ド (PBDOM_ATTRIBUTE)

80GetUintValue メ ソ ッ ド (PBDOM_ATTRIBUTE)

81GetUlongValue メ ソ ッ ド (PBDOM_ATTRIBUTE)

81GetValue メ ソ ッ ド

(PBDOM_PROCESSINGINSTRUCTION) 328

HHasAttributes メ ソ ッ ド (PBDOM_ELEMENT)

247HasChildElements メ ソ ッ ド (PBDOM_ELEMENT)

248HasChildren メ ソ ッ ド (PBDOM_ATTRIBUTE) 81HasChildren メ ソ ッ ド

(PBDOM_CHARACTERDATA) 164HasChildren メ ソ ッ ド (PBDOM_DOCUMENT)

203HasChildren メ ソ ッ ド (PBDOM_ELEMENT) 249HasChildren メ ソ ッ ド (PBDOM_OBJECT) 310HasRootElement メ ソ ッ ド (PBDOM_DOCUMENT)

204

IInsertContent メ ソ ッ ド (PBDOM_ATTRIBUTE)

83InsertContent メ ソ ッ ド (PBDOM_DOCUMENT)

204InsertContent メ ソ ッ ド (PBDOM_ELEMENT) 250InsertContent メ ソ ッ ド (PBDOM_OBJECT) 311IsAncestorObjectOf メ ソ ッ ド

(PBDOM_ATTRIBUTE) 85

PowerBuilder

Page 371: · PDF file(PBDOM : PowerBuilder Document Object Model

索引

IsAncestorOf メ ソ ッ ド(PBDOM_CHARACTERDATA) 164

IsAncestorOf メ ソ ッ ド (PBDOM_DOCUMENT) 207

IsAncestorOf メ ソ ッ ド (PBDOM_ELEMENT) 252

IsAncestorOf メ ソ ッ ド (PBDOM_OBJECT) 312IsJavaVMLoaded メ ソ ッ ド (JavaVM) 31IsRootElement メ ソ ッ ド (PBDOM_ELEMENT)

253

JJavaVM ク ラス 19

LLookup メ ソ ッ ド (EJBConnection) 11

NNewDocument メ ソ ッ ド (PBDOM_DOCUMENT)

207

PPBDOM ク ラス

概要 53ク イ ッ ク リ ファレンス 347

PBDOM 例外 283PBDOM_ATTRIBUTE ク ラス 55PBDOM_BUILDER ク ラス 107PBDOM_CDATA ク ラス 115PBDOM_CHARACTERDATA ク ラス 135PBDOM_COMMENT ク ラス 169PBDOM_DOCTYPE ク ラス 181PBDOM_DOCUMENT ク ラス 193PBDOM_ELEMENT ク ラス 217PBDOM_ENTITYREFERENCE ク ラス 127PBDOM_EXCEPTION ク ラス 290PBDOM_OBJECT ク ラス 293

PowerBuilder エクステンシ ョ ン リファレンス

PBDOM_PROCESSINGINSTRUCTION ク ラス 319

PBDOM_TEXT ク ラス 335PBNI (.NET ターゲッ トでサポート しない) 2PowerBuilder エクステンシ ョ ン

.NET ターゲッ トでサポート しない 2概要 1使い方 2

RRemoveAttribute メ ソ ッ ド (PBDOM_ELEMENT)

253RemoveAuthentication メ ソ ッ ド (SoapConnection)

36RemoveChildElement メ ソ ッ ド

(PBDOM_ELEMENT) 256RemoveChildElements メ ソ ッ ド

(PBDOM_ELEMENT) 258RemoveContent メ ソ ッ ド (PBDOM_ATTRIBUTE)

86RemoveContent メ ソ ッ ド (PBDOM_DOCUMENT)

211RemoveContent メ ソ ッ ド (PBDOM_ELEMENT)

261RemoveContent メ ソ ッ ド (PBDOM_OBJECT)

314RemoveNamespaceDeclaration メ ソ ッ ド

(PBDOM_ELEMENT) 262RemoveValue メ ソ ッ ド

(PBDOM_PROCESSINGINSTRUCTION) 328

Rollback メ ソ ッ ド (EJBTransaction) 16

SSaveDocument メ ソ ッ ド (PBDOM_DOCUMENT)

212SaveDocumentIntoString メ ソ ッ ド

(PBDOM_DOCUMENT) 213SetAttribute メ ソ ッ ド (PBDOM_ELEMENT) 263SetAttributes メ ソ ッ ド (PBDOM_ELEMENT) 272SetBasicAuthentication メ ソ ッ ド (SoapConnection)

37

355

Page 372: · PDF file(PBDOM : PowerBuilder Document Object Model

索引

SetBooleanValue メ ソ ッ ド (PBDOM_ATTRIBUTE) 88

SetCertificateFile メ ソ ッ ド (SoapConnection) 38SetContent メ ソ ッ ド (PBDOM_ATTRIBUTE) 89SetContent メ ソ ッ ド (PBDOM_DOCUMENT) 213SetContent メ ソ ッ ド (PBDOM_ELEMENT) 275SetContent メ ソ ッ ド (PBDOM_OBJECT) 315SetData メ ソ ッ ド

(PBDOM_PROCESSINGINSTRUCTION) 329SetDateTimeValue メ ソ ッ ド (PBDOM_ATTRIBUTE)

93SetDateValue メ ソ ッ ド (PBDOM_ATTRIBUTE) 92SetDocType メ ソ ッ ド (PBDOM_DOCUMENT) 215SetDocument メ ソ ッ ド (PBDOM_DOCTYPE) 187SetDocument メ ソ ッ ド (PBDOM_ELEMENT) 278SetDoubleValue メ ソ ッ ド (PBDOM_ATTRIBUTE) 94setInquiryUrl メ ソ ッ ド (UDDIProxy) 47SetInternalSubset メ ソ ッ ド (PBDOM_DOCTYPE)

188SetIntValue メ ソ ッ ド (PBDOM_ATTRIBUTE) 94SetLongValue メ ソ ッ ド (PBDOM_ATTRIBUTE) 95SetMessage メ ソ ッ ド (SoapException) 45SetName メ ソ ッ ド (PBDOM_ATTRIBUTE) 95SetName メ ソ ッ ド (PBDOM_DOCTYPE) 189SetName メ ソ ッ ド (PBDOM_ELEMENT) 278SetName メ ソ ッ ド (PBDOM_ENTITYREFERENCE)

133SetName メ ソ ッ ド (PBDOM_OBJECT) 316SetName メ ソ ッ ド

(PBDOM_PROCESSINGINSTRUCTION) 330SetNamespace メ ソ ッ ド (PBDOM_ATTRIBUTE) 98SetNamespace メ ソ ッ ド (PBDOM_ELEMENT) 279setOption メ ソ ッ ド (UDDIProxy) 47SetOptions メ ソ ッ ド (SoapConnection) 38SetOwnerElementObject メ ソ ッ ド

(PBDOM_ATTRIBUTE) 101SetParent メ ソ ッ ド (PBDOM_ATTRIBUTE) 55SetParentObject メ ソ ッ ド (PBDOM_CDATA) 124SetParentObject メ ソ ッ ド

(PBDOM_CHARACTERDATA) 165SetParentObject メ ソ ッ ド (PBDOM_COMMENT)

179SetParentObject メ ソ ッ ド (PBDOM_DOCTYPE) 189SetParentObject メ ソ ッ ド (PBDOM_ELEMENT) 280SetParentObject メ ソ ッ ド

(PBDOM_ENTITYREFERENCE) 134

356

SetParentObject メ ソ ッ ド (PBDOM_OBJECT) 317

SetParentObject メ ソ ッ ド(PBDOM_PROCESSINGINSTRUCTION)

332SetParentObject メ ソ ッ ド (PBDOM_TEXT) 344SetProxyServer メ ソ ッ ド (SoapConnection) 41SetProxyServerOptions メ ソ ッ ド (SoapConnection)

42SetRealValue メ ソ ッ ド (PBDOM_ATTRIBUTE)

103SetRollbackOnly メ ソ ッ ド (EJBTransaction) 17SetRootElement メ ソ ッ ド (PBDOM_DOCUMENT)

216SetSoapLogFile メ ソ ッ ド (SoapConnection) 43SetSystemID メ ソ ッ ド (PBDOM_DOCTYPE) 191SetText メ ソ ッ ド (PBDOM_ATTRIBUTE) 103SetText メ ソ ッ ド (PBDOM_CDATA) 125SetText メ ソ ッ ド (PBDOM_CHARACTERDATA)

168SetText メ ソ ッ ド (PBDOM_COMMENT) 180SetText メ ソ ッ ド (PBDOM_ELEMENT) 281SetText メ ソ ッ ド (PBDOM_TEXT) 345SetTimeout メ ソ ッ ド (SoapConnection) 43SetTimeValue メ ソ ッ ド (PBDOM_ATTRIBUTE)

104SetTransactionTimeout メ ソ ッ ド (EJBTransaction)

18SetUintValue メ ソ ッ ド (PBDOM_ATTRIBUTE)

105SetUlongValue メ ソ ッ ド (PBDOM_ATTRIBUTE)

105SetValue メ ソ ッ ド

(PBDOM_PROCESSINGINSTRUCTION) 333

SoapConnection ク ラス 33SoapException ク ラス 45

UUDDIProxy ク ラス 46UseConnectionCache メ ソ ッ ド (SoapConnection) 44UseIntegratedWindowsAuthentication メ ソ ッ ド

(SoapConnection) 44

PowerBuilder

Page 373: · PDF file(PBDOM : PowerBuilder Document Object Model

索引

えエクステンシ ョ ン

概要 1サード パーティ、 検索 1ビジュアル、 使い方 3非ビジュアル、 使い方 3

くク ラス、 EJB

EJBConnection 7EJBTransaction 12JavaVM 19

ク ラス、 PBDOMPBDOM_ATTRIBUTE 55PBDOM_BUILDER 107PBDOM_CDATA 115PBDOM_CHARACTERDATA 135PBDOM_COMMENT 169PBDOM_DOCTYPE 181PBDOM_DOCUMENT 193PBDOM_ELEMENT 217PBDOM_ENTITYREFERENCE 127PBDOM_EXCEPTION 290PBDOM_OBJECT 293PBDOM_PROCESSINGINSTRUCTION 319PBDOM_TEXT 335概要 53ク イ ッ ク リ ファレンス 347

ク ラス、 SOAPSoapConnection 33SoapException 45

ク ラス、 UDDIProxy 46

し書体の表記規則 xiv

ひビジュアル エクステンシ ョ ン、 使い方 3非ビジュアル エクステンシ ョ ン、 使い方 3

PowerBuilder エクステンシ ョ ン リファレンス

表記規則 xiv

れ例外、 PBDOM 283

357

Page 374: · PDF file(PBDOM : PowerBuilder Document Object Model

索引

358

PowerBuilder