Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从C#中的字符串XSD获取XmlSchema对象?_C#_Xml_String_Xsd - Fatal编程技术网

如何从C#中的字符串XSD获取XmlSchema对象?

如何从C#中的字符串XSD获取XmlSchema对象?,c#,xml,string,xsd,C#,Xml,String,Xsd,如何从包含所有XSD内容的大字符串中获取XmlSchema对象?您可以使用: Read方法是静态的。所以更好地利用 XmlSchema schema = XmlSchema.Read( schemaReader, (sender, args) => { // HANDLE VALIDATION FAILED });

如何从包含所有XSD内容的大字符串中获取XmlSchema对象?

您可以使用:


Read方法是静态的。所以更好地利用

XmlSchema schema = XmlSchema.Read(
    schemaReader, (sender, args) =>
    {
         // HANDLE VALIDATION FAILED
    });                                                                        

确切地说,当您尝试使用此模式验证xml时,如果内容具有include标记,那么它将失败,因为您必须首先添加所有include,然后添加最父xsd,而在使用URI时则不是这样。谢谢。@eomeroff您如何添加这些内容?有些代码可能很棒:)。实例od架构不包含读取方法
XmlSchema schema = XmlSchema.Read(
    schemaReader, (sender, args) =>
    {
         // HANDLE VALIDATION FAILED
    });                                                                        
string xsdContent = "...";
string xmlContent = "...";

XmlSchemaSet schema;
XDocument xmlDoc;
using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(xsdContent)))
{
    var xsc = XmlSchema.Read(ms, (o, e) =>
    {
        Error.SetWarning($"XML Schema error: {e.Message}");
    });
    schema = new XmlSchemaSet();
    schema.Add(xsc);
    xmlDoc = XDocument.Parse(xmlContent, LoadOptions.SetLineInfo);
}

xmlDoc.Validate(schema, (o, e) =>
{
    // handle validation errors
});