XML-конвейер - XML pipeline

В программного обеспечения, XML-конвейер образуется, когда XML (Extensible Markup Language) процессы, особенно XML-преобразования и Проверки XML, подключены.

Например, для двух преобразований T1 и т2, их можно соединить так, чтобы входной XML-документ преобразовывался с помощью T1 а затем выход T1 подается как входной документ в T2. Простые конвейеры, подобные описанному выше, называются линейный; один входной документ всегда проходит через одну и ту же последовательность преобразований для создания единого выходного документа.

Линейные операции

Линейные операции можно разделить как минимум на две части.

Микрооперации

Они работают на уровне внутреннего документа

  • Переименовать - переименовывает элементы или атрибуты без изменения содержимого
  • Заменять - заменяет элементы или атрибуты
  • Вставлять - добавляет новый элемент данных в выходной поток в указанной точке
  • Удалить - удаляет элемент или атрибут (также известное как обрезка входного дерева)
  • Сворачивать - оборачивает элементы дополнительными элементами
  • Изменение порядка - меняет порядок элементов

Документирование операций

Они принимают исходный документ в целом

  • Преобразование идентичности - делает дословную копию своего ввода в вывод
  • Сравнивать - берет два документа и сравнивает их
  • Преобразовать - выполнить преобразование входного файла, используя указанный XSLT файл. Следует указать версию 1.0 или 2.0.
  • Расколоть - взять один XML-документ и разделить его на отдельные документы

Последовательные операции

В основном они представлены в XProc и помогаем обрабатывать последовательность документа в целом

  • Считать - берет последовательность документов и считает их
  • Преобразование идентичности - делает дословную копию своей входной последовательности документов на выход
  • расщепленная последовательность - принимает последовательность документов в качестве входных данных и направляет их на разные выходы в зависимости от правил сопоставления
  • последовательность обертывания - принимает последовательность документов в качестве входных данных и объединяет их в один или несколько документов

Нелинейный

Нелинейные операции на трубопроводах могут включать:

  • Условные - когда данное преобразование выполняется, если выполняется условие, в то время как другое преобразование выполняется в противном случае
  • Петли - где преобразование выполняется на каждом узле набора узлов, выбранном из документа, или преобразование выполняется до тех пор, пока условие не станет ложным.
  • Тройники - когда документ передается на несколько преобразований, которые могут происходить параллельно
  • Агрегаты - когда несколько документов объединяются в один документ
  • Обработка исключений - где сбои в обработке могут привести к обработке альтернативного конвейера

Некоторые стандарты также классифицируют преобразование как макро (изменения, влияющие на весь файл) или микро (влияющие только на элемент или атрибут).

Языки конвейера XML

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

Стандарты

В зависимости от продукта

  • Язык определения конвейера W3C XML указан в примечании W3C.[2]
  • W3C XML Pipeline Language (XPL), версия 1.0 (черновик) [3][4] указывается в представлении W3C и является компонентом OPS Orbeon Presentation Server (теперь называется Orbeon Forms). Эта спецификация обеспечивает реализацию более ранней версии языка. XPL позволяет объявлять сложные конвейеры с условными операторами, циклами, тройниками, агрегациями и суб-конвейерами. XProc - это примерно надмножество XPL.[5]
  • Кокон карты сайта разрешить, среди прочего, объявление конвейеров XML. Карты сайта Cocoon - одна из самых ранних реализаций концепции конвейера XML.
  • smallx XML конвейеры используются в проекте smallx.
  • ServingXML определяет словарь для выражения преобразований плоский XML, плоский XML, плоский-плоский и XML-XML в конвейерах.
  • Язык разметки схемы PolarLake используется средой выполнения PolarLake для определения Конвейеры XML. Цепи - это наборы путей, через которые проходят фрагменты XML-потока (обычно как события SAX или DOM). Компоненты размещаются на путях для взаимодействия с потоком (и / или внешним миром) в процессе с низкой задержкой.
  • xmlsh - это язык сценариев, основанный на оболочках unix, который изначально поддерживает xml и текстовые конвейеры. [1]
  • Стилус Студия XML конвейер представляет собой визуальную грамматику, которая определяет следующие операции: ввод, вывод, XQuery, XSLT, проверка, XSL-FO в PDF, преобразование в XML, преобразование из XML, выбор, предупреждение, остановка.

Гранулярность трубы

Различные реализации XML Pipeline поддерживают разную степень детализации потока.

  • Документ: Целые документы проходят по трубе как атомарные единицы. Документ может находиться только в одном месте одновременно. Хотя обычно в трубе может быть сразу несколько документов.
  • Событие: события узлов элемента / текста могут проходить по разным путям. Документ может одновременно проходить через множество компонентов одновременно.

Стандартизация

До мая 2010 года не существовало широко используемого стандарта для языков конвейера XML. Однако с введением W3C Стандарт XProc как Рекомендация W3C по состоянию на май 2010 г.[6] можно ожидать широкого распространения.

История

Смотрите также

Рекомендации

  1. ^ «XProc: язык конвейера XML». W3.org. Получено 2013-06-14.
  2. ^ "Язык определения конвейера W3C XML".
  3. ^ «Язык конвейера XML (XPL), версия 1.0 (черновик)». W3.org. Получено 2013-06-14.
  4. ^ "Язык определения конвейера XML версии 1.0". W3.org. 2002-02-28. Получено 2013-06-14.
  5. ^ «Конвейеры XML: XPL и XProc». Орбеон. 22 мая 2007 г.. Получено 14 марта 2012.
  6. ^ «XProc: язык конвейера XML». W3.org. Получено 2013-06-14.
  7. ^ «Ранняя история и развитие Unix». Cm.bell-labs.com. Архивировано из оригинал 8 апреля 2015 г.. Получено 2013-06-14.
  8. ^ "ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ". Xpipe.sourceforge.net. 2001-12-09. Получено 2013-06-14.

внешняя ссылка

Стандарты

Рекомендации

Рабочие проекты

Конкретный продукт