2011-08-09 16 views
0

スキーマ認識(XSD担保)のXmlDocumentにメモリスキーマフリーのXmlDocumentに変換}私は、このメソッドを記述しようとしている

入力ドキュメントは、変更が必要な高価なアプリケーション(.Net 2.0で書かれています)からのものです。出力は、XSD対応のXmlSerializerによって消費されます。

XmlSerializerを動作させるために、ルート要素にxmlns = "http:// wibble/wobble/wubble"修飾子が必要であることを示す単体テストがあります。型指定されていないXmlReaderは気にしません。 xmlns修飾子はどのように書かれていますか?

答えて

1

XmlAttributeOverridesを使用して名前空間を挿入する必要があります。このコレクションは、XmlSerializerコンストラクターに渡されます。 serilaizerを呼び出すには

XmlAttributeOverrides overrides = new XmlAttributeOverrides(); 

var rootNode = new XmlRootAttribute() 
{ 
    ElementName = "MyRootNodeName", 
    Namespace = "http://wibble/wobble/wubble" 
}; 

var newAttribute = new XmlAttributes(); 
newAttribute.XmlRoot = rootNode; 

overrides.Add(typeof(MyType), newAttribute); 

:ルート要素を上書きする

XmlSerializer serializer = new XmlSerializer(typeof(MyType), overrides); 

あなたはまたXmlAttributeOverridesを使用してXML内の他のノードを上書きすることができます。 XmlAttributeOverridesはあなたの友人です!

これが役に立ちます。

+0

それでした。埋め込まれたリソース読み込み(xsds)の束から私を救いました... – jasonnerothin

+0

心配しないでください - 私はあなたのwibble名前空間が好きです。 –

関連する問題