[docs] Re: chunker.xsl logic

Vitaly Ostanin vyt на vzljot.ru
Пн Сен 1 11:36:27 MSD 2003


On Tue, 26 Aug 2003 19:31:40 +0400
Oleg A.Paraschenko <olpa на xmlhack.ru> wrote:

>   Привет!
> 
> On Tue, 26 Aug 2003 18:59:59 +0400
> Vitaly Ostanin <vyt на vzljot.ru> wrote:
> 
> ...
> > >   А что хочется?
> > 
> > Сделать chunked вывод для website - это тот же docbook с
> > врапперными тегами для страниц.
> 
>   А родной /usr/share/xml/website/xsl/chunk-website.xsl не
>   подходит?

Нет, это просто другой способ сборки (альтернатива Makefiles), не
тот chunk, который docbook-xsl/html/chunk.xsl, несколько
html-страниц из одной xml-страницы он не делает.

> > > > возник вопрос: а может, кто-то уже разобрался с логикой
> > > > html/chunk.xsl ?
> > > 
> > >   Недавно пробовал. Особо разбираться не стал, ибо понял,
> > >   что вклиниться туда без изменения chunk.xsl почти
> > >   невозможно.
> > > 
> > >   Примерно так:
> > 
> > > * создаётся дерево кусков (на это повлиять можно)
> > 
> > На каком этапе?
> 
>   Ещё перед началом XSLT преобразования:
> 
> <xsl:variable name="chunk.hierarchy">
>  ...
>  <xsl:apply-templates select="/*" mode="find.chunks"/>
>  ...
> </xsl:variable>

Ага... Это не совсем то, что нужно. Эта переменная значима только
при использовании chunk.fast, который по умолчанию выключен.

Уже понятно, что тот факт, что элемент является chunk'ом,
определяется шаблоном "chunk". А вот логику срабатывания на
элементе в моей каше импортов website/docbook, похоже, без xsldbg
не понять...

> > На чём срабатывает создание дерева кусков?
> > 
> > > * находится поддерево, которое будет обрабатываться (обычно
> > > весь документ)* для "компонентных" элементов (book,
> > > chapter, etc) дерево кусков игнорируется: они всегда
> > > создают новые куски* для каждого куска:- обрабатывается
> > > содержимое- добавляются навигационные ссылки
> > > - создаются toc (увы, только из известных элементов),
> > > список фигур и другие списки- возможно, ещё что-то
> > > - создаётся файл, в который выводятся результаты
> > 
> > Спасибо, но мне нужно с самого начала.
> > 
> > То есть существует "драйвер" chunked вывода - html/chunk.xsl
> > 
> > Он накладывается на XML документ. Меня интересует, в какой
> > момент, срабатывая на чём, создаётся вывод в несколько
> > файлов.
> 
> <xsl:template match="sect1|sect2|sect3|sect4|sect5|section">
>   <xsl:variable name="ischunk">
>     <xsl:call-template name="chunk"/>
>   </xsl:variable>
> 
>   ...
>   a) (кусок)      <xsl:call-template
>   name="process-chunk-element"/>
> 
>   b) (не кусок)   <xsl:apply-imports/>
>   ...
> </xsl:template>

Ага... Похоже, что вот это именно то, что мне нужно. Спасибо!

>   Chunk создаётся где-то внутри "process-chunk-element".

<skipped/>

-- 
Regards, Vyt
mailto:  vyt на vzljot.ru
JID:     vyt на vzljot.ru
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: отсутствует
Url     : /pipermail/docs/attachments/20030901/b1bfa2dc/attachment.bin


Подробная информация о списке рассылки docs