2015-02-09 3 views
-1

Я пишу xslt для довольно сложного xml. Xml имеет несколько дочерних узлов, и многие из них имеют множество дочерних узлов.Рекомендации по использованию XSLT для обработки шаблонов

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

Это хорошая практика в xslt, если у меня есть действительно длинный xslt, или есть лучшее решение для создания легко настраиваемого xslt-файла?

Спасибо.

+0

«Скорее сложный» довольно субъективен, если вы прощаете каламбур. Суть в том, что, как только таблица стилей слишком длинная для вас, разработчик, вот тогда вам следует _modularize_ код. Позвольте мне переформулировать ваш вопрос: _ Должна ли таблица стилей XSLT иметь разумный размер и импортировать остальное - или нет? _ –

ответ

1

Импортируйте только xsl: import, если вы хотите, чтобы импортируемые шаблоны имели более низкий приоритет (то есть overridable), чем шаблоны, которые находятся в главной таблице стилей.

Если вы хотите просто скопировать логически связанные шаблоны в отдельную таблицу стилей, используйте xsl: include, чтобы включить их в таблицу стилей.

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

Возможно, существуют вопросы контроля версий, то есть вы можете пожелать, чтобы ваш контроль версий отслеживал только тот фрагмент, который был изменен а не всю таблицу стилей. Помимо этого, о котором я говорил, это вопрос выбора. Однако, если код будет повторно использоваться в других таблицах стилей, это изменит все, и вы обязательно должны его фрагментировать.

Если вы собираетесь фрагментировать таблицу стилей, вы можете иметь схему именования, которая отличает таблицы стилей, которые должны быть автономными из тех, которые должны быть включены. Вы также можете иметь соглашение об именовании импортированных таблиц стилей.

Убедитесь, что вы понимаете разницу между xsl: import и xsl: include и не используете импорт для вещей, которые вы можете включить.

Смежные вопросы