Составление таблиц стилей xsl

Ищите небольшое руководство, здесь. Я хочу объединить xsl конвейер в одну таблицу стилей.

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

a.xml -> AB.xsl -> BC.xsl -> CD.xsl = d.xml

Конечно, это очень просто сделать на стороне сервера, но я хочу на стороне клиента. Я знаю, что не могу полагаться на браузер, чтобы сделать это ( из-за этого), поэтому вместо этого я хочу создать комбинированное преобразование, например так:

a.xml -> (AB.xsl -> BC.xsl -> CD.xsl) = d.xml
a.xml -> AD.xsl = d.xml

Я знаю о технике написания xsl, где промежуточные результаты помещаются в переменные, а затем извлекаются с помощью node-set() (лучшее описание, которое я нашел здесь), но я хочу избежать этого, потому что у меня сложилось впечатление, что поддержка набора узлов немного нестабильна (и я могу поддерживать некоторых очень сомнительных клиентов!)

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

Итак, кто-нибудь слышал что-нибудь подобное и может указать мне правильное направление? Даже доказательство полноты тьюринга xslt может заставить меня двигаться в правильном направлении. Я просто хотел бы избежать повторного изобретения колеса, если смогу.

Заранее спасибо.

0 ответов

Другие вопросы по тегам