2009-12-10 41 views
4

現在,我們將靜態代碼添加到XML模式文件中。但是現在我們想使嵌入該文件在C中嵌入xsd文件#

代碼現在:

XmlTextReader reader = new XmlTextReader("schema.xsd"); 
XmlSchema schema = XMLSchema.Read(xReader, new ValidationEventHandler(ValidationEventHandler)); 

但現在我想將它嵌入在種源文件。所以我該怎麼做。

XmlTextReader reader = new XmlTextReader(Resouces.Schema); 
XmlSchema schema = XMLSchema.Read(xReader, new ValidationEventHandler(ValidationEventHandler)); 

這不是方法。

+0

這似乎工作。但是我在這裏介紹一些不好的嗎? StringReader xsdFile = new StringReader(Resources.Schema.ToString()); XmlTextReader xReader = new XmlTextReader(xsdFile); – Kristoffer 2009-12-10 12:40:01

回答

5
// Get the assembly that contains the embedded schema 
var assembly = Assembly.GetExecutingAssembly(); 
using (var stream = assembly.GetManifestResourceStream("namespace.schema.xsd")) 
using (var reader = XmlReader.Create(stream)) 
{ 
    XmlSchema schema = XMLSchema.Read(
     reader, 
     new ValidationEventHandler(ValidationEventHandler)); 
} 
0

用途:

Stream xsdStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("schema.xsd"); 
1

如果你有一個單一的文件,只需將其解壓縮(GetManifestResourceStream),並直接使用。如果你有多個相關文件,你需要編寫一個XmlResolver。我在某處有一個基於resx的解析程序...然後將其設置爲XmlResolver或​​,並在致電XmlReader.Create時傳入您的​​。