2010-09-16 2 views
0

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

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

У меня также есть XSD-файл.

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

+0

Я собираю XML-документ, хранящийся в VARCHAR/etc? –

+0

@OMG Ponies: документ XML находится в файле на диске –

ответ

1

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

2

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

2

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

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

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

+0

В этом вопросе говорится, что файл загружается другим процессом. Этот процесс не будет иметь понятия о возвращаемом значении. –

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 
Смежные вопросы