Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Религиозные войны > XML


Автор: slang 8.8.2005, 14:51
В который раз убеждаюсь, что XML - это какое-то Г!!!. Т.е. безусловно в нем есть какие-то очень мощные преимущества, вот только-какие остается для большинства очень большой загадкой. Этот же файл, например, можно обработать и просто средствами PHP, однако, нет, нужно было аппонента отправить читать кучу документации страниц так на 150-200, чтобы он смог вывести небольшой блок информации.
Думаю, господа вы в этом (XML) неплохо разбираетесь, так скажите, почему такую простую задачу, как преобразование в HTML, нельзя решить такими-же простыми средствами, и если нельзя, то на какой предмет это все все-таки нужно. Ну ни малейшего преимущества, кроме как стандартизированного хранения небольшого объема информации нет!

М
 
Сообщение отредактировано, чтобы при разделении тем было понятно о чем речь.

Автор: batigoal 8.8.2005, 15:07
Не только стандартизированного (что само по себе немаловажно), но еще и структурированного.

Автор: Bikutoru 8.8.2005, 15:53
Цитата(slang @ 8.8.2005, 15:51)
В который раз убеждаюсь, что XML - это какое-то Г!!!. Т.е. безусловно в нем есть какие-то очень мощные преимущества, вот только-какие остается для большинства очень большой загадкой. Этот же файл, например, можно обработать и просто средствами PHP, однако, нет, нужно было аппонента отправить читать кучу документации страниц так на 150-200, чтобы он смог вывести небольшой блок информации.
Думаю, господа вы в этом (XML) неплохо разбираетесь, так скажите, почему такую простую задачу нельзя решить такими-же простыми средствами, и если нельзя, то на какой предмет это все все-таки нужно. Ну ни малейшего преимущества, кроме как стандартизированного хранения небольшого объема информации нет!

В какой-то книге, посвящееной XML, написано примерно следующее
Цитата

Любую информацию, с которой работает программист, можно представить либо в виде удобном для понимания машиной, но не человеком, либо в виде, удобном для понимания человеком, но не удобном для понимания машиной. А XML позволят представить информацию в виде, удобном для понимания обеими сторонами.

Конечно, когда задача несложная, информации и ее видов немного преимущества XML и не очевидны, но с ростом размерности решаемых задач проблема понимания встанет очень остро и преимущества XML "всплывут"...

Автор: slang 8.8.2005, 16:33
но все-таки очень небольшого объема информации по сравнению с БД.
Вообще не претендую на верность моих мыслей, даже уверен в их ошибочности, но не вижу я преимуществ, не вижу!

Автор: Bikutoru 8.8.2005, 16:56
Тогда задаю тебе такой вопрос.
Допустим есть два отдельных проекта, между которыми необходимо передать некоторый объем данных. Будем считать, что структура БД у них различна.
Вопрос: каким образом осуществить эту передачу?

Автор: slang 9.8.2005, 04:21
с не меньшим успехом чем XML можно передать и в одном/нескольких CSV файлах. Они все-равно обрабатываются проще чем XML. Для них, по крайней мере не нужно дополнительных модулей к языкам программирования.

Автор: batigoal 9.8.2005, 08:01
Так модули уже давно написаны. Изобретать велосипед не нужно. Можешь записать файл на одной платформе одним модулем и прочитать его на другой - другим.

Автор: Bikutoru 9.8.2005, 10:51
Цитата
с не меньшим успехом чем XML можно передать и в одном/нескольких CSV файлах.

Хорошо - один CSV-файл - это одна таблица, а если этих таблиц нужно передать штук двадцать. Вот приходят к тебе и говорят что=-то вроде "Вот тебе дцать CSV-файлов, залей их в базу". Сдаётся мне, что один-два раза прочитать 200-300 страниц документации будет легче, чем постоянно мучиться с этими CSV-файлами, в которых будет непросто разобраться.

Автор: S.A.P. 9.8.2005, 11:12
Цитата(Bikutoru @ 8.8.2005, 16:56)
Допустим есть два отдельных проекта, между которыми необходимо передать некоторый объем данных. Будем считать, что структура БД у них различна.
Вопрос: каким образом осуществить эту передачу?
Всю инфу хранить в базе данных (MySQL, например) и дампить таблицы, какие надо. Зачем использовать для этих целей XML, к тому же еще и тормозной?

