ВУЗ:
Составители:
Рубрика:
изменяет размеры треугольника, или если неизвестно, имеет она побочные эф-
фекты или нет, тогда становится важно вызывать ее только один раз.
Можно найти объяснение тому, почему в заявлении считалось желатель-
ным, чтобы язык подходил и для пакетного, и для интерактивного использова-
ния, и чтобы он был способен к постепенному отображению (progressive render-
ing). Существует неприятный момент, когда при загрузке большого XML
документа нельзя ничего увидеть на экране, пока с сервера не будет получено
все до последнего байта. Точно так же, внеся в XMLдокумент небольшое из-
менение, было бы неплохо иметь возможность определить, какие изменения
нужно произвести в экранном отображении, не вычисляя все заново с самого
начала. Если язык имеет побочные эффекты, тогда в языке должен быть опре-
делен порядок выполнения инструкций, иначе окончательный результат будет
непредсказуемым. При отсутствии побочных эффектов инструкции могут вы-
полняться в любом порядке, а это означает, что в принципе можно обрабаты-
вать фрагменты таблицы стилей выборочно и независимо.
Достиг ли XSLT этих целей на самом деле вопрос спорный. При гибко-
сти выражений и моделей, разрешенных теперь в языке, безусловно, не просто
выяснить, на какую область выходного документа воздействует небольшое из-
менение в какомто фрагменте входного документа. Кроме того, все сущест-
вующие XSLTпроцессоры требуют, чтобы весь документ был загружен в па-
мять. Однако было бы ошибкой ожидать слишком многого так скоро. Когда
Е. Ф. Кодд (Е. F. Codd) опубликовал в 1970 году реляционное исчисление, он
заявил, что декларативный язык был желателен, потому что его можно оптими-
зировать, что не было возможно с навигационными языками доступа к данным,
используемыми в то время. Фактически потребовалось еще пятнадцать лет на
то, чтобы методы реляционной оптимизации (и, если быть честным, цена аппа-
ратных средств) достигли уровня, при котором крупные реляционные базы
данных стали коммерчески оправданными. Но в конечном счете он оказался
прав, и есть надежда, что те же самые принципы со временем тоже приведут к
успехам в области языков преобразований и оформления.
Несомненно, всегда будут существовать преобразования, для которых
должен быть доступен весь документ, прежде чем можно будет получить лю-
бой вывод; например, когда таблица стилей сортирует данные или когда она
работает с оглавлением. Но во множестве других преобразований порядок вы-
вода прямо отражает порядок ввода, и в таких случаях должна существовать
возможность постепенного отображения. Во время написания книги стали по-
являться первые признаки того, что конструкторы используют эту возмож-
ность: процессор XalanJava 2, например, выполняет поток преобразования па-
раллельно с потоком анализа, следовательно, преобразователь может произво-
дить вывод еще до окончания работы анализатора; и процессор MSXML3 (судя
по его API), кажется, разработан по такому же принципу. Средство отладки Sty-
lus Studio, прослеживает зависимости между областями выходного документа и
шаблонными правилами, которые использовались для их формирования, так
что просматривается потенциальная возможность производить выборочный
вывод после выполнения небольших изменений в документе.
58
Страницы
- « первая
- ‹ предыдущая
- …
- 56
- 57
- 58
- 59
- 60
- …
- следующая ›
- последняя »
