0

私は、DBデータを会社の主な製品から任意のXML形式にエクスポートすることを目的としたソフトウェアパッケージを作成しています(他のアプリケーションとのインターフェイス用)。次に、任意のXMLデータファイルをデータベースに解析します。私はC/C ++で書いていますが、製品のデータベースは独自の形式でPervasiveBTRVファイルとして保存されています。

内部データ要素をXMLにマッピングできるマッピング形式を作成する必要があります。これにより、エクスポートパッケージにマッピングファイルが与えられた場合、データベースのコンテンツから目的のXML出力ファイルが作成されます。これを達成するために、どのような戦略またはツールを使用することをお勧めしますか?

私が検討したいくつかのオプション:

  1. 製品に共通のXMLエクスポートスキーマを考案し、XSLTファイルを記述してこの形式を任意のXMLファイルに変換します。
  2. 出力ファイルの構造を定義するXSDスキーマファイルを作成し、どのデータ項目がどの要素に含まれるかをパッケージに指示する一連の処理命令を設計します。

私は自分自身がXMLの使用の初心者だと思っています。私はXSLTとXPathに精通しており、スキーマの学習を開始していますが、この問題を解決するための明らかなツールが不足している可能性があります。

更新、8:14p PDT:私が書いているパッケージは、他のアプリケーションによって消費されるデータのエクスポートで使用するために、汎用の外部インターフェイスモジュールにフックするように設計されています。標準的な使用では、データベースのサブセットが変更されたとき、またはが「ファイナライズ」されている場合、そのサブセットは他のアプリケーションが理解できる形式で自動的にエクスポートされます。外部インターフェイスモジュールを拡張して、これらの「ファイナライズされた」データ項目をXMLで出力できるようにしようとしています。

私の仕事は、他のシステムが期待するXML形式を指定する方法を定義することです。ターゲットスキーマはアプリケーション間で大きく異なる可能性があるため、可能なXMLスキーマの範囲を処理できるソリューションが必要です。また、各インターフェイスの構成/保守が簡単なソリューションも必要です。

私のコードを呼び出すコードは、データベースアイテムを一連のネストされたコンテナーとして扱い、ネストされた各レイヤーをフォーマットするためのフックを提供します。これらのフックは、<xsl:template>のmatch属性と非常によく似ているように見えます。これが、XSLTを可能な解決策と見なすきっかけになりました。)

4

1 に答える 1

0

データベースをXMLファイルに出力し、XSLTを使用して、変換ごとに異なるXSLTスタイルシートを使用して、相手が必要とする任意のXML形式に変換することをお勧めします。そうすれば、さまざまなアプリケーションとインターフェイスするためにXSLTファイルを変更するだけで済みます。

スキーマ対応プロセッサまたはAltovaXMLSpyなどのツールを使用している場合は、データベースのXMLファイルのスキーマを作成することをお勧めします。それはあなたにたくさんの髪を節約します。相手のXMLが複雑な場合は、そのためのスキーマも作成します。

スキーマの利点は、ファイルの検証と構造の理解の向上に加えて、XMLSpyのようなツールが自動的にフィールドを支援したり、XPathを支援したりすることです。さらに、MapForceのようなツールは、2つのスキーマを提供する場合(まだ試していません)、XSLTを作成します。

于 2010-09-08T14:08:54.600 に答える