我正在寻找在以下情况下验证大型 XML 文件的有效方法:
1) 文件从网络接收。
2) 需要根据提供的 DTD 验证 xml。
3)还有其他线程正在运行,它们将处理节点信息可配置的文件的特定节点中的数据。
4) 验证不能阻塞其他线程等待整个文件验证。
由于这是一个长时间运行的进程,xml 文件将在端口上连续接收数小时、数天或数月,中间有未知的中断。
我需要一个解决方案
1)不要让阅读器/验证器读取到文件末尾,然后发送验证结果。
2)由于Data节点包含所有数据,停止验证器到数据节点开始,开始只读取固定数量的数据,并将读取的数据发送到常设线程异步处理,让验证器继续读取和发送。
上述方法正确吗?是否存在这样的 xml 验证器?如果不是如何创建它?我尝试在一个类中继承 IXmlLineInfo、IXmlNamespaceResolver,但这似乎是实现它们的一项艰巨工作。