XProc — это язык преобразования XML для обработки документов в конвейерах: объединение преобразований и других шагов вместе для достижения желаемых результатов. Он может обрабатывать документы в XML , HTML , JSON , текстовом и двоичном формате .
Текущая (стабильная) версия — 3.0. [1] В то время как XProc 1.0 [2] является рекомендацией W3C , XProc 3.0 — это стандарт, разработанный группой сообщества W3C XProc Next. [3]
Его основные характеристики:
Ниже представлен (очень) простой конвейер XProc:
<p:declare-step xmlns:p= "http://www.w3.org/ns/xproc" version= "3.0" > <p:входной порт= "источник" /> <p:выходной порт= "результат" /> <p:add-attribute attribute-name= "timestamp" attribute-value= "{current-dateTime()}" /> <p:delete match= "@data" /> </p:declare-шаг>
source
. Сюда поступает исходный документ.result
. Это то место, куда выводится результирующий документ.source
порт, автоматически попадает на первый шаг конвейера. Этот p:add-attribute
шаг добавляет атрибут, вызываемый timestamp
с текущей датой и временем.p:delete
шаг, который удаляет все атрибуты, называемые data
.p:delete
это последний шаг, результирующий документ выводится через выходной result
порт.Итак, если вы предоставите этому конвейеру следующий XML-документ:
<example data= "321" > <item data= "123" > Некоторые данные... </item> </example>
Выходит так:
<example timestamp= "2024-09-11T15:05:22.82+02:00" > <item> Некоторые данные... </item> </example>
Точная дата и время, записанные в timestamp
атрибуте, конечно же, зависят от даты и времени выполнения конвейера.
Страница обучения на сайте XProc [4] содержит ссылки на все учебные и справочные материалы, о которых знает группа сообщества XProc. Есть специальный раздел 101 с вводными учебными материалами.
Идеи чего-то, какого-то языка программирования для обработки существовали с самого начала XML, в конце двадцатого века. Но только в конце 2005 года W3C создал рабочую группу под названием XML Processing Model Working Group . Это привело к рекомендации XProc 1.0 от 11 мая 2010 года. [2]
Были предприняты различные попытки создать работающие процессоры XProc 1.0. Единственными двумя в настоящее время доступными продуктами с открытым исходным кодом, реализующими полный стандарт 1.0, являются XML Calabash [5] и MorganaXProc. [6]
После выпуска версии 1.0 рабочая группа XProc продолжила обсуждение следующей версии. Были выдвинуты идеи для версии 2.0. Она была основана на не-XML синтаксисе, что не вызвало большой поддержки со стороны сообщества. Вовлеченность в рабочую группу ослабла, и в 2016 году она прекратила свое существование.
В июне 2017 года была основана группа XProc Next Community Group [3] , которая начала работать над новой версией, теперь полностью основанной на XML. Поскольку это был совершенно другой подход, чем инициатива 2.0, номер версии был увеличен до 3.0. Стабильная версия была выпущена 12 сентября 2022 года. [1]
В 2024 году рабочая группа начала работу над небольшим обновлением до версии 3.1.
Следующие процессоры поддерживают стандарт XProc 3.0:
Следующие процессоры поддерживают стандарт XProc 1.0. Было несколько других реализаций XProc 1.0, но они были либо неполными, либо не поддерживаются.
Это логотип XProc. Его создала Бетан Тови-Уолш. Рыба называется Канава , что по-фински означает трубопровод.