Сгенерировать результирующий XML код всей страницы — раз плюнуть.
Проблема в следующем:
Во-первых как быть с именами, которые могут совпасть (ну имена полей в конкретных разделах с глобальными)
Во-вторых, как сделать XSD, которая бы подключала требуемые под-XSD для <content></content> (Если такое вообще возможно).......
А самая непреодолимая преграда состоит в том, что я не могу прдеставить как сделать XSLT. В данный момент я просто обрабатываю процессором отдельно content и его обрамление, но это не есть хорошо....
Изьяснился наверное не очень понятно (я пока не гуру в терминах xml) но надеюсь меня кто-то понял и даст наводки...
спасибо.....
А чем плохи отдельные шаблоны для каждого из видов контента: для форума, новостей и так далее, а в зависимости от какого-нибудь признака (например аттрибута элемента content) вызывать тот или иной шаблон?
Например, если вот такой XML
_>Проблема в следующем: _>Во-первых как быть с именами, которые могут совпасть (ну имена полей в конкретных разделах с глобальными) _>Во-вторых, как сделать XSD, которая бы подключала требуемые под-XSD для <content></content> (Если такое вообще возможно)....... _>А самая непреодолимая преграда состоит в том, что я не могу прдеставить как сделать XSLT. В данный момент я просто обрабатываю процессором отдельно content и его обрамление, но это не есть хорошо....
другие решения вроде привели, но лично мне вариант <xsl:template name="name"> сильно не нравится, он больше для рекурсии подходит, хотя я вообще его не использую (врочем как и рекурсию)
А могу ли я в
<xsl:import href="news.xsl"/>
использовать динамичесое имя. Т.е. вопрос состоит в том, что этот самый <content type="..."> может быть как forum так и news или что-то иное, но полный список заранее неизвестен... т.е. предполагаеться что компоновка сайта может быть любой...
можно ли написаь так:
<xsl:template match="content">
<xsl:import href="{@type}"/>
</xsl:template>
_>А могу ли я в _><xsl:import href="news.xsl"/> _>использовать динамичесое имя. Т.е. вопрос состоит в том, что этот самый <content type="..."> может быть как forum так и news или что-то иное, но полный список заранее неизвестен... т.е. предполагаеться что компоновка сайта может быть любой...
_>можно ли написаь так: _><xsl:template match="content"> _> <xsl:import href="{@type}"/> _></xsl:template>
Нет, лучше подключай все файлы, XSLT в зависимости от входных данных сам разберется какие <xsl:template> вызывать.
T>Нет, лучше подключай все файлы, XSLT в зависимости от входных данных сам разберется какие <xsl:template> вызывать.
Это нереально.
Я хочу в итоге избавиться ок какох-либо использований процессоров на сервере, если это пожно сделать на клиенте. Но если я подключу все, то их все придёться качать при каждом просмотре.
Плюс, что наиболее важно, не получиться орагизовать динамическую компановку сайта из разных разделов. Т.е. надор: форум, новости и ещё что-то — будет фиксированным.
Ну так, что? Идей нет? Или это действительно не возможно иными способами кроме как динамическая генерация и стилей тоже?
Задача понятна только в общих чертах, но отдельные ее моменты всколыхнули какие-то воспоминания.
_>Во-первых как быть с именами, которые могут совпасть (ну имена полей в конкретных разделах с глобальными)
Ввести разные namespace'ы для глобальных и локальных элементов. Как вариант, делать глобальные элементы с нэймспейсом, а локальный — без.
_>Во-вторых, как сделать XSD, которая бы подключала требуемые под-XSD для <content></content> (Если такое вообще возможно).......
Эта проблема, опять же, решается namespace'ами. Если каждый из модулей будет определять свой неймспейс, то для каждого можно будет сделать и свою схему. Тут, конечно, вопрос еще в том, зачем тебе нужна схема.
_>А самая непреодолимая преграда состоит в том, что я не могу прдеставить как сделать XSLT. В данный момент я просто обрабатываю процессором отдельно content и его обрамление, но это не есть хорошо....
Насколько я понял из дальнейших мессаг, ты хочешь динамически набирать XSL из кучи отдельных модулей, причем делать это на клиенте и стандартными средствами. С этим облом: и import, и include не позволяют подставлять динамический источник. С другой стороны, можно сгенерить нужный "оберточный" xsl на сервере. Он будет содержать только некоторое кол-во директив include (или import), и будет запросто загружаться клиентским браузером.