А зачем XML?

Anton

Just Programmer
А зачем XML?

Добрый день всем. Пошел 3 день вынужденного изучения XML и второй день терроризирования на эту тему форума. :) Отдельное спасибо Sababa за помощь.

Вобщем у меня возник вполне законый вопрос ... А зачем он нужен??? В смысле XML нужен? Самому я могу сказать что уго действительно удобно использовать при написание конфигов, удобно использовать при переносе БД. Ну еще говорят удобно делать описания структур докуметов сложных и прочего ... наверно, сам не пробовал но примерно представляю. А в остальном зачем??? почему теперь везде рев на эту тему стоит ... ДЕЛАТЬ НАДО С XML!!! Иначе плохо и не правильно. Почему? Вот мне например было дано тестовое задание - Сделать ленту новостей с использованием XML/ XSL/PHP ... Как я зделал, данные в БД, когда надо они из БД выбераються в ХМL и с помощью XSL и Sablotoron превращаються в HTML для пользователя.

А зачем такое надо??? В чем удобство??? можно было сразу в шаблон и все нормально??? Можно ли сделать новостную ленту на XML что бы это было действительно удобно???

Вобщем такое вот концептуальное непонимание в рядах чайников имеет место :)) Буду очень рад ознакомиться с мнениями людей, кторые эту технологию уже почувствовали.
 

Voxus

founder (Старожил PHPCluba)
это просто тупо мода
для новостной ленты XML/XSLT - это из пушки по воробьям

:p
 

Anton

Just Programmer
Так а вобще идеология ...выбрал из БД ...сформировал XML и потом его превратил в HTML это верно??? Я тут начитался много радостного писка народа, что теперь все крукто ... современные БД позваляют проолучать результаты запросов в виде XML ... А вот что это дает???
 

antonio

Moderator
Команда форума
Да лишний геморой это дает при создании сайтов. Я считаю, что в на данный момент применение XML актуально только в плане обмена данными между приложениями, которые принципиально не могут взаимодействовать другим способом, либо написание этого взаимодействия очень трудоемко. XML суть не более чем посредник при обмене данными.
 

Anton

Just Programmer
Я примерно к тому еж выводу прихожу, но просто тяжело понять, как поступать когда хотять такие вещи .. типа как новстная лента с XML или еще что-то подобное ... или его лепеть просто вот так какая прилипил от балды или как??? поделитесь опытом ..
 

antonio

Moderator
Команда форума
А чем это требование мотивирует заказчик? Если ему просто ХОЧЕТСЯ, то ему очень быстро объясняется что это решение идет к терапевту.
 

Anton

Just Programmer
Я думаю на предложение сходить к терапевту он може обидеться :)) Причем сопсоб выражения своих чувств выберт самый мерзейший ... финансовый :) Так есть у кого-нибудь положительный опыт использования XML и XSL для чегото, что небыло вышеперечисленного, точнее все выше перечисленное и сводиться к унификации форматов данных между приложениями (перенос БД, конфиги).???
 

Sababa

Guest
Да не, не все так мрачно.. можно красивые штуки делать..
Я лично теперь многое пишу на xml и не парюсь по поводу каких либо темплейтных систем.
Для новостной ленты вижу только несколько преимуществ xml:

1. export новостей.
2. персонификация (настройка под определенного пользователя) достаточно легко.
3. design thems, решается конечно и при помоци шаблонов.
4. с лету отдается в любом виде (printer friendly, wap, pdf, какой захочешь)

Минусы:

1. лишнее и тяжелое телодвижение конвертирование данных в xml
2. php-шные xml парсеры пока работают крайне медленно и убого.


Хотя 1-ый минус можно решить, если база будет сразу отдавать xml.

Короче для начала надо заняться проектированием и посчитать все плюсы и минусы технологий, а потом решать какую из них юзать.
 

Crazy

Developer
Re: А зачем XML?

Автор оригинала: Anton
А зачем он нужен???
XML удобен как стандартный способ описания форматов хранения данных.

Стандартность в данном случае обеспечивает возможность обработки кучей самых разнообразных инструментов. Если это не требуется, то связываться именно с XML нет никакого смысла.
 

Anton

Just Programmer
Тоесть ты предлогаешь хранить в БД ... ну например на новость ее XML сразу?
 

Crazy

Developer
Автор оригинала: Anton
Тоесть ты предлогаешь хранить в БД ... ну например на новость ее XML сразу?
Лично я не вижу хранить XML новости постепенно. Так что придется сразу... :)
 

Crazy

Developer
Уточняю: слово "сразу" несет в русском языке временнОй характер. Попробуй переформулировать свой предыдущий вопрос грамотно и тебя поймут. :)
 

Anton

Just Programmer
Оки. извини. переформулирывваю ... У меня сейчас так ...есть табличка в БД

create table news_text (
news_id int AUTO_INCREMENT primary key,
news_date varchar(10),
news_title varchar(255),
news_body varchar(255)
);

Когда нужно выводить новуости я делаю выборку из бд и формирую на ее основе XML типа токого:

<?xml version="1.0" encoding="UTF-8"?>
<newsLine>
<news id="1">
<date>2002-12-12</date>
<title>title 1</title>
<text>news text 1</text>
</news>
<news id="2">
<date>2002-10-10</date>
<title>title 2</title>
<text>news text 2</text>
</news>
<news id="3">
<date>2002-11-11</date>
<title>title 3</title>
<text>news <bold>text 3</bold></text>
</news>
</newsLine>

Потом пропуская через саблотрон скормив туда еще и XSL и получившеся хтмл отдаю пользователю ...

Я хотел уточнить ... Вы предлогаете хранить в БД сразу же куски XML?
 

Crazy

Developer
Совершенно верно. Лично я храню в XML фрагменты XML. В твоем случае это мог быть либо весь <newsline>, либо только <text>.
 

Anton

Just Programmer
Тоесть ты предлагаешь примерно такую структуру БД:

create table news_text (
news_id int AUTO_INCREMENT primary key,
news_data text
);

Где в news_data будут лежать куски XML для каждой новости:
<news id="1">
<date>2002-12-12</date>
<title>title 1</title>
<text>news text 1</text>
</news>

Я правильно понял?
 

Crazy

Developer
Неправильно. :)

Хранение даже полного текста XML не отменяет дополнительных полей для ускорения доступа.
 

Anton

Just Programmer
Гы .. значит так:
create table news_text (
news_id int AUTO_INCREMENT primary key,
news_date varchar(10),
news_title varchar(255),
news_body varchar(255),
news_xml text
);

А в news_xml уже и лежит тот кусок XML для данной новости, который я уже и приводил ...
 

Crazy

Developer
1. В XML храним полный комплект данных.

2. В поля таблиц (их может быть много) БД выносим то, что нужно для обеспеченяи быстрого доступа. И в той форме, в какой нам это нужно. Например, у меня хранится в таблице не news_date, а days1970 -- число дней с 1.1.1970. Ибо поле это нужно для сортировки и быстрого отсечения новостей старше N дней от сего момента. Поскольку news_title в where и order by не используем, то и нефига тащить его в поле таблицы.

Имея полный текст мы можем в любой момент изменить структуру таблиц в соответствии с новыми требованиями и заполнить поля данными из XML.

Вынесенные наружу данные используем только как инструмент доступа -- все отображение делается только на основании данных XML.

Такая схема наиболее гибка и проста в поддержке.
 

Anton

Just Programmer
Гы ... прикольно. Осознал. Спасибо. Дейсвтительно разумно. Начинаю понимать что в XML есть определенный польз. :))
 
Сверху