Forum Webscript.Ru

Общие => Веб-технологии => Тема начата: Vetroff от 11 Июня 2003, 22:06:43

Название: зачем нужен XML
Отправлено: Vetroff от 11 Июня 2003, 22:06:43
Вот много шума вокруг XML, а зачем он вообще нужен, ну принцип я понял, а конкретнее кто-нибудь может пояснить, я к тому надо ли его учить или если есть пхп и бд, может и xml то и ни к чему?
Название: зачем нужен XML
Отправлено: Stas от 11 Июня 2003, 23:17:24
а между хостами в инете ты тоже будешь удаленно в бд подключаться ? А если там firewall ? А как же platform independence ?

.NET кстати через XML все свои web-services **ярит...
Название: зачем нужен XML
Отправлено: Xander от 11 Июня 2003, 23:30:32
мои 5 копеек:

XML нужен для описания данных. Тут тебе и разбиралки готовые, и возможность (необходимость почти!) собственную граматику написать, и все на свете. Поэтому XML можно использовать для:
- обмена информацией между разными программами, не изобретая велосипед (свой  формат передачи данных+парсер+всяая прочая фигня)
- для гибкого отображения данных (пишем набор xslt правил, и выводим один файл с данными хоть в HTML, хоть в WAP, хоть в RTF)
- для написания сложных конфигов программ

Но! Все это сопряжено с работой с парсерами XML. То есть с необходимостью изучать API этих парсеров, включения их в свои программы, etc. Ну и изрядные накладные расходы на обработку XML.
Название: зачем нужен XML
Отправлено: Макс от 12 Июня 2003, 00:19:28
Я вот постепенно созреваю к использованию связки
XML+XSLT -> HTML
Точнее наверное будет написать
MySQL -> XML -> XSLT ->HTML

Основное достоинство - вся логика вывода переносится в XSLT.
PHP (здесь может быть любой язык - перл, питон, ява) только формирует XML и указывает какой XSLT на него наложить.
Если меняется дизайн - менять нужно только XSL-шаблоны, без изменения ПХП.
У меня уже не раз было, что при изменении дизайна приходится менять и php-код и код шаблонов. С XSLT эта проблема отпадает - нужно изменить лишь XSL-шаблон.

Это лишь мое первое впечатление от работы с ним. Опыта пока немного.
Название: зачем нужен XML
Отправлено: Xander от 12 Июня 2003, 00:49:23
Макс
а ты xml-xslt преобразование на лету делаешь, или статику генеришь?
мне интересно, насколько я прав в утверждении, что это затратное дело - хтмыль на лету генерить.
Название: зачем нужен XML
Отправлено: Макс от 12 Июня 2003, 01:10:43
Рабочих проэктов с этой связкой я еще не писал - так просто тестовые скрипты делал.
Все что я делал - тестировал у на своем стареньком Celeron-е под win98. Уверен, что под юнихом все будет гораздо быстрее.
Тормоза действительно есть. Для непопулярных сайтов - это проблемой не является.
Для посещаемых же надо решать как-то - статику генерить либо серверное кеширование делать (я пока больше к последнему варианту склоняюсь).
Название: зачем нужен XML
Отправлено: Xander от 12 Июня 2003, 01:29:13
Макс
ага, а потом “непопулярный” сайт “заслэшдотят” :)
Название: зачем нужен XML
Отправлено: Макс от 12 Июня 2003, 01:38:23
В дополнение.
Под виндосом можно ведь еще и MSXML использовать через COM.
А для прозрачной работы с XSLT-парсингом есть Pear::XML::XSLT::Wrapper (правда пока только альфа версия), но я с ним не работал.

Есть проєкт Krysalis - попытка создать Cocoon только на ПХП.
Позволяет создавать сайты на XML+XSLT. Я слышал о нем неплохие отзывы. Так вот он использует именно серверное кеширование для снижения нагрузки. И AFAIK так сделано во многих проэктах (не только на ПХП) - Сocoon, AxKit, (Resin вроде тоже свои XSP кеширует)
Название: зачем нужен XML
Отправлено: ThE0ReTiC от 12 Июня 2003, 02:53:52
Цитировать
Макс:
MSXML

