Как стать автором
Обновить

Комментарии 67

изучаешь? молодец! Но, в блоге XML это знают почти все=]
Если бы в блоге XML уже была такая статья, было бы действительно как-то нелепо. А так эта заметка вполне имеет смысл. А то получается, все знают, но никто не рассказывает — этакие заговорщики ))
Но это немного разные по уровню туториалы. Тут же вообще знакомство, а у Вас конкретный солюшн, который требует минимального понимания. Здесь никакого понимания можно не иметь.
Ссылка немного не туда ведёт…

У тебя досаточн подробно всё описано, нужно будет обязательно почиать. А я хотел как можно кроче всё это описать, чтобы можно было газами пробежатья и уловить осноную идею.
А я вот с xsl пока не особо, буду рад почитать статьи для новичков!
НЛО прилетело и опубликовало эту надпись здесь
но согласитесь, что если блог про Английский язык, то не нужно сюда писать алфавит.
Я вообще офигел, когда прочитал о чем пост, думаю — «а точно ли я на ссылку с главной нажал».
ну вам, такому пиздатому, может в гроб уже пора ложиться: вы же самый умный, самый знающий, и самый одаренный. А мы пока что еще поживем, поучимся =)
зачем вообще что-то писать в блок по аглицкому языку? любой знающий аглицкий и так всё про него знает.
Не обязательно, изучение языка долгий процесс: Как учить слова, как строить предложения, как правильно заниматься, как добиваться правильного произношения, как быстро читать…

Тут как и везде нужно совершенствоваться.
ну, если бы такой же процент населения говорил бы на XML, то тогда да, не надо было бы сюда писать о таких базовых вещах. А если бы на английском говорили только люди группы какойто узкой специальности, то стоило бы и алфавит запостить для любознательных (;
когда я начал изучать XSLT мне здорово помог
вот этот мануал — www.w3schools.com/Xsl/
спасибо, почитаю
однажды фондовая биржа РТС решила, что отныне посылать клиринговые отчеты она будет в xml-формате…

так я познакомился с .xslt
Меня всегда интересовала производительность этого xslt преобразования.
Почему-то кажется, что это довольно долго выполняется.
В любом случае это выполняется на клиенте, а на сервер, который это дело формирует наоборот нагрузка должна меньше становиться, таблица преобразований -то одна, и нужно генерить только xml-документы.
Насчёт клиента — не обязательно :)
Работал я с одним движком, который брал этот процесс на себя.
он не один) вообще как правило xslt выполняются на сервере.
НЛО прилетело и опубликовало эту надпись здесь
зачастую таки дольше…
скрипты вы можете оптимизировать, XSLT-движок только выбрать готовый. конечно вы можете оптимизировать свои шаблоны, переписать некоторые преобразования но в целом технология XSLT очень и очень прожорлива… хотя и гибкая до безобразия :")
НЛО прилетело и опубликовало эту надпись здесь
ну, когда просто то но конечно быстро. речь идет о более-менее сложных манипуляциях…
Ну многие движки опенсорны.
угу, и обычно уже оптимизированы поэтому оптимизировать дальше обычно некуда. а оно все равно не летает :(
Да, действительно, XSLT-преобразование довольно жадное до ресурсов, но в совокупности с правильным кешированием — очень полезная вещь. В частности разнесения прогрммного кода и дизайна.
Иронично в блоге XML при обновлении комментариев: «Возникла ошибка в получении XML данных» :)
Что все преобразования делаются на стороне клиента это не всегда так, например, мобильные устройства могут не потянуть такое.
За статью спасибо, но хотелось бы в дальнейшем увидеть более сложные манипуляции с преобразованием.
НЛО прилетело и опубликовало эту надпись здесь
А помоему вы просто фанатик который не любит IE :)

А ктонебуть знает как можно определить на сервере может ли браузер выполнять xslt преобразование.
Вероятно в Accept: искать «application/xml». Если оно передаётся.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Opera
НЛО прилетело и опубликовало эту надпись здесь
> Firefox делает ровно то же самое что и Safari.

только в случае гипертекста. для xml-ля он показывает дерево с подсветкой синтаксиса, фолдингом и тп

> Ведь если я IE дам XHTML без указания CSS или XSLT, он же не покажет его в этаком иерархическом виде?

ага, он предложит его сохранить на диск ;-)

> в чем разница между XHTML, который по сути XML с определенным namespace и любым другим XML? В namespace?

в том, что браузер знает этот неймспейс, а потому работает с его элементами по особому. например, [инпут тип=«файл»] на голом xml+xsl+css+js не сделать — нужен именно html. основное отличие html jn xml в том, что:
html — это прежде всего текст, размеченный дополнительно тэгами
а xml — это прежде всего дерево с данными, где имена тэгов и их взаимное расположение не менее важно чем содержащийся в них текст.

> Так namespace-selector в CSS вообще недавно появился, не уверен, поддерживает ли его IE вообще.

не поддерживается, но есть обходные пути: d-o-b.ru/?article:kill.html

> Получается у IE один набор правил для XHTML, и другой — для любого другого XML.

