如何从C#中的字符串XSD获取XmlSchema对象?
如何从包含所有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 });
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
});