如何验证XML文档是否已完全下载

时间:2010-09-16 20:04:55

标签: sql xml ssis xsd

在我的SSIS包中,我使用的是另一个进程下载的XML文件。

在进入包中的其他工作部分之前,我想确定该文件已完全下载。

我也有方便的XSD文件。

如何在SSIS中验证XML文件是否正确下载?

4 个答案:

答案 0 :(得分:2)

要成为有效的XML,文档必须包含单个元素节点(它本身可能包含许多其他节点)。简而言之,您需要获取开始标记的结束标记才能知道您拥有整个文档。根据模式验证此文档是次要的,但可能会有所帮助(或同时完成)。

答案 1 :(得分:2)

我同意Bruno和Teja:该文件应该有效,您应该看到结束标记。但是,我认为你可能从错误的角度来解决这个问题。你能考虑一下

吗?
  • 检查下载过程的返回值?
  • 下载到临时文件(例如Firefox使用file.txt.part)并在下载完成后以原子方式将其移至正确的路径?

在我看来,您的要求是下载过程可靠,因此您应该尝试保证这一点,而不是处理程序中的不可靠性。

答案 2 :(得分:1)

如果文件正确且完全下载,它显然应该有效。请检查Schema。

答案 3 :(得分:1)

try
XmlDoc = new XMLDocument()
Using XmlStream As New StreamReader(filename)

       content = XmlStream.ReadToEnd()
       XmlDoc.LoadXml(content)

       // write your code here. If it comes here it means file download is complete.

End Using

catch xex as XMLException
// error handling routine

end try