PHP в деталях



         

XML + XSLT: ещё раз о специализации программных средств


DL
28.8.2001

На днях на выпуск об XML мне написал свой отзыв человек с ником вЪедливый. Мы решили продолжить обсуждение, и хочу дать ответ на [] в форум.

У xml xsl есть много подводных камней. Грамотно использовать его может лишь уже поднаторевший в этом.

(лирическое отступление? попробуйте поискать {Fatal error: Call, Warning: MySql} в яндексе. Результаты просто поразительны. И после этого вы будете всех перетаскивать на xml xsl ?).

1. Создавать xsl шаблоны ? это изучение верстальщиками еще одного языка. Это для программиста новый язык ? новый роман, верстальщикам сложнее.

2. Дополнительные трудности по написанию в строгом синтаксисе чтобы xml был валидным (кавычки, регистр, слэш на одинарных тагах, закрывать параграф, когда наконец все проги будут понимать русские название элементов и аттрибутов ???)

3. Выдавать xml на php сложнее чем html. На больших проектах это существенно замедляет отладку.

4. Уродская ситуация с xml и русским языком. Примерно такая же как была в jave на заре развития. Хотя конечно принципиально поддержка разных языков продумана, но новичков отпугивают первоначальные сложности. Каждая новая прога начинает с игнорирования всего кроме ascii и utf8. Php "Supported target encodings are ISO-8859-1, US-ASCII and UTF-8". Конечно это не проблема для тех кто уже почуствовал запах xml.

5. Создавать html на лету по xsl это ресурсоемко. Есть принципиальные проблемы с буферированием и получением лишь части xml. Пусть нам нужно выдать большую страницу полученную по большому xml (условно xml ? 1 Мб). Придется загрузить ВЕСЬ xml трансформировать и выдать ВЕСЬ ответ зараз. Без xml мы можем читать файл частями и выдавать по мере прочтения а не все сразу. С xml придется использовать SAX парсер ? опять доп трудности.

6. Вместе с xml все равно необходим скриптовый язык. Простейший пример ? показать N символов текста node, причем N выбирает клиент (т.е. N параметр представления а не структуры), счетчики (цифры либо буквы). Php либо jscript либо ... Кстати xml любит раздувать конструкции xsl




Содержание  Назад  Вперед