From: Паращенко Олег <http://xmlhack.ru/authors/OlPa/>
Subject: Архив дискуссии в ru.php "XML. С чего начать"
Архив дискуссии "XML. С чего начать?" эхи fido7.ru.php
Компановка информации: http://xmlhack.ru/
05.08.01 Паращенко Олег <http://xmlhack.ru/authors/OlPa/>
sad <sad@spider.ru>
Втр 29 Май 2001 12:48:05 8 из 137
> Что неудовлетворяет в существующей ситуации?
в аналогичных ситуациях меня лично неустраивает то, что представление сайта конечному
зрителю сильно привязано к моим скриптам.
А программеру с дизайнерами всегда трудно.
Оторвать от скриптов в принципе удается только статические элементы результирую
щего гипертекста и на выходе их просто
подклеивать.
Те же данные , которые скрипт вытаскивает из БД приходится ему же и размечать в
хтмл (что очень нудно и непринципиально).
Вот в этом свете я и нахожу полезным использование XML на стороне сервера.
Приняв соглашение о представлении скриптом данных (достатых из БД) в рамках XML
,
я забываю о хтмл.
А дизайнеры учат язык шаблонов. Для обработки ХМЛ и сращивания его с остальными
частями оформления.
Обращаюсь к Вам всем с просьбой поделиться своим опытом использования XML.
Как Вы используете XML?
Какие Вам известны "надевальщики" шаблонов? Технологии и языки шаблонов?
Какае из них Вы предпочитаете?
Очень прошу ответить. Я только слышу отовсюду вопли: "XML - уже стандарт!",
"рулез" и прочее.
НО не видел еще ни одного работающего решения на основе серверсайд-XML.
вот и возникают сомнения разные... А может его никто и не использует по прямому
назначению???
может имеет смысл занять "нишу" и написать свой надевальщик шаблонов с максимально
упрощенным языком??
Yuri Makassiouk <racer@bfpg.ru>
Срд 30 Май 2001 14:20:02 19 из 137
> YM> Есть решение и есть недавний положительный опыт использования того же движка
> YM> для поддержки сайта со структурой фронт-енда принципиально другой - фреймы
> YM> против простых страниц и т.п. Мне дико понравилось =)
>
> А можно об этом поподробнее ? Подход/инструментарий/etc.
> Очень интересно. И не только мне, я полагаю.
> Тут в последнее время об этом спрашивают постоянно.
В двух словах пока - вообще, наверное, статью буду писать
1. Данные в реляционной базе (в виде данных, а не XML).
2. Есть движок, который формирует XML-документ. У меня - чисто динамически,
хотя возможны и варианты, наверное.
3. Далее, саблотрон трансформирует этот документ по шаблону. Хитрый момент -
как движок знает, какой шаблон использовать - тут есть варианты, как всегда,
и надо, видимо, смотреть по природе приложения. Жестко задавать структуру
набора шаблонов не советую - с тем же магазином - у одного три шаблона, у
другого уже больше, и еще будет больше. Они зависят только друг от друга,
потому что логическая структура хтмл-я в них тоже заложена.
4. Есть желание сделать на том же скрипте сервис для wap, тогда точно можно
сказать, что идея побеждает.
Инструментарий незатейлив - XMLSpy - самое специфическое средство. И то, я
его использую почти только для проверки на well-formedness шаблона.
Редактировать в нем невозможно.
Vladlen Bulatov <vlad@econ.msu.ru>
Срд 30 Май 2001 22:01:14 34 из 137
> > > В итоге ты деньги получаешь, а XML-щики - нет.
> И вообще, что это за подход?
Юрий, постараюсь объяснить за тебя ;)
1) XMLщики делают 99% работы один раз
2) остальные от 1% до тех же 99, что в среднем - 50%
когда же появляется или новый заказчик, или старый просит что-либо
исправить, то -
1) XMLщики делают 1% работы
2) остальные - 50%
3) на стоимости же работ это почти не отражается
4) т.к. XMLщики делают это быстрее, то и заказчик к ним относится
благосклонее
> >> 1) простенький пример (хотя бы из моего предыдущего письма) - можно?
> YM> Hапиши - чего пример хочешь, конкретно.
> Пример: нужно вывести несколько переменных и фрагмент базы на экран
> (скажем, список товаров каких-нибудь). Задание параметров выборки не
> интересует, только вывод. Хочу увидеть текст шаблона (и сопутствующих
Почему-то не спрашиваешь про структуру XML-документа, DTD я писать не буду,
а выглядит он, пусть, как:
<?xml version="1.0"?>
<page>
<title>My suppa-duppa page</title>
<dataArray>
<dataElement>
<title>Agfa SnapScan 1236u</title>
<price>799.99</price>
</dataElement>
<dataElement>
<title>Lexmark Z52</title>
<price>1499.99</price>
</dataElement>
</dataArray>
</page>
> файлов, if any), плюс указания на то, как это нужно парсить (ссылки
> на нужные функции и/или extensions).
В моем классе используется xslt_process:
if (@xslt_process($this->xslText, $this->input, $result))
$this->output = $result;
- это к вышеприведенным кускам никак не привязано, ессно. Кроме того, можешь
парсить любым другим парсером, какой найдешь.
Написал тебе этот пример и аж скучно стало самому - на демонстрацию
возможностей оно никак не тянет... Так - тривиальщина.
Обрати внимание - в результате будет html (не XHTML), потому как тег <html>
тебе писать было, видимо, влом. Вот и я не написал.
> >> 2) в результате в браузере что имеем, HTML или XHTML?
> YM> Чего хочешь, то и генерируй, хоть голый текст...
> YM> А что за разница для браузера между HTML и XHTML?
> Я не уверен, что тот же Netscape сжует , а совместимость
> с ним может потребоваться.
Нет, не сжует. А сжует.
> Пример: нужно вывести несколько переменных и фрагмент базы на экран
> (скажем, список товаров каких-нибудь). Задание параметров выборки не
> интересует, только вывод. Хочу увидеть текст шаблона (и сопутствующих
> файлов, if any), плюс указания на то, как это нужно парсить (ссылки
> на нужные функции и/или extensions).
самый понятный пример (для вас - ПХПешников :) -
-------------------------------------
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="[75]http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<HTML>
<HEAD>
<TITLE><xsl:value-of select="title"/></TITLE>
</HEAD>
<BODY>
<TABLE>
<TR>
<TD>Title</TD>
<TD>Price</TD>
</TR>
<xsl:for-each select="data/item" order-by="title">
<TR>
<TD>с</TD>
<TD><xsl:value-of select="price"/></TD>
</TR>
</xsl:for-each>
</TABLE>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
-------------------------------------
а вот пример, который ближе душе XMLщика ;) -
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="[76]http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xslutput encoding="windows-1251"/>
<xslutput indent="yes"/>
<xsl:template match="/">
<HTML>
<xsl:call-template name="doHead">
<xsl:with-param name="title" select="/title"/>
</xsl:call-template>
<xsl:call-template name="doBody"/>
</HTML>
</xsl:template>