XML pipeline

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

XML конвеєр (англ. XML pipeline) — в комп'ютерних науках, утворюється під час з'єднання послідовних XML-перетворень (англ. XML Transformation).

Наприклад, два перетворення T1 і T2 можуть бути зв'язані разом, так, що вихід XML документа спершу обробляється T1 і потім вихід T1 поступає як вхідний документ до T2.

Лінійні операції[ред. | ред. код]

Конвеєри подібні описаним вище називаються лінійними; один окремий вхідний документ завжди проходить через ту ж саму послідовність трансформацій щоб створити один окремий документ.

Зразки операцій лінійних ковеєрів можуть включати:

  • Identity transform — проводить дослівну трансформацію з входу на вихід
  • Transform — виконує трансформацію вхідного файлу використовуючи зазначений XSLT файл. Версію 1.0 чи 2.0 слід позначити.
  • Rename — перейменовує елементи чи атрибути не змінюючи змісту
  • Replace — переставляє елементи чи атрибути
  • Insert — додає новий елемент даних до вихідного потоку в зазначній точці
  • Delete — видаляє елементи чи атрибути (також відоме під назвою обрізка дерева)
  • Split — один документ розділяє на декілька окремих
  • Wrap — оточує елементи додатковими елементами
  • Reorder — змінює порядок елементів

Нелінійні операції[ред. | ред. код]

Нелінійні операції на конвеєрі можуть включати:

  • Умови: дана трансформація виконується коли зустрічаєтья дана умова, а ні то виконується інша трансформація
  • Цикли: дана трансформація виконується поки умова не стане false
  • Мішені (Tees): коли над документом проводятья паралельні трансформації
  • Агрегації: декілька документів з'єднуються в один
  • Обробка винятків: невдача в проведенні однієї трансформації викликає іншу

Деякі стандарти також визначають макро трансформацію (зміни до всього файлу) чи мікро (впливають тільки на елемент чи атрибут)

XML Pipeline мови[ред. | ред. код]

XML pipeline мови використовуються для визначення pipeline. Програма написана XML pipeline мовою інтерпретується софтом відомим як XML pipeline engine, який створює процеси, поєднує їх та зрештою виконує pipeline. Існуючі XML pipeline мови включають:

  • XProc: XML Pipeline мова(Language) зараз є W3C Working чорновиком (Draft) [1]
  • W3C XML Pipeline Definition мова (Language) специфікована в W3C Note та Sun забезпечує імплементацію
  • W3C XML Pipeline Language (XPL) Version 1.0 (чорнетка) специфікований в W3C Submission і компонент Orbeon Presentation Server OPS (зараз зветься Orbeon Forms). Ця специфікація провадить імплементацію ранньої версії мови. XPL дозволяє декларацію складних pipeline з умовами (conditionals), циклами (loops), мішенями (tees), агрегаціями (aggregations), та під-конвеєрами.
  • Cocoon sitemaps дозволяє, серед іншої функціональності, декларацію XML конвеєра. Cocoon sitemaps це одні з перших імплементацій концепції XML pipeline.
  • smallx XML Pipeline використовуються smallx проектом.
  • ServingXML визначає словник для виразів, flat-XML, XML-flat, flat-flat, і XML-XML трансформації в pipeline.

Стандартизація[ред. | ред. код]

Зараз немає широко розповсюдженого стандарту для XML Pipeline мов. Але стандарт W3C XProc перебуває у стадії робочої чорнетки з листопада 2006. Робота ця просувається далі.

Історія XML конвеєрів[ред. | ред. код]

  • 1972 Дуглас Макілрой з Bell Laboratories додав оператор конвеєра в UNIX command shell.
  • 1993 Sean McGrath розробив C++ набір інструментів для обробки SGML.
  • 1998 Stefano Mazzocchi реалізував першу версію Apache Cocoon з використанням XML pipeline.
  • 2002 Notes випущені Norman Walsh та Eve Maler з Sun Microsystems, також як і W3C Submission видані у 2005 Erik Bruchez and Alessandro Vernet з Orbeon, породили реальні зусилля по стандартизації.
  • Вересень 2005 робоча група (англ. Working Group) W3C XML Processing розпочала свою роботу. Задача робочої групи створити специфікацію для мови XML Pipeline.

Джерела інформації[ред. | ред. код]

  • XML pipeline, стаття англомовної Вікіпедії.

Див. також[ред. | ред. код]