XML-конвейер
В программном обеспечении конвейер XML формируется при процессов XML (расширяемого языка разметки), особенно преобразований XML и проверок XML соединении .
Например, при наличии двух преобразований T 1 и T 2 их можно соединить так, что входной XML-документ преобразуется посредством T 1 , а затем выходные данные T 1 подаются в качестве входного документа в T 2 . Простые конвейеры, подобные описанному выше, называются линейными ; один входной документ всегда проходит одну и ту же последовательность преобразований для создания одного выходного документа.
Линейные операции
[ редактировать ]Линейные операции можно разделить как минимум на две части.
Микрооперации
[ редактировать ]Они работают на внутреннем уровне документа.
- Переименовать — переименовывает элементы или атрибуты без изменения содержимого.
- Заменить — заменяет элементы или атрибуты.
- Вставить — добавляет новый элемент данных в выходной поток в указанной точке.
- Удалить — удаляет элемент или атрибут (также известный как обрезка входного дерева).
- Wrap — оборачивает элементы дополнительными элементами.
- Reorder - меняет порядок элементов
Операции с документами
[ редактировать ]Они принимают входной документ целиком
- Преобразование идентичности — делает дословную копию входных данных на выходе.
- Сравнить - нужно два документа и сравнить их.
- Преобразование — выполнить преобразование входного файла с использованием указанного файла XSLT . Должна быть указана версия 1.0 или 2.0.
- Разделить — возьмите один XML-документ и разделите его на отдельные документы.
Последовательные операции
[ редактировать ]Они в основном представлены в XPoc и помогают управлять последовательностью документа в целом.
- Подсчет — берет последовательность документов и подсчитывает их.
- Преобразование идентичности - делает дословную копию входной последовательности документов на выходе.
- Split-Sequence — принимает последовательность документов в качестве входных данных и направляет их на разные выходы в зависимости от правил соответствия.
- Wrap-Sequence — принимает последовательность документов в качестве входных данных и упаковывает их в один или несколько документов.
Нелинейный
[ редактировать ]Нелинейные операции на трубопроводах могут включать в себя:
- Условные обозначения — когда данное преобразование выполняется, если условие выполняется, в то время как другое преобразование выполняется в противном случае.
- Циклы — когда преобразование выполняется на каждом узле набора узлов, выбранного из документа, или преобразование выполняется до тех пор, пока условие не станет ложным.
- Тройники — когда документ подвергается нескольким преобразованиям, которые могут происходить параллельно.
- Агрегации — когда несколько документов объединяются в один документ.
- Обработка исключений — когда сбои в обработке могут привести к обработке альтернативного конвейера.
Некоторые стандарты также классифицируют преобразования как макро (изменения, влияющие на весь файл) или микро (влияющие только на элемент или атрибут).
Языки конвейера XML
[ редактировать ]Языки конвейеров XML используются для определения конвейеров. Программа, написанная на языке конвейера XML, реализуется с помощью программного обеспечения, известного как механизм конвейера XML, который создает процессы, соединяет их вместе и, наконец, выполняет конвейер. Существующие языки конвейеров XML включают:
Стандарты
[ редактировать ]- XPoc: конвейерный язык XML — это рекомендация W3C [1] для определения линейных и нелинейных конвейеров XML.
Специфический для продукта
[ редактировать ]- Язык определения конвейера XML W3C указан в примечании W3C. [2]
- Язык конвейера XML W3C (XPL), версия 1.0 (проект) [3] [4] указывается в представлении W3C и компоненте OPS Orbeon Presentation Server (теперь называемом Orbeon Forms). Эта спецификация обеспечивает реализацию более ранней версии языка. XPL позволяет объявлять сложные конвейеры с условиями, циклами, тройниками, агрегатами и подконвейерами. XPoc — это примерно расширенная версия XPL. [5]
- Cocoon Карты сайта , помимо прочего, позволяют объявлять конвейеры XML. Карты сайта Cocoon — одна из первых реализаций концепции XML-конвейера.
- XML-конвейеры smallx используются проектом smallx.
- ServingXML определяет словарь для выражения преобразований «плоский XML», «плоский XML», «плоский-плоский» и XML-XML в конвейерах.
- Язык разметки цепей PolarLake , используемый средой выполнения PolarLake для определения конвейеров XML . Цепи — это наборы путей, по которым передаются фрагменты XML (обычно в виде событий SAX или DOM). Компоненты размещаются на путях для взаимодействия с потоком (и/или внешним миром) в процессе с низкой задержкой.
- xmlsh — это язык сценариев, основанный на оболочках Unix, который изначально поддерживает XML и текстовые конвейеры [1]
- Stylus Studio 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 PolarLake создает операционную систему XML , которая включает конвейерную обработку XML .
- Записки 2002 года, представленные Норманом Уолшем и Евой Малер из Sun Microsystems , а также заявка W3C, поданная в 2005 году Эриком Бручесом и Алессандро Верне из Orbeon , стали важными шагами на пути к созданию реальных усилий по стандартизации. Хотя ни один из представленных материалов не стал напрямую рекомендацией W3C, они считались ключевыми источниками вдохновения для рабочей группы W3C по обработке XML .
- Сентябрь 2005 г. Начало работы рабочей группы W3C по обработке XML . Задачей этой рабочей группы было создание спецификации для языка конвейерной обработки XML.
- Август 2008 г., xmlsh , язык конвейера XML, был анонсирован на выставке Balisage 2008.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «XProc: конвейерный язык XML» . W3.org . Проверено 14 июня 2013 г.
- ^ «Язык определения конвейера XML W3C» .
- ^ «Конвейерный язык XML (XPL) версии 1.0 (проект)» . W3.org . Проверено 14 июня 2013 г.
- ^ «Язык определения конвейера XML версии 1.0» . W3.org. 28 февраля 2002 г. Проверено 14 июня 2013 г.
- ^ «Конвейеры XML: XPL и XPoc» . Орбеон. 22 мая 2007 года . Проверено 14 марта 2012 г.
- ^ «XProc: конвейерный язык XML» . W3.org . Проверено 14 июня 2013 г.
- ^ «Ранняя история и эволюция Unix» . www.bell-labs.com. Архивировано из оригинала 8 апреля 2015 года . Проверено 14 июня 2013 г.
- ^ "ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ" . Xpipe.sourceforge.net. 09.12.2001 . Проверено 14 июня 2013 г.
Внешние ссылки
[ редактировать ]Стандарты
[ редактировать ]Рекомендации
[ редактировать ]- XPoc: конвейерный язык XML , рекомендация W3C, 11 мая 2010 г.
Рабочие проекты
[ редактировать ]- Рабочая группа W3C по модели обработки XML
- Примечание о языке определения конвейера XML W3C
- W3C XML Pipeline Language (XPL) версии 1.0 (проект)
Специфический продукт
[ редактировать ]- Учебное пособие и справочник по XPoc
- Реализация контроллера языка определения конвейера XML Oracle. Часть комплекта разработчика XML, отдельная загрузка не требуется.
- Карта сайта кокона
- XML-конвейеры NetKernel
- Управление созданием сложных документов посредством конвейеризации
- Документация по конвейерному языку XML (XPL)
- SXPipe
- Управление справочными данными PolarLake XML-схемы PolarLake и управление справочными данными
- маленький
- ОбслуживаниеXML
- Реализация XML-конвейера из Stylus Studio . Эта программа позволяет объединять XML-преобразования вместе с другими операциями над XML-файлами, такими как проверка и HTML Tidy .
- IVI XML Pipeline Server XML Pipeline Server — это реализация языка XML Pipeline Stylus Studio.
- Веб-сайт Нормана Уолша XProc . Норман Уолш является председателем комитета по стандартам W3C XProc.
- yax — реализация XProc, в настоящее время имеющая командную строку и интерфейс Apache ant.
- Yahoo! Pipes позволяет пользователям создавать гибридные приложения данных из нескольких источников в визуальной веб-среде.
- xmlsh Оболочка для работы с XML на основе оболочек Unix. Поддерживает внутрипроцессные многопоточные конвейеры обработки XML и текста.
- [3] Как реализовать XML Pipeline в XSLT
- Calabash — это реализация XPoc.
- Calumet — это реализация XPoc от EMC.
- QuiXProc — это реализация Innovimax в формате XProc.