Рекомендуемый дизайн Формат для импорта разрозненных отформатированных подобных данных

Мое приложение будет получать данные из других приложений. Например, скажем, адресные данные. Эти данные всегда будут содержать такие элементы, как улица, страна, фамилия, но будут поступать во многих различных форматах. csv, xml, xls и т. д.

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

Я рассматривал просто документирование и использование формата csv, однако это, похоже, подвержено ошибкам * нет способа проверить, что данные в первом столбце на самом деле являются задокументированным элементом первого столбца. * высокая вероятность загрузки неверных данных, требующих очистки

Я считаю, что xsd предотвращает эти проблемы и позволяет любому создавать свой собственный файл для экспорта из своего приложения (пример: Open_Financial_Exchange но похоже, что большинство приложений предпочитают метод импорта csv.

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


person Thronk    schedule 22.04.2013    source источник


Ответы (1)


Не уверен, что вы подразумеваете под «шаблоном», но на ум приходят adapter и bridge. Adapter, если вам нужно перевести "1 в n" и bridge, если вам нужно перевести "n в n".

Здесь представлен поток SO подробной реализации/критики шаблона DataMapper на C#.

JSON (нотация объектов JavaScript) становится очень популярной в качестве общей транспортной структуры. Это очень лаконично, резко сокращает раздувание XML. Я знаю, что в C# есть библиотека для обработки JSON, и, несомненно, в других языках тоже.

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

CSV позволяет первой строке быть заголовками столбцов (именами полей и т. д.).

person radarbob    schedule 23.04.2013