Создание и чтение XML и получение ответа от webrequest
Привет,
Мне нужна твоя помощь. Мы должны создать xml-файл с информацией о счетах-фактурах для государственных электронных книг. Затем мы должны загрузить его и забрать ответ.
На данный момент я создаю xml файл из запроса select:
SELECT invoiceNr, invoiceDate FROM invoiceHeader OUTER APPLY ( SELECT lineNumber, netValue, vatCategory FROM invoiceDetails WHERE invoiceDetails.headid = invoiceHeader.unid FOR XML PATH('invoiceDetails') ) XmlinvoiceDetails(invoiceDetails) FRO XML PATH('invoice'), root('invoicedoc')а с помощью SQLDataReader и StreamWriter мы сохраняем xml на диске.
Затем с помощью WebRequest мы загружаем xml-файл и получаем ответ обратно в виде xml-файла. Этот файл (response.xml) имеет порядковый номер 1,2,3 e.t.c. с информацией (успех или нет) для каждого узла счета-фактуры, который мы загружаем.
Прежде всего мне нужно знать, есть ли другой способ создания xml-файла, более эффективный, потому что в xml-файле у нас будет много счетов-фактур, и мы хотим очень быстро создать xml-файл.
Во-вторых, мы хотим найти способ обновления записей, которые мы экспортировали в xml-файл, возможно, с уникальным индексом, потому что мы хотим знать каждую запись, в которой xml-файл был экспортирован и в каком порядке или в каком узле строки xml был записан, чтобы получить response.xml с результатами обновления каждой записи с кодом состояния (успех или нет).
Пожалуйста, помогите нам, нам нужно ваше мнение, и, конечно же, мы должны знать наиболее эффективный способ сделать это, потому что есть миллионы записей.
Что я уже пробовал:
выше я объясню, что я пробовал
Garth J Lancaster
Возможно, будет полезно предоставить дополнительную информацию о "размере" "существуют миллионы записей". - используйте Улучшить вопрос
По быстрому предположению, можно было бы потратить много времени на запись в файл на диске - я бы смотрел на
1) сделать получение xml-данных (я не буду использовать здесь термин "файл") асинхронным
2) храните данные, возможно, в XMLDocument в памяти
Это может означать получение меньших наборов XML ie 'batching', а не одного большого blob-объекта, если это вообще возможно, но это принцип, уменьшите "файловый" ввод-вывод, сделайте его асинхронным
gg2007mva
Большое вам спасибо за ваш ответ.
Мне нужна еще небольшая помощь. Я создал классы для XML-схемы, и я хочу знать, есть ли способ немедленно загрузить SQL-запрос в эти классы за один раз, а не зацикливаться на всех строках, чтобы построить XML.
Мне нужно знать, есть ли способ связать dataset с XML-классами, в котором каждый datatable набора данных является (typeof) каждым XML-классом.