针对XSD验证XML的最高性能方法

Hin*_*nek 8 .net c# xml xsd xml-validation

我得到一个带有XML的字符串变量,并有一个XSD文件.我必须根据XSD文件验证字符串中的XML,并知道有多种方法(XmlDocument,XmlReader,...?).

验证后我只需要存储XML,所以我不需要它在XDocument或XmlDocument中.

如果我想要最快的表现,那该怎么办?

sis*_*sve 11

其他人已经提到了XmlReader进行验证的类,我不会进一步详细说明.

您的问题没有详细说明.您是否会针对多个xml文档重复进行此验证,还是只进行一次?我正在阅读一个场景,你只是在验证很多xml文档(来自第三方系统?)并存储它们以备将来使用.

我对性能搜索的贡献是使用一个XmlSchemaSet可以线程安全的编译,因此几个线程可以重用它而无需再次解析xsd文档.

var xmlSchema = XmlSchema.Read(stream, null);
var xmlSchemaSet = new XmlSchemaSet();
xmlSchemaSet.Add(xmlSchema);
xmlSchemaSet.Compile();

CachedSchemas.Add(name, xmlSchemaSet);
Run Code Online (Sandbox Code Playgroud)

  • 这个例子中的`CachedSchemas`是什么? (3认同)