[docs] Re: chunker.xsl logic

Oleg A.Paraschenko olpa на xmlhack.ru
Вт Авг 26 19:31:40 MSD 2003


  Привет!

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 не подходит?

> 
> > > возник вопрос: а может, кто-то уже разобрался с логикой
> > > html/chunk.xsl ?
> > 
> >   Недавно пробовал. Особо разбираться не стал, ибо понял, что
> >   вклиниться туда без изменения chunk.xsl почти невозможно.
> > 
> >   Примерно так:
> 
> > * создаётся дерево кусков (на это повлиять можно)
> 
> На каком этапе?

  Ещё перед началом XSLT преобразования:

<xsl:variable name="chunk.hierarchy">
 ...
 <xsl:apply-templates select="/*" mode="find.chunks"/>
 ...
</xsl:variable>

...

<xsl:template match="*" mode="find.chunks">
  <xsl:variable name="chunk">
    <xsl:call-template name="chunk"/>
  </xsl:variable>
  ... recursion ...
</xsl:template>


> На чём срабатывает создание дерева кусков?
> 
> > * находится поддерево, которое будет обрабатываться (обычно
> > весь документ)* для "компонентных" элементов (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".

> 
> То есть что подсунуть из chunk.xsl в стиль для website (сильно
> правленный, так что изменения не пугают :)), чтобы вывод
> создавался - "один webpage - один html", а "один webpage -
> несколько html".
> 
> <skipped/>
> 
> -- 
> Regards, Vyt
> mailto:  vyt на vzljot.ru
> JID:     vyt на vzljot.ru


-- 
Oleg Paraschenko  olpa@ http://xmlhack.ru/  XML news in Russian



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