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 включают:
Стандарты
- XProc: язык конвейера XML это рекомендация W3C [1] для определения линейных и нелинейных 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] можно ожидать широкого распространения.
История
- 1972 Дуглас Макилрой из Bell Laboratories добавляет оператор трубы к UNIX командная оболочка. Это позволяет выходным данным одной программы оболочки напрямую поступать на вход другой программы оболочки без перехода на диск. Это позволяло программам, таким как UNIX awk и sed быть специализированным, но работать вместе [2].[7] Подробнее см. Конвейер (Unix).
- 1993 Шон МакГрат разработал инструментарий C ++ для SGML обработка.[8]
- 1998 Стефано Маццокки выпускает первую версию Apache Cocoon, одна из первых программ, использующих конвейеры XML.
- 1998 Полярное озеро строить Операционная система XML, который включает Конвейерная обработка XML.
- Примечания 2002 г., представленные Норманом Уолшем и Ева Малер из Sun Microsystems, а также заявку W3C, представленную в 2005 г. Эрик Бручес и Алессандро Верне из Орбеон, были важными шагами к началу реальных усилий по стандартизации. Хотя ни одно из представлений не стало прямой рекомендацией W3C, они считались ключевыми источниками вдохновения для обработки XML W3C. Рабочая группа.
- Сентябрь 2005 г. Обработка XML W3C Рабочая группа началось. Задача этой рабочей группы заключалась в создании спецификации языка конвейерной обработки XML.
- Август 2008 г., xmlsh, язык конвейера XML был анонсирован на Balisage 2008
Смотрите также
Рекомендации
- ^ «XProc: язык конвейера XML». W3.org. Получено 2013-06-14.
- ^ "Язык определения конвейера W3C XML".
- ^ «Язык конвейера XML (XPL), версия 1.0 (черновик)». W3.org. Получено 2013-06-14.
- ^ "Язык определения конвейера XML версии 1.0". W3.org. 2002-02-28. Получено 2013-06-14.
- ^ «Конвейеры XML: XPL и XProc». Орбеон. 22 мая 2007 г.. Получено 14 марта 2012.
- ^ «XProc: язык конвейера XML». W3.org. Получено 2013-06-14.
- ^ «Ранняя история и развитие Unix». Cm.bell-labs.com. Архивировано из оригинал 8 апреля 2015 г.. Получено 2013-06-14.
- ^ "ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ". Xpipe.sourceforge.net. 2001-12-09. Получено 2013-06-14.
внешняя ссылка
Стандарты
Рекомендации
- XProc: язык конвейера XML, Рекомендация W3C от 11 мая 2010 г.
Рабочие проекты
- Рабочая группа W3C по модели обработки XML
- Примечание о языке определения конвейера W3C XML
- Представление W3C XML Pipeline Language (XPL) версии 1.0 (черновик)
Конкретный продукт
- Руководство и справочник по XProc
- Реализация контроллера языка определения конвейера XML Oracle Часть комплекта разработчика XML, индивидуальная загрузка не требуется
- Карта сайта Cocoon
- Конвейеры XML NetKernel
- Управление генерацией сложных документов через конвейерную обработку
- Документация по XML Pipeline Language (XPL)
- SXPipe
- Управление справочными данными PolarLake XML-схемы PolarLake и управление справочными данными
- smallx
- ServingXML
- Реализация XML-конвейера из Stylus Studio - Эта программа позволяет объединять преобразования XML в цепочку вместе с другими операциями с файлами XML, такими как проверка и HTML tidy.
- Сервер конвейера IVI XML XML Pipeline Server - это реализация языка Stylus Studio XML Pipeline.
- Веб-сайт XProc Нормана Уолша - Норман Уолш - председатель комитета по стандартам W3C XProc.
- yax - реализация XProc в настоящее время с командной строкой и интерфейсом Apache ant
- Yahoo! Трубы давайте пользователям создавать гибридные приложения данных из нескольких источников в визуальной веб-среде
- xmlsh Оболочка для управления xml на основе оболочек unix. Поддерживает внутрипроцессные многопоточные конвейеры обработки XML и текста.
- [3] Как реализовать XML Pipeline в XSLT
- Calabash - это реализация XProc
- Calumet это реализация XProc от EMC
- QuiXProc это XProc реализация Innovimax