さまざまなスキーマを使用して XML で書かれた技術文書を扱ったり書いたりしています。私は、現在オフィスでワークフロー システムとして使用している、かなり単純な Windows フォーム アプリケーションを開発しました。プログラムは、チェックイン、チェックアウト、および検証プロセスを移動できます。このプログラムは、共通の「data.xml」ファイルを使用して読み取りと書き込みを行い、メモ、作成者、ステータス、およびその他のさまざまなものを追跡します。
ただし、現時点では、アプリケーションは、各プロジェクトにあるすべての xml ファイルと、プログラムのプロジェクト データを保持する data.xml ファイルを含む共有ドライブ上のフォルダー構造を指しています。したがって、誰かがファイルをチェックアウトすると、アプリはファイルをあるフォルダーから別のフォルダーに移動し (ユーザーには表示されません)、data.xml ファイルを更新して、UI の listViews を更新します。
もちろん、複数の人が同じプロジェクトで作業していて、クライアント アプリケーションが同時に data.xml ファイルに書き込もうとしない限り、これは問題なく機能します。
そこで、私がやりたいことは、システム全体をデータベースに移行することだと考えました。そのため、XML ファイルをフォルダーに保存する代わりに、SQL などのデータベースに保存します。今、私はデータベースの経験が全くないので、正しい方向に私をキックオフするためのポインターを望んでいました. 理想的には、データベース内の xml ドキュメントをクエリできるようにする必要があるため、Xquery を使用し、理想的にはすべてのファイルに対して一度にプロセスを実行できるようにしたいと考えています。たとえば、現時点ではプロジェクト全体で XSLT を実行できます。
私の質問は、この種の機能を保持するために、どのタイプの DB を検討する必要があるかということです。SQL のようなリレーショナルですか、それとも xml データベースですか?
注: xml ファイルは、それぞれ最大で数百 Kb です。