Привязка данных XML

редактировать

Привязка данных XML ссылается к средству представления информации в документе XML как бизнес-объект в памяти компьютера. Это позволяет приложениям получать доступ к данным в XML из объекта вместо использования DOM или SAX для извлечения данных из прямого представления самого XML..

Содержание
  • 1 Описание
  • 2 Трудности
  • 3 Альтернативы
  • 4 Привязка данных в целом
  • 5 Структуры привязки данных XML
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки
Описание

Связывание данных XML выполняет это, автоматически создавая сопоставление между элементами схемы XML документа, который мы хотим связать, и членами из класса для представления в памяти.

Когда этот процесс применяется для преобразования XML-документа в объект, он называется демаршалингом. Обратный процесс сериализации объекта как XML называется маршаллинг.

Подходы к привязке данных можно различить следующим образом:

  • на основе схемы XML: на основе существующей схемы XML, соответствующие классы к схеме.
  • На основе классов: На основе набора классов, которые должны быть сериализованы, создается соответствующая схема XML.
  • На основе сопоставления: Описание сопоставления, обычно само XML В документе описывается, как существующая схема XML сопоставляется с набором классов, и наоборот.
Трудности

Поскольку XML по своей природе является последовательным, а объекты (обычно) нет, сопоставления привязки данных XML часто испытывают трудности с сохранением вся информация в XML-документе. В частности, такая информация, как комментарии, ссылки на объекты XML и порядок братьев и сестер, могут не сохраняться в представлении объекта, созданном приложением привязки. Это не всегда так; достаточно сложные связыватели данных способны сохранять 100% информации в документе XML.

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

Альтернативы

Альтернативный подход к автоматической привязке данных основан на использовании вручную созданных выражений XPath, извлекающих данные из XML. У этого подхода есть ряд преимуществ. Во-первых, код связывания данных требует только приблизительных знаний (например, топологии, имен тегов и т. Д.) Древовидной структуры XML, которую разработчики могут определить, просмотрев данные XML; XML-схемы больше не являются обязательными. Более того, XPath позволяет приложению связывать соответствующие элементы данных и отфильтровывать все остальное, избегая ненужной обработки, которая потребовалась бы для полного демаршалинга всего XML-документа. Недостатком этого подхода является отсутствие автоматизации при реализации объектной модели и выражений XPath. Вместо этого разработчики приложений должны создавать эти артефакты вручную.

Привязка данных в целом

Одной из сильных сторон привязки данных XML является способность де / сериализовать объекты в разных программах, языках и платформах. Вы можете выгрузить временные ряды структурированных объектов из регистратора данных, написанного на C (язык программирования), на встроенный процессор, передать его по сети для обработки в Perl и, наконец, визуализировать в Октава. Структура и данные остаются согласованными и согласованными на протяжении всего пути, и никаких специальных форматов или синтаксического анализа не требуется. Это не уникально для XML. YAML, например, становится мощной альтернативой привязке данных к XML. JSON (который можно рассматривать как подмножество YAML) часто подходит для легких или ограниченных приложений.

Структуры привязки данных XML
ИмяЯзык программированияЛицензияПервый выпускПоследний стабильный выпускГенерация кода из XSDПользовательское сопоставлениеПримечание
Apache Commons BetwixtJavaApache 28 января 2003 г. (2003 г. -01-28)0,8НеизвестноНеизвестноНеактивно. Сериализует объекты в XML без необходимости определения схемы XML
Apache XMLBeans JavaЛицензия Apache 2.0 3.1.0, 26 марта 2019 г. (26 марта 2019 г.)ДаНеизвестно
Castor JavaApache 2.0 1.4.1, 15 мая 2016 г. (2016-05-15)НеизвестноНеизвестноБолее ранние версии также поддерживали постоянство Java-to-SQL, но с тех пор это было выделено в отдельный проект
CodeSynthesis XSD C ++ GNU GPL и проприетарный4.0.0, 22 июля 2014 г. (2014-07-22)НеизвестноНеизвестнос SAX или древовидным отображением в классы C ++
gSOAP C и C ++ GNU GPL и проприетарный8 декабря 2000 г.; 19 лет назад (2008-12-2000)2.8.94, 17 октября 2019 г. (2019-10-17)ДаДаПоддерживает схему XML, WSDL и SOAP; XML-схемы не требуются для сериализации данных C / C ++ в XML; настраиваемое сопоставление типов схемы XML с типами C / C ++ через файл сопоставления типов и с типов C / C ++ на совместимые типы схемы XML с помощью аннотации исходного кода
Архитектура Java для привязки XML (JAXB)Java?ДаДа
JiBX JavaЛицензия BSD 1.2.6, 1 января 2015 г. (2015-01-01)ДаДаСопоставляет классы с XML-схемами через манипуляции с байт-кодом
Simple JavaApache 2.0 2.7.1, 9 февраля 2017 г. (2017-02 -09)НетДа
System.Xml.SerializationC #?ДаНетЧасть платформы.NET содержит классы привязки данных XML; включает инструмент xsd.exeдля создания классов из схемы XSD
xmlbeansxx C ++Apache 2.0 0.9.1, 1 апреля 2008 г. (2008-04-01)НеизвестноНеизвестноПорт C ++ Apache XMLBeans
XStream JavaЛицензия в стиле BSD 1 января, 2004; 16 лет назад (01.01.2004)1.4.10, 23 мая 2017 г. (2017-05-23)НеизвестноНеизвестноТакже возможна сериализация в JSON
Zeus Java?3.5 beta, 16 августа 2002 г. (2002-08-16)НеизвестноНеизвестно
См. также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-22 06:40:47
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте