Как проверить, что документ XML загружен полностью - PullRequest
0 голосов
/ 17 сентября 2010

В моем пакете служб SSIS я использую файл XML, который был загружен другим процессом.

Прежде чем перейти к другим частям работы в пакете, я хочу убедиться, что файл загружен полностью.

У меня под рукой есть и файл XSD.

Как проверить в SSIS, что файл XML загружен правильно?

Ответы [ 4 ]

2 голосов
/ 17 сентября 2010

Чтобы быть действительным XML, документ должен содержать один элементный узел (который сам может содержать ряд других узлов).Короче говоря, вам нужно получить закрывающий тег для открывающего тега, чтобы знать, что у вас есть весь документ.Проверка этого документа по схеме является вторичной по отношению к этому, но может помочь (или может быть сделано одновременно).

2 голосов
/ 17 сентября 2010

Я согласен с Бруно и Теджей: файл должен быть действительным, и вы должны увидеть закрывающий тег.Тем не менее, я думаю, что вы, возможно, решаете проблему с неправильной точки зрения.Не могли бы вы рассмотреть

  • Проверка возвращаемого значения процесса загрузки?
  • Загрузка во временный файл (например, Firefox использует file.txt.part) и атомарное перемещение по правильному путипосле окончания загрузки?

Мне кажется, что вы требуете, чтобы процесс загрузки был надежным, поэтому вы должны попытаться гарантировать это, а не справиться с ненадежностью в вашей программе.

1 голос
/ 21 сентября 2010
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
1 голос
/ 17 сентября 2010

Если файл загружен правильно и полностью, он, очевидно, должен быть действительным. Так что сверяйтесь со Схемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...