XML データバインドウィザードが生成するコードの使い方
ウィザードがインターフェースと実装クラスのセットを生成すると,これらを使用して,このウィザードに提供したドキュメントまたはスキーマの構造に一致する XML ドキュメントを操作できます。組み込みの XML コンポーネントだけを使用する場合と同様に,出発点はツールパレットの Internet カテゴリにある Xml.XMLDoc.TXMLDocument コンポーネントです。
XML ドキュメントを操作する手順は次のとおりです。
- XML ドキュメントのルートノードのインターフェースを取得します。その方法は以下の 3 つです。
メソッド | 説明 |
---|---|
フォームまたはデータモジュール内に TXMLDocument コンポーネントを配置します。FileName プロパティを設定して,TXMLDocument を XML ドキュメントにバインドします。 |
(または,実行時に XML プロパティを設定して,XML の文字列を使用することができます)。次に,コード内で,XML ドキュメントのルートノードのインターフェースを取得するためにウィザードが作成したグローバル関数を呼び出します。たとえば,XML ドキュメントのルート要素がタグ <StockList> であった場合,デフォルトでは,IXMLStockListType インターフェースを返す関数 Getstocklist をウィザードが生成します。 var
StockList: IXMLStockListType;
begin
XMLDocument1.FileName := 'Stocks.xml';
StockList := Getstocklist(XMLDocument1);
XMLDocument1->FileName := "Stocks.xml";
_di_IStockListType StockList = GetStockListType(XMLDocument1);
|
生成された Load... 関数の呼び出し |
生成された Load... 関数を呼び出して,TXMLDocument インスタンスの作成とバインド,およびそのインターフェースの取得をすべて 1 つのステップで行います。たとえば,上と同じ XML ドキュメントを使用すると次のようになります。 var
StockList: IXMLStockListType;
begin
StockList := Loadstocklist('Stocks.xml');
_di_IStockListType StockList = LoadStockListType("Stocks.xml");
|
生成された New... 関数の呼び出し |
アプリケーション内のすべてのデータを作成したい場合に,生成された New... 関数を呼び出して空のドキュメントの TXMLDocument インスタンスを作成します。 var
StockList: IXMLStockListType;
begin
StockList := Newstocklist;
_di_IStockListType StockList = NewStockListType();
|
- このインターフェースには,ドキュメントのルート要素のサブノードに対応するプロパティ,およびそのルート要素の属性に対応するプロパティがあります。これらを使用すると,XML ドキュメントの階層の横断,ドキュメント内のデータの変更などができます。
- このウィザードが生成したインターフェースを使って行った変更を保存するには,TXMLDocument コンポーネントの SaveToFile メソッドを呼び出すか,またはその XML プロパティを読み出します。
ヒント: TXMLDocument オブジェクトの Options プロパティが doAutoSave を含むように設定する場合は,SaveToFile メソッドを明示的に呼び出す必要はありません。