ие не поддерживает xhtml, но он поддерживает html, xml и xslt. при этом html можно генерировать из xml посредством xslt, а можно выдавать xhtml с миме-типом html, так как он синтаксически с ним совместим и ие его нормально скушает (при учёте наложения некоторых дополнительных ограничений на xhtml код...)

НЛО прилетело и опубликовало эту надпись здесь
давай подойдём к вопросу с практической точки зрения. какая может быть польза от отображения только текстового содержимого xml-файла?
НЛО прилетело и опубликовало эту надпись здесь
«визуализация не задана» и «задана пустая визуализация» — две большие разницы.

xml — это нечто большее, чем простой гипертекст, поэтому вырезание всех тэгов — не самая разумная дефолтная визуализация.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="msxsl"

Это вот не нужно.
Помню, использовал xslt для генерации сайта со статическими страницами из одного большого xml. Даешь Saxon'у два файлика: xml и xslt, и через 10-20 сек. более ста страниц сверстаны — лепота.

Но вот что меня всегда убивало в браузерной обработке xslt — это необходимость в xml ссылатсья на xslt. Ну зачем?!!! Почему данные должны содержать информацию об отображении а не наоборот? Может знающие люди мне объяснят, в чем тайный смысл такого подхода?
может быть для того, чтобы браузер знал какой xslt применить к загруженному xml-файлу? но это так, догадки.
Я-то думал, что логичнее было браузер направлять на xslt, который бы ссылался на xml. В таком случае можно было бы иметь несколько представлений одних данных, а получается наоборот.
Полностью согласен
мммм… а если у вас одно представление и мульён xml? ))
у вас будет мульён представлений?
с другой стороны, если прописывать в представлении данные, то нельзя получать разные данные в одном представлении =)

на практике, однако, представление меняется реже данных и устаревание представления не столь критично, как устаревание данных => представление можно более эффективно закэшировать.

хотя, конечно, самый шик — выдавать xml-ку, в которой содержатся только ссылки на данные и представление. такую xml-ку можно быстро генерить на лету, а данные и представление отдавать из кэша.

но к сожалению браузеры не поддерживают xml-includes, а xsl:document не является кроссбраузерным, так что подгружать данные придётся аяксом…
Полнейшая чушь. Один xslt файл может преобразовывать совершенно разные xml'имны, причём весьма разным способом каждую в зависимости от содержимого. Браузер логично «направлять» именно на данные — вы ведь на сайт заходите смотреть именно на данные (информацию), а не на обрабатывающий их скрипт.
Может я чего-то недопонимаю, но по-моему, если брать HTML, то HTML-документ (данные) ссылается на CSS (представление), а не наоборот. Так же и в XML-XSLT.
Насколько я понимаю, цель выкладывания xml в качестве страницы в том, чтобы избавиться от представления и предоставить данные, которые можно представлять каким угодно способом. Иначе как раз и получается, что все как в html-css.

Короче, на мой взгляд, вообще неправильно их каким-то жестким образом (ссылаться из xml на xslt или наоборот) связывать. Имело бы смысл давать браузеру ссылку на xml и ссылку на xslt. Иначе теряется гибкость.
ну вот запрашиваете вы страницу хттп://интернетмагазин. ру/продукты/

Что вы должны получить? файл с данными к которому прикреплён файл преобразований или наоборот?
По-моему первое. Таблица преобразований скорее всего бует готовым файлом, а вот xml с данными будет создаватьс динамически. И потом, как было выше замечено, если одна таблица преобразований обрабатывает несколько файлов, как в ней указать, к какому файлу она относится.

И потом все данные в xml-документе находятся внутри корневого элемента, а таблица подключается с помощью специальной директивы препроцессора.

Другое дело, если вы на сервере это дело обрабатываете. В дотнете есть специальные методы, там у вас отдельно данные и отдельно таблица преобразований (оба в виде xml-документов). Они передаются в метод, а на выходе получается новый документ и никто ни на что не ссылается.
Все, убедили. Ordos persuasion skill +1
Здаюсь ))
рассматривай это как «дефолтное представление» =)
кому надо — тот получит данные и наложит на них нужное ему представление. и сделать это будет гораздо проще, чем в случае с html+microformats
Все, убедили. tenshi persuasion skill +1
Здаюсь ))
Обожаю любовь авторов к практике!
Отличный практический пример. Спасибо.
Заметка написана очень просто и доступно. Спасибо!
А есть ли какие либо редактор для ускоренния построения XSLT для предброзования в XHTML? В идеале только мышкой чтоб можно было обойтись )
Visual Studio 2008 (воможно и более ранние) Там много возможностей от просмотра сгенерированного документа до дебага при обработке xml.
На счёт одной мышкой — это врятли, хотя кто знает…
НЛО прилетело и опубликовало эту надпись здесь
А можете что-то порекомендовать для написания сложной документации в связке XML-XSLT? На работе коллеги пишут множество документов, которые в дальнейшем переводятся на иностранные языки. Интересует всё: редакторы, цепочка «исходный текст — … — конечный документ», советы, ссылки, личный опыт.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории