19.01.12 16:46
Весьма часто во время преобразования требуется создать несколько результирующих документов. Например, вам может понадобиться создать отчет о прохождении преобразования или разделить входной документ на несколько результирующих документов (например, разбить рассказ на главы). Или же вам может быть нужно создать набор результирующих документов, которые будут использоваться (как при создании кадрового (frameset) документа HTML) совместно с двумя документами, отображаемыми во фреймах.
Создание нескольких результирующих документов настолько распространенная задача, что практически все процессоры XSLT позволяют вам это сделать, даже в XSLT 1.0, где отсутствуют необходимые для этого средства. Процессоры XSLT добавляют для этого новые элементы расширения. Например, Xalan предоставляет элемент
Теперь при помощи атрибута
В процессоре Saxon применяйте элемент
To же можно сделать и в XT; в этом случае используйте пространство имен <http://www.jclark.com/xt» с элементом
Все это создало весьма запутанную ситуацию, поскольку каждый разрабатывал свои собственные решения. По этой причине в XSLT 1.1 для поддержки нескольких результирующих документов был представлен новый элемент,
•
•
•
•
•
•
•
•
•
•
•
Этот элемент содержит тело шаблона.
Следующий пример основан на упрощенной таблице стилей. В этом случае я создал в HTML-документе две рамки (frame), а также два HTML-документа для отображения в этих рамках (
Затем я могу создать вторую рамку и ее документ:
Заметьте, однако, что этот пример работоспособен только в XSLT 1.1.
На момент написания книги в одном процессоре XSLT элемент