2009-09-16 7 views
0

Silverlightライブラリ内で、受信XMLをスキーマに対して検証する必要があります。スキーマは5つの相互依存する.xsdファイルで構成されています。メインファイルは他のすべてのファイルを参照するために "xs:import"を使用し、その中に他の参照があります。SilverlightライブラリにXSDスキーマファイルを含めるにはどうすればよいですか?

.xsdファイルをライブラリと一緒に配布する必要がある(つまり、よく知られている外部URLでホストされていない)と仮定すると、プロジェクトをどのように組み込むべきですか?

ビルドタイプ "リソース"を使用してライブラリプロジェクトに埋め込み、Application.GetResourceStream()とその "content"フラグを持つ相対URIを使用して個別にロードすることができます。しかし、私がこのアプローチを取った場合、5つのファイルの相互依存セットに対して検証できますか?スキーマパーサが相互依存関係を解決しようとするとどうなりますか?

ビルドタイプ "コンテンツ"にそれらを埋め込み、別の種類のURLでメインのものにアクセスする必要がありますか?

または???

まとめると、プロジェクトでこれらの5つの.xsdファイルを使用して、それらに対してXMLを検証できるようにするにはどうすればよいですか?

編集:Silverlightで検証することさえ可能かどうかは不明です。私はa related questionをスピンします。

答えて

2

は私が検証に関して、Silverlightの制限について多くを語ることはできませんが、質問自体は、より汎用的である - ので、私はその部分をお答えします - 1は、例えば、デスクトップ.N​​ETアプリケーションにリソースとしてファイルをする.xsd保存したい場合があります。

xs:importには、XmlSchemaSet.XmlResolverというプロパティでURIの解決を完全に制御できます。ただ、XmlResolverの独自のサブクラスを作成GetEntity()メソッドをオーバーライドし、GetResourceStream()、またはGetManifestResourceStream()を使用してそれを実装、または他のいずれかの方法あなたが好みます。

+0

これはきれいです - ありがとうございます! – Eric

関連する問題