Язык описания формата данных

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

Язык описания формата данных (DFDL, часто произносится как daff-o-dil), опубликованный как предлагаемая рекомендация форума Open Grid в январе 2011 года - это язык моделирования для стандартного описания общих текстовых и двоичных данных. Модель или схема DFDL позволяет читать (или «анализировать») любые текстовые или двоичные данные из их собственного формата и представлять как экземпляр набора информации. (Информационный набор - это логическое представление содержимого данных, не зависящее от физического формата. Например, две записи могут быть в разных форматах, потому что одна имеет поля фиксированной длины, а другая использует разделители, но они могут содержать точно такие же data, и оба будут представлены одним и тем же набором информации). Та же самая схема DFDL также позволяет брать данные из экземпляра набора информации и записывать (или «сериализовать») в их собственный формат.

DFDL является описательным, а не предписывающим. DFDL не является форматом данных и не требует использования какого-либо конкретного формата данных. Вместо этого он предоставляет стандартный способ описания множества различных форматов данных. У этого подхода есть несколько преимуществ. Это позволяет автору приложения спроектировать соответствующее представление данных в соответствии со своими требованиями, описывая его стандартным способом, который может совместно использоваться, что позволяет нескольким программам напрямую обмениваться данными.

DFDL достигает этого, опираясь на возможности W3C XML Schema 1.0. Используется подмножество XML-схемы, достаточное для моделирования не-XML-данных. Мотивация для этого подхода состоит в том, чтобы избежать изобретения совершенно нового языка схем и упростить преобразование общих текстовых и двоичных данных через набор информации DFDL в соответствующий XML-документ.

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

Содержание
  • 1 История
  • 2 Реализации
  • 3 Пример
  • 4 Характеристики
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки
История

DFDL был создан в ответ на потребность в API-интерфейсах grid для понимания данных независимо от источника. Требовался язык, способный моделировать широкий спектр существующих текстовых и двоичных форматов данных. Рабочая группа была создана на форуме Global Grid Forum (который позже стал Open Grid Forum ) в 2003 году для создания спецификации для такого языка.

A На раннем этапе было принято решение основать язык на подмножестве W3C XML Schema, используя аннотации для переноса дополнительной информации, необходимой для описания физических представлений, отличных от XML. Это устоявшийся подход, который уже используется сегодня в коммерческих системах. DFDL использует этот подход и развивает его в открытый стандарт, способный описывать многие текстовые или двоичные форматы данных.

Работа над языком продолжалась, в результате чего в январе 2011 г. была опубликована спецификация DFDL 1.0 в виде предлагаемой рекомендации OGF GFD.174. Последняя редакция - GFD.207, опубликованная в ноябре 2014 г. устарел GFD.174 и включает все проблемы, отмеченные на сегодняшний день (также доступны как html ). краткое описание DFDL и его функций доступно на OGF. Любые проблемы со спецификацией отслеживаются с помощью средств отслеживания проблем Redmine.

Реализации

Доступны реализации процессоров DFDL, которые могут анализировать и сериализовать данные с использованием схем DFDL.

  • IBM имеет готовый к работе анализатор потоковой передачи DFDL 1.0, средство моделирования и визуальный тестер. Это доступно в нескольких продуктах IBM, включая IBM Integration Bus (ранее известный как IBM WebSphere Message Broker ). Доступна бесплатная версия для разработчиков.
  • Обычно доступен процессор DFDL с открытым исходным кодом, известный как Daffodil, имеющий как синтаксический анализатор, так и анализатор, а также интеграцию с Apache NiFi и конвейерный движок XML Calabash XProc. Он продолжает активно развиваться.
  • Проект Европейского космического агентства S2G Data Viewer включает парсер DFDL4S, который реализует подмножество спецификации DFDL 1.0.

A доступна презентация который описывает IBM DFDL и Daffodil.

На GitHub создан общедоступный репозиторий для схем DFDL, описывающих коммерческие и научные форматы данных. Схемы DFDL для таких форматов, как UN / EDIFACT, NACHA и ISO8583, доступны для бесплатной загрузки.

Пример

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

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

Чтобы дополнительно смоделировать физическое представление потока данных, DFDL дополняет фрагмент схемы XML аннотациями объектов xs: element и xs: sequence следующим образом:

Атрибуты свойств в этих аннотациях DFDL выражают, что данные представлены в текстовом формате ASCII с полями переменной длины и разделенными запятыми

Также предоставляется альтернативный, более компактный синтаксис, в котором свойства DFDL переносятся как неродные атрибуты в самих объектах схемы XML.

Возможности

Цель DFDL - предоставить богатый язык моделирования, способный представлять любой текстовый или двоичный формат данных. Выпуск 1.0 - важный шаг к этой цели. Эта возможность включает поддержку:

  • типов текстовых данных, таких как строки, числа, зональные десятичные дроби, календари и логические значения
  • двоичных типов данных, таких как целые числа с дополнением до двух, BCD, упакованные десятичные числа, числа с плавающей запятой, календари и логические значения
  • Данные фиксированной длины и данные, разделенные текстом или двоичной разметкой
  • Языковые структуры данных, встречающиеся в таких языках, как COBOL, C и PL / 1
  • Отраслевые стандарты, такие как CSV, SWIFT, FIX, HL7, X12, HIPAA, EDIFACT, ISO8583
  • Любая кодировка и порядок следования байтов
  • Двунаправленный текст
  • Битовые данные произвольной длины
  • Языки шаблонов для текстовых чисел и календарей
  • Упорядоченное, неупорядоченное и плавающее содержимое
  • Значения по умолчанию при синтаксическом анализе и сериализации
  • Возможность нулевых значений для обработки внеполосных данных
  • Фиксированные и переменные массивы
  • Язык выражений XPath 2.0, включая переменные для моделирования динамических данных
  • Спекулятивный синтаксический анализ и другие механизмы для разрешения выбора и дополнительных возможностей
  • Проверка правильности схемы XML 1.0 rules
  • Механизм определения области действия, который позволяет применять значения общих свойств в нескольких точках аннотации
  • Скрытие элементов в данных из набора информации
  • Вычисление значений элементов для информации set
См. также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-17 14:08:20
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте