ピースペース

IncludeがあるXML SchemaをXSD.EXEでクラスに変換するときのメモ

leave a comment »

システムが保持するデータのエクスポートにXMLSchemaが指定される
スキーマはけっこう大きな規模でスキーマA、B、Cにわかれていて
さらにスキーマA、B、Cはそれぞれ、共通で使用するスキーマXをIncludeしている

これらのスキーマを個別にXSD.EXEでクラス生成を行うと
スキーマA、B、Cに対応するクラス定義ファイルが作成される
これらのファイルで、スキーマXで定義されている要素に対応するクラスが重複する
このクラスファイルをプロジェクトに追加してそのままビルドすると
大量のエラーが報告される

対処方法としては

  1. スキーマA、B、C、XをまとめてXSD.EXEに食わせてひとつのクラスファイルにまとめて生成させる
  2. スキーマA、B、C、Xから個々に生成するクラスファイルに個別のNameSpaceを与える
  3. 生成された個別ファイルから重複するクラスを手作業で削除する

で、今回は3.手作業で削除する。を選択
XML Schemaについてはほとんど理解していない
このクラス生成機能のおかげで
とりあえずは、出力データの編集処理中はXMLを意識せずに済むようになる
と期待したい

本当はなれているDataSetの編集の方が処理コードが書きやすいのだが
XSD.EXEのDataSet変換でエラーがでて生成できず
どんなスキーマでもDataSetで表現できるわけではなさそう
(頑張ればできそうな気もするが、少なくともXSD.EXEには限界があるのだろう)

今後、システム間のデータ移動でXML Schemaが規定されることが多くなるだろう
知らないことも多いが、ここは少し時間を投資しておこう

Written by nasu38yen

2008年12月3日 @ 12:42 AM

カテゴリー: 未分類

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。