こんにちはみんな:私は自分のデータ、実際にはドメインモデル構造全体を正式なxmlファイルにエクスポートする必要があります。xmlスキーマを.NETオブジェクトモデルにマップするために使用できるビジュアルツールを知っている人はいますか?
4 に答える
オブジェクトをxmlにエクスポートする最も簡単な方法は、各クラスに<Serializalbe>
属性をマークすることです。次に、を呼び出しますXmlSerializer.Serialize()
。
を使用して、xmlをオブジェクトにインポートして戻すこともできますXmlSerializer.Deserialize()
。
スキーマが必要な場合は、xsd.exeを使用して、次のいずれかを使用してスキーマを生成できます。
- クラスライブラリ自体:
xsd.exe myClassLibrary.dll
- XmlSerializer.Deserialize()の呼び出しによって生成されたxmlファイル:
xsd.exe myFile.xml
詳細については、 xsd.exeおよびXmlSerializerのドキュメントを参照してください。
.NETFrameworkでこのようなシナリオがサポートされていないことを私は知っています。
私はリフレクションを調べ始め、すべてのタイプとそのメンバーをループして、対応する説明をXMLで出力します。
他の人は、ビジュアル スタジオでの XSD サポートを指摘しています。これには視覚的なデザイナーがありますが、クラスにマップされませんが、厳密に型指定されたオブジェクトを作成できます。
XMLSerialization はいくつかの場合に優れています: 1) データ転送 (Web サービス) 2) プロトタイプの時間を節約するため。永続化メカニズム (永続ストレージ) としてオブジェクトを直接 XML シリアル化することは強くお勧めしません。スキーマを変更する必要がある場合、それは苦痛になります。はい、理論的な解決策があります。実際に簡単に機能するのを見たことはありません。私はクイックシリアライゼーションソリューションを維持(および再設計)することに多くの苦痛を感じており、これについて強く感じています:)
問題は、なぜドメイン モデルをエクスポートするのかということです。これは単なるエクスポート機能ですか? もしそうなら、シリアル化はおそらく素晴らしいです。これを行うための視覚的なツールが見つからない場合があります。しかし、通常、クラスの属性を使用して、形式的できれいな XML を作成するのは簡単です。
逆の方法は簡単です。xsd.exe を使用して、XSD スキーマから .Net データ バインド クラス モデルを生成できます。
しかし、.Net で任意のオブジェクト モデルを取得し、それを XML にシリアル化することは、それが可能かどうかさえわかりません。一部の型は、XML で表現できるものよりも複雑になります。したがって、XML 側から始める必要があるようです。