Можно ли написать таблицу стилей XSLT 1.0, которая могла бы преобразовать таблицу стилей XSLT 2.0 в таблицу стилей XSLT 1.0? - PullRequest
0 голосов
/ 07 января 2012

Поддержка браузеров для XSLT 2.0 кажется очень далекой (Firefox по-прежнему этого не делает по крайней мере): XSLT 2.0 предлагает ряд дружественных для программистов преимуществ по сравнению с XSLT 1.0 (больше не нужно, например, ужасных фрагментов дерева результатов) так ....

Насколько возможно было бы написать таблицу стилей XSLT 1.0, которая могла бы преобразовать таблицу стилей XSLT 2.0 в таблицу стилей XSLT 1.0?

Теоретически вы могли бы получить и преимущества для программиста, а также преимущества для совместимости .....


Строго не нужно было бы писать это вручную в XSLT 1.0, хотя ... теоретически сложные биты (такие как движок регулярных выражений) могут быть созданы из языка более высокого уровня, который необходимо будет скомпилировать '(' переведено ', я думаю) в XSLT ....

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

Звучит так, как будто некоторые возможности просто невозможно выразить в XSLT 1.0: например, чтение входного файла без XML ....

Спасибо за ответы!

Приветствия

Ответы [ 2 ]

3 голосов
/ 07 января 2012

Возможно ? Возможно, по крайней мере в том смысле, что XSLT Тьюринг завершен .

реализуемое ? Ни за что. Мало того, что вам нужно будет реализовать все новые функциональные возможности в XSLT 2.0 (и каким-то образом обрабатывать выражения XPath 2.0), вам также нужно будет найти какой-то способ справиться с каждым из элементы в этом большом списке различий между двумя версиями , многие из которых делают нормальные результаты XSLT 1.0 несовместимыми с XSLT 2.0. Другими словами, нет прямого, прямого перевода.

Написание полной реализации XSLT 2.0 в XSLT 1.0 кажется мне безумным.

1 голос
/ 07 января 2012

Насколько возможно было бы написать таблицу стилей XSLT 1.0 который может преобразовать таблицу стилей XSLT 2.0 в таблицу стилей XSLT 1.0?

Забудьте об этом .

Хотя теоретически это возможно, объем работы будет превышать объем написания XSLT 2.0 с нуля. Кроме того, результат будет ужасно неэффективным.

Из-за многих новых функций в XSLT, которые не имеют аналогов в XSLT 1.0, обычно не можно написать такой преобразователь в чистом XSLT 1.0 . Расширения будут крайне необходимы, что делает такой проект непереносимым с самого начала, поэтому с очень ограниченной полезностью, если таковые имеются.

Среди особенностей XSLT 2.0, которые было бы чрезвычайно сложно реализовать или невозможно без расширений :

  • Новый XPath 2.0 XDM.

  • Строгая типизация и богатая система типов.

  • последовательности.

  • Поддержка RegEx.

  • RTF отменен.

  • Поддержка чтения любого текстового файла.

  • <xsl:for-each-group>

  • Функция XPath 2.0 collection().

  • Функции даты / времени / продолжительности.

  • <xsl:function>.

  • Параметры туннеля.

  • <xsl:apply-imports> с параметрами.

  • и т. Д., ... и т. Д.

...