Автор: Bikutoru 9.8.2005, 18:56
Цитата(Bikutoru @ 8.8.2005, 17:56)
Допустим есть два отдельных проекта, между которыми необходимо передать некоторый объем данных. Будем считать, что структура БД у них различна.
Вопрос: каким образом осуществить эту передачу?

По-твоему выходит, что парсить тоже немаленькие дампы выйдет быстрее? Сомневаюсь...
К тому же это потребует знаний о структуре "чужой" БД и при ее изменении придется менять и логику работы своих приложений.

Приведу простой пример. В рунете полно интернет-магазинов, многии из них активно используют прайсы своих клиентов (а их может быть несколько десятков). Сомневаюсь, что происходит "подстройка" под конкретную архитектуру БД каждого клиента.
Вместо этого используется (почти везде) Яндексовский формат xml-файлов. При этом задача передачи информации разбивается на два ярко выраженных этапа:
1. БД-источник -> XML
2. XML -> БД-приемник
При этом никаких знаний о том, какая архитектура у "чужой" БД не требуется. Если она изменится, то это затронет только "чужие" приожения, формирующие требуемый XML. А для обеспечения корректности формируемого/получаемого XML-файла следует использовать технологию DTD и/или XSD, которые не позволят задавать некорректную структуру/значения, что позволит производить обмен при многочисленных изменениях на "источнике"/"приемнике".

Автор: Gold Dragon 10.8.2005, 08:30
Цитата(Perchilla @ 9.8.2005, 11:12)
Всю инфу хранить в базе данных (MySQL, например) и дампить таблицы, какие надо. Зачем использовать для этих целей XML, к тому же еще и тормозной?

Есть такая структура данных, которую очень трудно впихнуть в таблицы, я бы сказал практически не возможно

Автор: slang 17.8.2005, 04:21
Цитата

Есть такая структура данных, которую очень трудно впихнуть в таблицы, я бы сказал практически не возможно

А можно пример?

Автор: Gold Dragon 17.8.2005, 06:37
Пожалуйста... Описание генеологического древа человека. Существует даже спецификация gedcom-xml

Автор: batigoal 17.8.2005, 08:00
Пример обсуждался, например, тут:
http://forum.vingrad.ru/index.php?showtopic=59627&view=findpost&p=476705

Автор: Sardar 17.8.2005, 15:43
XML нужен не только для хранения данных, это вообще то громоздко. XML это способ мышления, в принципе любую инфу можно представить в виде дерева(с рекурсивными ссылками и т.д.). Дело в том что на XML построенно очень много другис технологий. С помощью трансформаций XSLT/STX можно превратить любой XML в любой XML. С помощью XSL FO можно сгенерить любой документ(документ в понятии веб страница, книга, всё что можно распечатать на бумаге). Ещё туева хуча вещей, от графики и звука, до чего угодно.

Если ты будешь выдумывать свои стандарты, то это будет ограниченно и скорее всего убого. Представь что ты написал UML редактор. Инфу сохраняешь в XML со своим словарём тегов. Представь что существует некая либа, что может отрисовывать векторную графику, читает свой XML(допустим SVG). Третий компонент на основе XML(допустим XSL FO) генерит MS Word, Open Office Writer, PDF, PS и TEX документы. Это всё разный, не зависимый софт, но ты можешь в редакторе нарисовать проект -> трансформировать в удобоваримое для рендера -> получить графику. Проект -> трансформировать в удобоваримое для рендера документов + предложит ему ранее сгенерированную графику -> получить документы в том виде(шаблоны), в каком ты хочешь.

В итоге XML позволяет связать разный, не зависимый софт вместе и заставить софт работать на человека, а не человека на софт.

У себя в проекте я генерю таблицы, структура поднимаеться из XML, данные из БД, на выходе XML, что затем трансформируеться на прямую в XHTML или в XSL FO, что затем отдаёться RenderX, на выходе PDF и PS документ.

Автор: Gold Dragon 18.8.2005, 07:24
Чем больше читаю доки о XML, тем больше хочется это использовать в сайтах. Некоторые вещи получаются, но мне явно не хватает общей теории построения сайта на xml/xsl

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)