Sukram: C# xsd als eingebettete Ressource verwenden

Hallo,

ich habe eine xsd als eingebettete Ressource in meinem Namespace.
Jetzt möchte ich diese benutzen um damit ein externes XML Dokument zu validieren.
Dazu benutze ich folgenden Code:

  
            string xmlFileName = "test.xml";  
            string xsdFileName =  "";  
  
            XmlReaderSettings settings = new XmlReaderSettings();  
            settings.ValidationType = ValidationType.Schema;  
            settings.Schemas.Add(null, xsdFileName);  
            XmlReader xmlReader = XmlReader.Create(new XmlTextReader(xmlFileName), settings);  
            try  
            {  
  
                XDocument xdoc = XDocument.Load(xmlReader);  
                MessageBox.Show(xdoc.ToString());  
            }  
            catch (XmlSchemaValidationException ex)  
            {  
                MessageBox.Show(ex.Message);  
            }

xsdFileName ist normalerweise dazu gedacht eine externe xsd einzubinden. Jetzt ist diese ja aber eingebettet und ich weiß nicht, wie ich das nun angeben soll.
System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("namespace.text.xsd")
gibt ja leider nur einen Stream zurück. Oder kann ich das auch irgendwie bei
settings.Schema.Add als Stream übergeben?

Gruß

Sukram

  1. Hallo,

    habe es selber gelöst:

      
                string xmlFileName = "test.xml";  
                System.IO.Stream xsdresource = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("Namespace.test.xsd");  
      
                XmlReaderSettings settings = new XmlReaderSettings();  
                settings.ValidationType = ValidationType.Schema;  
                settings.Schemas.Add(null, XmlReader.Create(xsdresource));  
                XmlReader xmlReader = XmlReader.Create(new XmlTextReader(xmlFileName), settings);  
                try  
                {  
      
                    XDocument xdoc = XDocument.Load(xmlReader);  
                    MessageBox.Show(xdoc.ToString());  
                }  
                catch (XmlSchemaValidationException ex)  
                {  
                    MessageBox.Show(ex.Message);  
                }