我正在編寫一個解析Xml文件的應用程序。我有我使用嘗試反序列化之前驗證XML的模式(.xsd)文件:將(嵌入式資源)架構添加到XmlReaderSettings而不是文件名?
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add(null, "./xml/schemas/myschema.xsd");
settings.ValidationType = ValidationType.Schema;
XmlReader reader = XmlReader.Create(xmlFile, settings);
XmlDocument document = new XmlDocument();
document.Load(reader);
ValidationEventHandler eventHandler = new ValidationEventHandler(settings_ValidationEventHandler);
document.Validate(eventHandler);
注意,參數*/XML /模式/ myschema.xsd」是路徑。 xsd相對於程序執行
我不想使用文件名/路徑,而是我寧願編譯.xsd文件作爲我的項目中的嵌入式資源(我已經添加了.xsd文件並將Build行動到嵌入式資源)
我的問題是....如何將嵌入式資源架構添加到XmlReaderSettings架構列表?有4重載的方法settings.Schemas.Add但它們都沒有將嵌入資源作爲參數。他們都採取模式文件的路徑。
我以前使用嵌入式資源來動態設置標籤圖像,所以我對使用嵌入式資源有些熟悉。看着我的其他代碼,它看起來像什麼,我終於結束了是流包含內容:
System.Reflection.Assembly myAssembly = System.Reflection.Assembly.GetExecutingAssembly();
Stream myStream = myAssembly.GetManifestResourceStream(resourceName);
我假設,嵌入式的.xsd也將作爲流所以這縮小閱讀下來我的問題了一下。當我引用包含模式的流而不是文件名時,如何將模式添加到XmlReaderSettings?
不同於論壇的網站,我們不不要使用「謝謝」或「任何幫助表示讚賞」,或在[所有]上簽名。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts)。 –
好的沒問題。 –