Jump to content

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

(Перенаправлено из привязки XML-данных )

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

Это позволяет читать и записывать данные XML с использованием библиотеки классов языка программирования (например, C++ , C# , Java ), специально созданной для данного формата данных XML. [1] Хотя для этого можно вручную написать компьютерную программу, инструменты привязки данных XML генерируют исходный код для выполнения этих задач.

Описание

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

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

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

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

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

Трудности

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

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

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

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

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

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

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

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

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

Платформы привязки XML-данных

[ редактировать ]
Имя Язык программирования Лицензия Первый выпуск Последняя стабильная версия Генерация кода из XSD Пользовательское сопоставление Примечание
Apache Commons между Ява Апач 28 января 2003 г. ( 28 января 2003 г. ) 0.8 Un­known Un­known Спящий. Сериализует объекты в XML, не требуя определения схемы XML.
XMLBeans Apache Ява Лицензия Апач 2.0 5.1.1, 29 августа 2022 г. ( 29.08.2022 ) Да Un­known
Кастор Ява Апач 2.0 1.4.1, 15 мая 2016 г. ( 15 мая 2016 г. ) Un­known Un­known Более ранние версии также поддерживали сохранение Java-SQL, но с тех пор это было выделено в отдельный проект.
Синтез кода XSD С++ GNU GPL и проприетарная 4.0.0, 22 июля 2014 г. ( 22 июля 2014 г. ) Un­known Un­known с SAX или древовидным отображением в классы C++
gSOAP С и С++ GNU GPL и проприетарная 8 декабря 2000 г .; 23 года назад ( 08.12.2000 ) 2.8.131, 23 сентября 2023 г. ( 23.09.2023 ) Да Да Поддерживает схему XML, WSDL и SOAP; Схемы XML не требуются для сериализации данных C/C++ в XML; пользовательское сопоставление типов схем XML с типами C/C++ с помощью файла сопоставления типов и типов C/C++ с совместимыми типами схем XML с помощью аннотации исходного кода.
Архитектура Java для привязки XML (JAXB) Ява ? Да Да
ДжиБХ Ява Лицензия БСД 1.2.6, 1 января 2015 г. ( 01.01.2015 ) Да Да Сопоставляет классы со схемами XML посредством манипуляций с байт-кодом.
Жидкий связыватель XML-данных C++, C#, Java, Visual Basic.Net, Visual Basic 6 (COM) Бесплатное ПО и собственность 1 июня 2001 г .; 23 года назад ( 01.06.2001 ) 18 июня 2024 г .; 48 дней назад ( 18.06.2024 ) Да Да Поддерживает схему XML (XSD), DTD, XDR, WSDL. Сериализует XML в JSON и JSON в XML.
Жидкие XML-объекты C# и Visual Basic .Net (поддерживает XSD 1.1) Бесплатное ПО и собственность 3 марта 2019 г .; 5 лет назад ( 03.03.2019 ) 18 июня 2024 г .; 48 дней назад ( 18.06.2024 ) Да Да Прямая замена XSD.exe. Интегрирован в Microsoft Visual Studio . Поддерживает схему XML (XSD 1.0 и XSD 1.1), DTD, WSDL. Сериализует XML в JSON и JSON в XML.
Простой Ява Апач 2.0 2.7.1, 9 февраля 2017 г. ( 09.02.2017 ) Нет Да
System.Xml.Сериализация С# ? Да Нет Часть платформы .NET, содержит классы привязки данных XML; включает в себя xsd.exe инструмент для создания классов из схемы XSD
xmlbeansxx С++ Апач 2.0 0.9.1, 1 апреля 2008 г. ( 01.04.2008 ) Un­known Un­known C++-порт Apache XMLBeans
XStream Ява BSD Лицензия в стиле 1 января 2004 г .; 20 лет назад ( 01.01.2004 ) 1.4.10, 23 мая 2017 г. ( 23.05.2017 ) Un­known Un­known Также возможна сериализация в JSON.
Зевс Ява ? 3.5 бета, 16 августа 2002 г. ( 16 августа 2002 г. ) Un­known Un­known

См. также

[ редактировать ]
  1. ^ «Что такое привязка XML-данных — Учебное пособие» Liquid Technologies. Проверено 24 июля 2024 г.
  2. ^ «Что такое привязка XML» IBM. Проверено 16 апреля 2024 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: cb9b90fe73d6bb79d749a0f5722f3b1e__1721803320
URL1:https://arc.ask3.ru/arc/aa/cb/1e/cb9b90fe73d6bb79d749a0f5722f3b1e.html
Заголовок, (Title) документа по адресу, URL1:
XML data binding - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)