私は、DBデータを会社の主な製品から任意のXML形式にエクスポートすることを目的としたソフトウェアパッケージを作成しています(他のアプリケーションとのインターフェイス用)。次に、任意のXMLデータファイルをデータベースに解析します。私はC/C ++で書いていますが、製品のデータベースは独自の形式でPervasiveBTRVファイルとして保存されています。
内部データ要素をXMLにマッピングできるマッピング形式を作成する必要があります。これにより、エクスポートパッケージにマッピングファイルが与えられた場合、データベースのコンテンツから目的のXML出力ファイルが作成されます。これを達成するために、どのような戦略またはツールを使用することをお勧めしますか?
私が検討したいくつかのオプション:
- 製品に共通のXMLエクスポートスキーマを考案し、XSLTファイルを記述してこの形式を任意のXMLファイルに変換します。
- 出力ファイルの構造を定義するXSDスキーマファイルを作成し、どのデータ項目がどの要素に含まれるかをパッケージに指示する一連の処理命令を設計します。
私は自分自身がXMLの使用の初心者だと思っています。私はXSLTとXPathに精通しており、スキーマの学習を開始していますが、この問題を解決するための明らかなツールが不足している可能性があります。
(更新、8:14p PDT:私が書いているパッケージは、他のアプリケーションによって消費されるデータのエクスポートで使用するために、汎用の外部インターフェイスモジュールにフックするように設計されています。標準的な使用では、データベースのサブセットが変更されたとき、またはが「ファイナライズ」されている場合、そのサブセットは他のアプリケーションが理解できる形式で自動的にエクスポートされます。外部インターフェイスモジュールを拡張して、これらの「ファイナライズされた」データ項目をXMLで出力できるようにしようとしています。
私の仕事は、他のシステムが期待するXML形式を指定する方法を定義することです。ターゲットスキーマはアプリケーション間で大きく異なる可能性があるため、可能なXMLスキーマの範囲を処理できるソリューションが必要です。また、各インターフェイスの構成/保守が簡単なソリューションも必要です。
私のコードを呼び出すコードは、データベースアイテムを一連のネストされたコンテナーとして扱い、ネストされた各レイヤーをフォーマットするためのフックを提供します。これらのフックは、<xsl:template>のmatch属性と非常によく似ているように見えます。これが、XSLTを可能な解決策と見なすきっかけになりました。)