繁体   English   中英

XML的XSD验证有多贵?

[英]How expensive is a XSD validation of XML?

我想在C#中使用xsd架构验证大型xml文件。 对于1000行xml代码验证的文件需要很长时间。

是否有任何提示和技巧可以更快地验证?

你能发布一些代码示例,它们可以通过大型xml验证更快地运行吗?

编辑1:我使用XSD验证这样验证XML

编辑2:对于大文件需要10秒以上。 我需要验证在一秒钟内非常快。

编辑3:文件大小大于10 Mb

编辑4:我也在考虑这种方法,我想将xml文件存储在数据库和xsd中。

您当前正在将整个文档加载到内存中, 无论验证如何 ,这都是昂贵的。 更好的选择是通过阅读器解析,即如MSDN所示 该页面上示例的关键点:

  • 它从不加载整个文档
  • while(reader.Reader())只是枚举节点级别的整个文件
  • 验证是通过XmlReaderSettings启用的

期望使用验证解析文档所花费的时间大约是没有验证的解析时间的两倍是合理的。 但是这个比例会有很大差异,具体取决于你的架构。 例如,如果每个属性都由正则表达式控制,并且正则表达式很复杂,那么验证的开销可能远高于这个经验法则。

此外,这不允许构建复杂模式的成本。 如果您有一个定义数百种元素类型的大模式,那么编译模式可能需要比使用它来验证几兆字节数据更长的时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM