---
title: "PXFファイル：ソフトウェアにおけるプラグアンドプレイの概念を応用したデータベース編集の活用事例"
date: "2011-08-09"
categories: 
  - "software"
description: ポータブルXML形式（PXF）が、データベースの編集と設計の効率をどのように向上させるのか、そして、XMLとSQLデータをビジネスアプリケーションにシームレスに統合することを可能にするのかについて、詳しく解説します。
---
Status: #blog

Tags: 

Categories: [development](/blog/ja/category/development.md) [database + sql](/blog/ja/category/database-sql.md)
# PXFファイル：ソフトウェアにおけるプラグアンドプレイの概念を応用したデータベース編集の活用事例

数週間前にお話ししたように、[ポータブルXML形式（PXF）](https://www.altova.com/ja/stylevision/authentic_eform_desktop.html)をご紹介しました。これは、StyleVisionで作成されたデザインに必要なすべての要素、例えばXMLスキーマやインスタンスドキュメント、SPSデザインファイル、XSLT、画像、その他の外部ファイルなどがすべて内包されたファイル形式です。エンドユーザーは、AuthenticでPXFファイルを開くだけで、すぐにXMLデータやデータベースデータの編集を開始できます。 

[![(画像は添付されていません。テキストのみの翻訳です。)](https://lh3.ggpht.com/-EYWr_SBTj64/Tjw7lF3a0qI/AAAAAAAAAHM/4hS3Bm8VYxQ/clip_image014_thumb%25255B1%25255D.png?imgmax=800 "clip_image014")](http://lh4.ggpht.com/-W7ZAW-A3A1U/Tjw7ktItbXI/AAAAAAAAAHI/fOOwGLvCodM/s1600-h/clip_image014%25255B4%25255D.png)

この記事では、架空の慈善団体「グリーン・プラネット基金」のために、ビジネスユーザーが寄付を記録し、新規ドナー情報を登録するための電子フォームを作成します。Altovaの新しいPXFファイル形式は、開発者とエンドユーザーの両方にとって非常に便利です。PXFファイルは、他のオフィス文書と同様に、転送、ダウンロード、コピー、保存が可能です。これにより、効率が向上し、エラーのない運用が可能になります。開発者は、複数のファイルを送受信したり、デザインやビジネスをサポートするためのサーバーアプリケーションを作成したりする必要がなくなりました。また、ビジネスユーザーは、重要なビジネス情報を迅速かつ確実に共有できます。これは、特に組織が分散している場合に重要です。なぜなら、ビジネスデータは、異なる場所間や、現場の従業員と本社間の電子メールを通じてやり取りされる必要があるからです。StyleVisionでデザインされた電子フォームを、Authenticでビジネスユーザーが編集できるPXFを使用することで、ビジネスデータの編集が非常に簡単になります。ほとんどの場合、そのビジネスデータは、PXFファイル内に埋め込まれたXMLドキュメントとして直接含まれていますが、PXFファイルをデータベースサーバーに接続し、データをデータベースに直接保存することも可能です。以下にその使用例を示します。

この例では、StyleVisionを使用して、架空の「グリーン・プラネット基金」向けの電子フォームを作成します。このフォームを使用することで、ビジネスユーザーは寄付を記録したり、新規の寄付者を登録したりすることができます。エンドユーザーは、Authentic [WYSIWYGエディター](https://www.altova.com/ja/authentic.html)と呼ばれる、高度なワープロのようなインターフェースを通じて、これらのフォームを操作します。このインターフェースを使用することで、エンドユーザーはXMLやデータベースの内容を簡単に表示、編集、更新することができます。StyleVisionで「ファイル」→「データベースから新規作成」をクリックすると、接続ウィザードが起動します。データベースの種類を選択するだけで、ソースの場所を指定するよう促されます。 

[![(画像ファイル名: clip_image001)](https://lh3.ggpht.com/--jKT2liOD_k/Tjw7e18n_rI/AAAAAAAAAFw/Ndts9-22PUY/clip_image001_thumb%25255B1%25255D.gif?imgmax=800 "clip_image001")](http://lh4.ggpht.com/-zsLKZuLLC5g/Tjw7er1VH7I/AAAAAAAAAFs/dn9KgVKrVfc/s1600-h/clip_image001%25255B4%25255D.gif) 

ここでは、マーケティング部門で使用されている「MARKETING006SQLEXPRESS」サーバー上の「DonorsDatabase」データベースを特定しました。このデータベースへの接続情報は、デザインファイルに自動的に保存され、Authentic上でビジネスユーザーがフォームにアクセスするたびに再確立されます。ビジネスユーザーがAuthenticフォームに入力した情報は、このデータベースに反映されます。 

[![(画像は添付されていません。テキストのみの翻訳です。)](https://lh5.ggpht.com/-I5IhjtJd3NI/Tjw7fn_S86I/AAAAAAAAAF4/_Yo7X_PybXs/clip_image002_thumb%25255B1%25255D.gif?imgmax=800 "clip_image002")](http://lh3.ggpht.com/-RKdQqTJATKo/Tjw7fQbBOOI/AAAAAAAAAF0/jVtTgHKDcOE/s1600-h/clip_image002%25255B4%25255D.gif) 

接続が確立されると、挿入するデータベースオブジェクトのダイアログボックスで、テーブル、データビュー、さらにはSQLのSELECT文を選択することができます。 

[![(画像ファイル名: clip_image003)](https://lh4.ggpht.com/-ADs0U5zltTM/Tjw7gNibz_I/AAAAAAAAAGA/M3pExZ7uJHA/clip_image003_thumb%25255B1%25255D.gif?imgmax=800 "clip_image003")](http://lh4.ggpht.com/-N1JaZsDiE80/Tjw7f13IRzI/AAAAAAAAAF8/ug8IDN7khMk/s1600-h/clip_image003%25255B4%25255D.gif) 

この例では、ドナーの肩書き、名、姓を連結し、各ドナーが寄付した合計金額を計算するSQLのSELECT文（以下）を追加しています。一度「SELECT文を追加」をクリックすると、上記のSQL SELECT文がStyleVisionのデザインで使用できるようになります。 

[![(画像は添付されていません。テキストのみの翻訳です。)](https://lh6.ggpht.com/-AU4MuFoCB1I/Tjw7g4wSPZI/AAAAAAAAAGI/7LVJOALjBJk/clip_image004_thumb%25255B1%25255D.gif?imgmax=800 "clip_image004")](http://lh6.ggpht.com/-YaRHyvwpp74/Tjw7gsAjXSI/AAAAAAAAAGE/6Av7pLg3Cto/s1600-h/clip_image004%25255B4%25255D.gif) 

当社のSQL文を作成するにあたり、Altova [DatabaseSpy](https://www.altova.com/ja/databasespy.html)という、複数のデータベースに対応したクエリ、設計、データベース比較ツールを使用しました。DatabaseSpyのSQLエディタからデータを様々な形式でエクスポートできますが、今回の例では、DatabaseSpyからSELECT文をコピーし、StyleVisionのSQL SELECTダイアログボックス内のウィンドウに貼り付けました。StyleVisionは、データベースの構造に基づいて一時的なXMLスキーマを生成し、スキーマウィンドウに表示します。ご留意ください。貢献者（Contributions）テーブルと提供者（Donors）テーブル、そして当社のSQL SELECT文は、すべてスキーマツリーに表示されます。 

[![(画像は添付されていません。テキストのみの翻訳です。)](https://lh6.ggpht.com/-M0Zpte_mFr4/Tjw7hDXpTTI/AAAAAAAAAGQ/osu0zMEpHLU/clip_image005_thumb%25255B1%25255D.gif?imgmax=800 "clip_image005")](http://lh5.ggpht.com/-q534_fkPkW0/Tjw7g7HF4eI/AAAAAAAAAGM/gaDBCjGZksw/s1600-h/clip_image005%25255B4%25255D.gif) 

この変換プロセス中に、StyleVisionは内部のXMLファイルを生成します。その中には、プレビュー用および生成されたXMLデータファイルのソースとなる編集不可なファイルと、データベースへの変更を書き込むことができる編集可能なXMLファイルが含まれます。データベース接続情報を確立し、保存したので、Green Planet Fundが新しい寄付者を登録し、寄付情報を記録するために使用する電子フォームの設計を開始できます。この例では、StyleVision上で2つの簡単なテーブルを作成しました。1つは寄付情報を記録するためのテーブル、もう1つは寄付者を検索し、追加するためのテーブルです。（ご注意ください。この例はあくまで説明用であり、実際のアプリケーションで通常使用するフィールドのほんの一部のみを示しています。また、機能も実際のプロジェクトで使用されるものよりもはるかに単純です。）デザインに関して、以下の操作を行いました。
* 新しい寄付者を登録するためのテーブルと、動的に更新される登録済み寄付者リストを含むデザインフラグメントを作成しました。
* チェックボックスを追加し、チェックを付けると、登録済み寄付者リストとデータ入力テーブルがデザインフラグメントから表示されるようにしました。
* 登録済み寄付者リストの「Authentic」プロパティを編集し、すべてのレコードを取得するようにしました。
* データ入力テーブルの「Authentic」プロパティを編集し、レコードを1つだけ取得するようにして、データ入力を容易にしました。
* XPathを使用して、登録済み寄付者リストのテーブルにおいて、各寄付者の敬称、名、姓を連結しました。この際、`normalize-space`関数を使用して、すべての空白を削除しました。
* 「Value Formatting」（下記参照）を使用して、寄付日をフォーマットしました。これにより、エンドユーザーは「Authentic」のカレンダーインターフェースを通じて、日付を編集できるようになります。

[![(画像は添付されていません。テキストのみの翻訳です。)](https://lh3.ggpht.com/-WBtD8wC1X8k/Tjw7hv0kNsI/AAAAAAAAAGY/yPdY_-h1B5Y/clip_image006_thumb%25255B1%25255D.gif?imgmax=800 "clip_image006")](http://lh6.ggpht.com/-2J43TgS-Wck/Tjw7hbQIDVI/AAAAAAAAAGU/R2vN3B-o47E/s1600-h/clip_image006%25255B4%25255D.gif) 

注意点として、デザイン要素「DonorList」は、DBタグで囲まれ、単一の要素として表現されています。このデザイン要素自体は、デザインの最下部に配置されています。 

[![(画像は添付されていません。テキストのみの翻訳です。)](https://lh6.ggpht.com/-zMJhaGKardQ/Tjw7ia5MEfI/AAAAAAAAAGg/qVcF1LzPIhA/clip_image008_thumb%25255B1%25255D.jpg?imgmax=800 "clip_image008")](http://lh3.ggpht.com/-5Hfw7IROWSs/Tjw7h-hfOUI/AAAAAAAAAGc/SPCBBIqtQf4/s1600-h/clip_image008%25255B4%25255D.jpg) 

「デザイン」タブの隣にあるタブをクリックすると、レポートが異なる形式で表示されます。ここでは、Authentic（正規品）形式での表示例を示しています。 

[![(画像が添付されています)](https://lh3.ggpht.com/-2oHQJRTtPpk/Tjw7i3vnx8I/AAAAAAAAAGs/zq975fjuWY0/clip_image010_thumb%25255B1%25255D.jpg?imgmax=800 "clip_image010")](http://lh3.ggpht.com/-Bp8eCYz6YkA/Tjw7ipq04jI/AAAAAAAAAGo/Px7_p09CpoA/s1600-h/clip_image010%25255B4%25255D.jpg) 

デザインはまだ標準的なSPS形式（greenplanetdonorsII.sps）のままです。今後は、PXF形式で保存できるようになり、クライアントにメールで送信し、受信後すぐに利用できるようになります。メニューバーの上部にある「ファイル」→「名前を付けて保存」を選択すると、デザインをSPS形式またはPXF形式で保存するかを選択できます。 

[![(画像ファイル名: clip_image011)](https://lh6.ggpht.com/-QGjpsv_YTb0/Tjw7jXLsw2I/AAAAAAAAAG0/bfwIq5kRYrY/clip_image011_thumb%25255B1%25255D.gif?imgmax=800 "clip_image011")](http://lh6.ggpht.com/-u1a_y36ZKtU/Tjw7jIIJvyI/AAAAAAAAAGw/wmFK7BjDTuk/s1600-h/clip_image011%25255B4%25255D.gif) 

PXFファイルとして保存する際に、PXFファイルに埋め込むファイルを選択するように促されます。StyleVisionのデザインに対応するすべてのファイルは、自動的にダイアログボックスに表示されます。 

[![(画像クリップ)](https://lh6.ggpht.com/-vpOBRt6UyJg/Tjw7j6ES3CI/AAAAAAAAAG8/MVs3FvpCPks/clip_image012_thumb%25255B1%25255D.gif?imgmax=800 "clip_image012")](http://lh6.ggpht.com/-3IrvEz_cueo/Tjw7jnXnA4I/AAAAAAAAAG4/dSqKcaCn3A8/s1600-h/clip_image012%25255B4%25255D.gif) 

ここでは、デザイン要素だけでなく、XSLTファイルもそれぞれ確認しています。これにより、エンドユーザーは、StyleVisionでデザインされたフォームから、これらの形式で直接、Authentic上で出力を作成できるようになります。また、必要に応じて、追加のファイルを含めることも可能です。今回のデザインでは他のファイルは不要ですが、この機能により、複数のファイルが必要なプロジェクトの移動や展開が大幅に容易になります。作成したPXFファイルを、今すぐクライアントに送信できます。すべてのプロジェクトファイルとデータベース接続情報がPXFに組み込まれているため、エンドユーザーがAuthenticでPXFを開くと、すぐにデータの閲覧、編集、入力を開始できます。Authenticで新しいレコードを作成するには、フォーム上の「貢献」テーブル内のいずれかのフィールドにカーソルを置き、ツールバーにある「行を追加」ボタンをクリックします。（または、メニューバーから「Authentic」→「行を追加」を選択することもできます。） 

[![(画像ファイル名: clip_image013)](https://lh5.ggpht.com/-Ayja1Iksf2w/Tjw7kRarnPI/AAAAAAAAAHE/7b_UXrTpD8Q/clip_image013_thumb%25255B1%25255D.gif?imgmax=800 "clip_image013")](http://lh6.ggpht.com/-JEQlq12xldY/Tjw7kA11yuI/AAAAAAAAAHA/_2zc5z0NG_E/s1600-h/clip_image013%25255B4%25255D.gif) 

現在、ビジネスユーザーは以下の情報を入力できます。（新しいデータは太字で表示されます）… 

[![(画像は添付されていません。テキストのみの翻訳です。)](https://lh3.ggpht.com/-EYWr_SBTj64/Tjw7lF3a0qI/AAAAAAAAAHM/4hS3Bm8VYxQ/clip_image014_thumb%25255B1%25255D.png?imgmax=800 "clip_image014")](http://lh4.ggpht.com/-W7ZAW-A3A1U/Tjw7ktItbXI/AAAAAAAAAHI/fOOwGLvCodM/s1600-h/clip_image014%25255B4%25255D.png) 

...そして、新たな寄付者の方々。 

[![(画像は添付されていません。テキストのみの翻訳です。)](https://lh5.ggpht.com/-mTCdNUilMJI/Tjw7l-G9cnI/AAAAAAAAAHU/DfWjVK0EzCw/clip_image015_thumb%25255B1%25255D.gif?imgmax=800 "clip_image015")](http://lh3.ggpht.com/-4DlCOz_rB0w/Tjw7lVIVLjI/AAAAAAAAAHQ/y50yklmfJLw/s1600-h/clip_image015%25255B4%25255D.gif) 

SQL Serverデータベースでは、ドナーIDは自動的に生成される項目です。ユーザーがメニューバーから「ファイル」→「保存」をクリックすると、新しい情報がデータベースに登録され、データベースがID番号を生成します。その後、新しい情報がフォーム内の他のテーブルに反映されます。（上記のように、データはリアルタイムで反映されます。）編集や追加も、すぐにデータベースに書き込まれます。以下に示すSQL Serverデータベースのビューでは、先ほど「Authentic」フォームに追加したエドワードとジュリー・ジェイに、ドナーID「18」が割り当てられていることが確認できます。 

[![(画像ファイル名: clip_image017)](https://lh3.ggpht.com/-5HjV2YQ5Y1Y/Tjw7mWtNNVI/AAAAAAAAAHg/Pxc9XKS0jj0/clip_image017_thumb%25255B2%25255D.png?imgmax=800 "clip_image017")](http://lh3.ggpht.com/-EQRAkypnY1k/Tjw7mBLKEWI/AAAAAAAAAHY/-J7C4nwoa-U/s1600-h/clip_image017%25255B5%25255D.png) 

ここでは記載していませんが、このフォームは、ユーザーが少なくとも姓と名を入力せずに新しい提供者を保存しようとした場合に、エラーメッセージを表示するように設計できます。これは、Authenticプロパティの追加検証項目でXPathを使用するか、SQL Serverデータベースに制約を作成することで実現できます。この事例は、インタラクティブなフォームを簡単に作成・展開できることを示すために設計されました。StyleVisionで設計された電子フォームは、常にXMLとデータベースの内容を更新する優れた方法であり、PXFファイルを使用することで、それらのフォームをより簡単に転送および展開できます。