Работает на стороне клиента.
Это такое ненавязчивое предложение его поставить
Потом про Platform Independence можно забыть.
Надо разбирать на сервере.
для этого нужен парсер
Xerces (? - не помню как пишется точно - в одном из апачевских проектов можно посмотреть) например
Название: зачем нужен XML
Отправлено: Макс от 12 Июня 2003, 13:58:42
ThE0ReTiC
Цитировать
Работает на стороне клиента.
Это такое ненавязчивое предложение его поставить

Я просто написал что его можно использовать если скрипт работает на WIN-хостинге и конечно же на стороне сервера.
Работать с ним на ПХП можно точно так же как и на ASP (asp ведь его используют для XML+XSLT трансформации AFAIK).
А для того чтобі обеспечить кроссплатформенность я предложил использовать Pear::XML::XSLT::Wrapper (http://cvs.php.net/co.php/pear/XML_XSLT_Wrapper/XSLT_Wrapper.php?r=1.9)
(можно самому написать)
Название: зачем нужен XML
Отправлено: Metaller от 16 Июня 2003, 10:08:35
Можно sablotron...
Название: зачем нужен XML
Отправлено: Vetroff от 19 Июня 2003, 08:54:12
Нет, я вроде понял как его разбирать, но как его создавать на лету,  как добавлять новые данные? или оно для этого не предназанчено?
Название: зачем нужен XML
Отправлено: Макс от 19 Июня 2003, 12:21:10
Vetroff
это зависит от серверного языка.
В php есть расширение domxml - с помощью которого можно создавать XML (http://detail.phpclub.net/2003-05-12.htm).
+ если работаешь с БД то часто исползуют какие-то самописные функции/классы для перевод результата SELECT-запроса в XML:
То есть у меня например это выглядит так:

$res = $conn->Execute("SELECT * FROM tab WHERE id > 10");
$xml = rs2xml($res);

в результате в $xml будет xml-строка представляющая результат запроса.
Вот статья на эту тему => http://detail.phpclub.net/2002-11-27.htm
Название: зачем нужен XML
Отправлено: Vetroff от 19 Июня 2003, 12:37:35
а на хрена генерить хмл если вся инфа и так в бд, это на случай если эта инфа нужна для других целей?
Название: зачем нужен XML
Отправлено: ThE0ReTiC от 19 Июня 2003, 12:59:29
Цитировать
а между хостами в инете ты тоже будешь удаленно в бд подключаться ? А если там firewall ? А как же platform independence ?

Vetroff
Еще нужны предлоги ?
Название: зачем нужен XML
Отправлено: AlieN от 19 Июня 2003, 13:10:18
XML идеально подходит для обмена данными, вот помню старые времена: нам данные о погоде и программу передач в XML давали
а мы для яндекс-магазина XML генерили
Название: зачем нужен XML
Отправлено: Макс от 19 Июня 2003, 17:43:03
Vetroff
Цитировать

а на хрена генерить хмл если вся инфа и так в бд, это на случай если эта инфа нужна для других целей?

Тебя интересует как работают сайты, использующие XML/XSLT ?
1. Есть данные
2. Обычно эти данные хранятся в БД
3. У тебя есть набор XSLT-шаблонов которые трансформируют данные из XML формата в HTML
4. Чтобы воспользоваться своими шаблонами тебе нужно перевести данные в XML-формат.
5. Теперь можно трансформировать эти данные из XML в HTML
Для этого и гененрируется XML

Если тебе это не нравится юзай простые шаблоны, как это делают тысячи программеров во всем мире (в том числе и я)

PS
я не собираюсь убеждать кого-то с своей правоте и не призываю юзать XML/XSLT. Я просто описал один из возможных вариантов использования этой технологии.
Еще пол-года назад я был ярым противником использования цепочки DB => XML+XSLT => HTML (WML)

PPS
советую почитать статьи про XML на http://detail.phpclub.net/
Название: зачем нужен XML
Отправлено: Vetroff от 19 Июня 2003, 18:03:02
вообщем я все понялю протсо пока нет необходимости в этом
Название: зачем нужен XML
Отправлено: xRUSha от 08 Июля 2003, 17:49:39
а у MySQL сервера есть возможность выводить даные в формате XML.
что-нить типа mssql\'вского "for xml explicit" или "for xml auto"?
Название: зачем нужен XML
Отправлено: Макс от 09 Июля 2003, 12:27:34
в mysql 4 вроде можно запустить
mysql --xml
для получения данных в XML (но сам я это не пробовал). Просто написал небольшую функцию, которая recordset в XML переводит