LINUX.ORG.RU

Дискуссии об осмысленности XML


0

0

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

Генетические проблемы XML:

*) Лекарство - хуже болезни. Сложность XML превышает сложность тех проблем, которые эта технология решает.

*) Даже программам не просто парсить XML. С точки зрения человека XML-инструкции в тексте избыточны и совершенно не читаемые.

*) Преимущества от стандартизации технологии (все используют XML) нивелируется временем, потраченным на обучение, тренировку и исправление ошибок.

*) Сделать вменяемый аналог diff для XML-файлов весьма проблематично.

И тому подобное.

>>> Подробности

★★★★★

Проверено: Obidos ()
Ответ на: комментарий от AVL2

> XML - мода. И его как раз и пихают всюду, что само по себе очень плохо.

Именно что :)

AP ★★★★★
()
Ответ на: комментарий от azakharchuk

> Берется SVG карта мира.

Создать SVG карту мира и есть основная работа в вашей задачи. То есть, данные первичны, а всё остальное экономия на скрепках.

Что делать, если нет SVG карты мира? Правильно - выбор из списка.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от bmc

>Только что ты мне предлагал на камазе эти несколько килограммов перевозить.

Незнаю, что для тебя несколько килограмм - но вот прислали мне ~400меговый xml-файл с данными. Ни одним xml-редактором из популярных, попавшихся под руку, его на моей рабочей машинке открыть нельзя, при том что в ней 2 гига рамы.

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

alt-x ★★★★★
()
Ответ на: комментарий от AVL2

> Вообще миф о читабельности xml уже порядком раздражает...

Иксэмэл иксэмэлу рознь :)

AP ★★★★★
()
Ответ на: комментарий от svu

> Добавлю 0.02. Вообще говоря, "хороший dtd" - оксиморон. Еще можно обсуждать хорошую схему (или как там оно называется в relax ng). Уж больно убог по своим возможностям dtd. Поэтому наваять dtd as good as it can be - относительно несложно. Вот хорошый xsd/rng сделать - да, иногда есть где поиграться...

Сударь, уж не противопоставляете ли Вы DTD и RelaxNG? :)))

AP ★★★★★
()
Ответ на: комментарий от AP

>>> ИМХО, есть достаточно случаев, когда руками лазить в документ и читать его в родной разметке, будь то XML или TeX, совершенно излишне.

>> Это не повод делать это невозможным.

>Откуда эта склонность к преувеличениям? Почему невозможным-то? Для меня лично сложный XML по воспринимаемости равен plain TeX. Что туда слазить руками, что туда - всё едино.

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

Конкретно в обсуждаемом случае выбор идёт между классическими конфигурационными файлами и XML. IMHO для простых случаев предпочтительнее просто переменное=значение. Для сложных - формат основанный на модели данных. Никакими техническими вывертами модель данных не заменишь.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от geek

> а типа лисп в любую нишу влезет, да?

В любую нишу, куда можно запихнуть зумль, лисп влезет гораздо лучше.

ugoday ★★★★★
()
Ответ на: комментарий от yeolahim

>в ряде случаев он удобен

Пример можно?

>для веба вообще сказка

Удобным зумль бывает только в сказках.

>так что ниша есть !

В активной зоне биореактора.

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

>> тем не менее злые буратины активно юзают dockbook :)

> Пожелаем им удачи в этом нелёгком деле.

Возьмётесь написать транслятор из LaTeX в проекты HTML Help? :)

AP ★★★★★
()
Ответ на: комментарий от Evgueni

> Индиксируются только осмысленные вещи.

ОК, я понял, о чем ты говоришь. Ты рассматриваешь уже готовые документы с точки зрения конечного пользователя. Я имел в виду немного другое, а именно: процесс подготовки документа (authoring) и автора.

Автор создает документ, который в конечном итоге будет преобразован в PDF.

В PDF допустимы ссылки.

Например: "Более детальную информацию об XXX вы межете найти в разделе [синенькое подчеркнутое кликабельное начинается]'XXX и все-все-все'[синенькое подчеркнутое кликабельное заканчивается]". Кликая на эту сслыку, ты ожидаешь попасть именно на начало этого раздела (аналогично для CHM/HTML/XHTML, сразу скажу что, как правило, для этого всего используется один XML исходник, так называемая концепция single source publishing).

Для организации такой ссылки нужен идентификатор (в современных publishing системах наличие идентификаторов, как правило, контролируется не автором, а инструментом). А автору необходимо просто найти данный элемент.

Собственно XML позволяет подходящим образом структурировать документ, а комбинация XML БД и XQuery позволяет во множестве документов найти только необходимые части документа, что позволяет при создании документа быстро создать правильную ссылку.

azakharchuk
()
Ответ на: комментарий от AP

>Возьмётесь написать транслятор из LaTeX в проекты HTML Help? :)

А latex2html, например, чем не устраивает?

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

> Создать SVG карту мира и есть основная работа в вашей задачи. С одной стороны ты прав, но...

Нет, задачей было написать XSLT. На SVG world map, гугл выдает прекрасную open source SVG карту :)

Но даже при прочих равных, если у меня есть карта в SVG и CDR/AI/[любой другой векторный формат] (тоже не проблема найти) Что мне с ней делать? Руцями резать и генерить растр при каждой переконфигурации регионов?

> данные первичны Хм, постулаты web 2.0 поддерживаешь, а XML - нет. Странно :)

azakharchuk
()
Ответ на: комментарий от AP

>> Для сложных - формат основанный на модели данных.

> Это что за зверь?

Это значит подумал и сделал так как проще и понятнее :) Пример от Реймонда .netrc

#ftp-доступ к моему WEB-узлу
machine Unix1.netaxs.com
                login esr
                password dghkbfdsjh

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

>> Возьмётесь написать транслятор из LaTeX в проекты HTML Help? :)

> А latex2html, например, чем не устраивает?

Я написал "проект", а не "пачка файлов в разметке HTML".

AP ★★★★★
()
Ответ на: комментарий от Evgueni

> А latex2html, например, чем не устраивает?

А TOC и индекс он умеет генерить (hhc, hhk файлы)? Без стеба, я действительно не в курсе.

Просто сгенерить HTML - это полдела, а вот над генерацией hhk пришлось попотеть.

azakharchuk
()
Ответ на: комментарий от azakharchuk

>> Индиксируются только осмысленные вещи.

>ОК, я понял, о чем ты говоришь. Ты рассматриваешь уже готовые документы с точки зрения конечного пользователя. Я имел в виду немного другое, а именно: процесс подготовки документа (authoring) и автора.

>Автор создает документ, который в конечном итоге будет преобразован в PDF.

А что на lanl.gov не так? Я отдаю исходник в виде LaTeX, а оно всем и каждому выдаёт pdf + регистрирует все ссылки на другие статьи и препринты для расчёта индекса цитируемости.

>Собственно XML позволяет подходящим образом структурировать документ, а комбинация XML БД и XQuery позволяет во множестве документов найти только необходимые части документа, что позволяет при создании документа быстро создать правильную ссылку.

В теории. А в реальности стилями в OO мало кто пользуется, а руками текст набирать мягко говоря тяжко. Так что такая структурируемость уж очень дорогой получается.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от azakharchuk

конфиги нужно писать сразу в машинных кодах

anonymous
()
Ответ на: комментарий от azakharchuk

>>>Руцями резать и генерить растр при каждой переконфигурации регионов?

А зачем нужен растр? При наличии координат вершин многоугольника, определить, находится ли точка внутри многоугольника или снаружи - плевое дело. Растр тут противопоказан. Казалось бы - чего тут сложного, координаты границ загнаны в базу данных, пользователю демонстрируется png. Пользователь где-то тыцнул мышкой, после чего подхватывается координата и с помощью простой формулы ищется регион, в котором тыц имел место.

geekkoo
()
Ответ на: комментарий от alt-x

И не откроешь. Кстати, попробуй попроси их прислать эту же выгрузку в txt файлике и попробуй открой его в Internet Explorer, Konquueror, Mozilla. А потом ты нам расскажешь, что интернет и броузеры в частности придумали какие-то дибилы, а не инженеры, раз броузер не может отобразить обычный txt файлик. Правда ведь?

А XMLSchema, DTD они тебе прислали? Тогда городи XSLT и выуживай из файла ту часть, что тебе нужна. Для этого XSLT как раз и придумали

anonymous
()
Ответ на: комментарий от azakharchuk

>> А latex2html, например, чем не устраивает?

>А TOC и индекс он умеет генерить (hhc, hhk файлы)? Без стеба, я действительно не в курсе.

Оглавление без проблем, а с индексами пришлось когда-то повозиться.

шесть лет назад был сделан текст: http://sky.inp.nsk.su/~baldin/Encyclopedia-4/index.html - индексы там заложены.

latex2html можно заточить под свои нужды за вполне разумное время. Главное на код в основном файле не смотреть :) - крепче спать будете.

Есть ещё несколько проектов со схожими возможностями. Просто я с latex2html имел близкий контакт.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от azakharchuk

> А TOC и индекс он умеет генерить (hhc, hhk файлы)?

Я опять не понял. Немного на разных языках говорим. Я имел в виду алфавитный индекс, который задаётся средствами документа, а вот что такое hbk и hhk я просто не знаю - не было необходимости.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от AP

> Сударь, уж не противопоставляете ли Вы DTD и RelaxNG? :)))

А за это теперь зажают?;)

svu ★★★★★
()
Ответ на: комментарий от ugoday

Ты это к тому, что [[А вот XSLT это как раз функциональный Тюринг-полный ЯП. XML язык описания данных, Markup Language]]? Ты думаешь, что ты первый, да? И ты такой умный, да? Что квадратный корень можно вычислить, только написав uberприложение на LISP? Ты не первый, мог бы сам догадаться и набрать http://www.google.ru/search?q=xslt+square+root

http://www.topxml.com/xsl/articles/fp/6.asp

anonymous
()
Ответ на: комментарий от Evgueni

Вы документ HTML Help видели? Это такой файл с расширением .chm. В него упаковывают много-много HTML и картинки (а иногда ещё и видео). Ценен тем, что просматривается из стандартной оболочки, в которой есть:

- боковая панель с деревом содержания документа (TOC);
- боковая панель с переходом по индексу (предметный указатель);
- боковая панель для поиска по документу.

Информация о содержании TOC и предметного указателя хранится в разных файлах (к слову, справочная система wxWidgets построена таким же образом). Их и надо создавать помимо пачки HTML-документов.

Для этого программе, создающей такие файлы, нужно:

- знать полную структуру документа
- уметь извлекать из текста элементы предметного указателя
- уметь создавать файл проекта, на который будет натравлен HTML Workshop, собирающий из него готовый файл .chm.

AP ★★★★★
()
Ответ на: комментарий от AP

>Вы документ HTML Help видели? Это такой файл с расширением .chm. В него упаковывают много-много HTML и картинки (а иногда ещё и видео). Ценен тем, что просматривается из стандартной оболочки, в которой есть:

>- боковая панель с деревом содержания документа (TOC);
>- боковая панель с переходом по индексу (предметный указатель);
>- боковая панель для поиска по документу.

Вроде latex2html так тоже умеет. Именно с панелями. Естественно в один файл всё не пакует и поиска нет - это надо делать сторонними програмами.

Надо вкладываться в подготовку текста, а не в оборки вокруг него. Нет необходимости в полнотексном поиске, если есть нормальный алфавитный индекс.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от geekkoo

> А зачем нужен растр?

Чтобы сделать highlight региона, над которым торчит курсор (ну требование такое было у usbility engineer).

HTML image map сам все считает (я не маньяк на client-side JavaScript такую математику писать), только поменять цвет полигона нельзя, нужно highlighted вариант картинки нарисовать, когда курсор входит в полигон и убрать когда выходит.

И какая база данных, когда все происходит у пользователя в браузере, на каждый клик на сервер лазить? Зачем?

azakharchuk
()
Ответ на: комментарий от anonymous

>>>http://www.topxml.com/xsl/articles/fp/6.asp

Впечатляить, ага! Кто-там выше по треду говорил ( http://www.linux.org.ru/jump-message.jsp?msgid=1343241#1344115 ) , что человека знающего XSLT найти также просто, как и html-верстальщика. "Он не требует навыков программирования"

geekkoo
()
Ответ на: комментарий от azakharchuk

>> А зачем нужен растр?

>Чтобы сделать highlight региона, над которым торчит курсор (ну требование такое было у usbility engineer).

А что делать жителям Монако? Кроме всего прочего у них там несколько государственных языков.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

> Надо вкладываться в подготовку текста, а не в оборки вокруг него.

Пока ТеХники и ЛаТеХники так рассуждают, техписы уходят - кто в докбук, кто в AuthorIT, кто в Adobe FrameMaker. Потому что там о них уже позаботились.

AP ★★★★★
()
Ответ на: комментарий от geekkoo

А ты думаешь, ты html знаешь? В полном объеме? Знать и знать доскональ это разные вещи. Знать html на уровне дримвивера и знать xslt на таком же уровне несложно и встречается одинаково часто.

anonymous
()
Ответ на: комментарий от AP

>> Надо вкладываться в подготовку текста, а не в оборки вокруг него.

>Пока ТеХники и ЛаТеХники так рассуждают, техписы уходят - кто в докбук, кто в AuthorIT, кто в Adobe FrameMaker. Потому что там о них уже позаботились.

И понятно почему - слаще морковки ничего и не ели. info уже не модно, а простейший linuxdoc было решено променять на монстра, зато ну очень похожего издалека, правда. Adobe FrameMaker это малость из совсем другой оперы.

LaTeX действительно существует как параллельная культура - отличная от привычек большинства техписов. Следующий шаг будет OO и в этом нет ничего хорошего. Люди выбирают привычное, а не удобное - в этом и трагедия.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

> А что на lanl.gov не так? Нет. Я немного уточню. Представь себе книгу: "Подготовка научных изданий с помощью ПК". Ты пишешь главу по LaTeX, я пишу главу про XML :)

Это два разных файла, один редактируешь ты, другой я.

У тебя есть process (подвариант ordered list) который показывает шаги для конвертации LaTeX в PDF. 1. Делаем то-то 2. Делаем то-то ...

Мне в моем разделе надо описать как XML конвертируется в PDF, я хочу написать что-то вроде "в отличии от [ссылка]аналогичного процесса[/ссылка] для LaTeX, нам потребуется один дополнительный шаг".

Я знаю что свой раздел ты уже закончил и положил в репозиторий. Я открываю браузер репозитория выбираю XML документ где находится твой раздел, в запросе ввожу два слова "LaTeX PDF", он мне выводит все элементы на которые я могу ссылаться из данного контекста и которые содержат данные слова. Я выбираю нужный и ссылка автоматически дополняется id-шкой.

Потом все разделы книги собираются в один исходник, который колбасится в PDF. И когда читатель кликнет на ссылке в моем разделе, он будет переброшен на страницу с твоим текстом. То есть, это несколько другого плана ссылка.

> А в реальности стилями в OO мало кто пользуется ОО - если это OpenOffice, то я не в курсе где он используется при профессиональной подготовке документации.

Используются XML редакторы типа Adobe FrameMaker (гадость редкостная), ArborText Epic, BlastRadius XMetal и пр.

Стили - это view, то есть то как выглядит документ (цвет размер, гарнитура шрифта, форматирование параграфа и пр), они добавляются на последнем этапе рендеринга PDF/HTML. Исходный документ не содержит информацию о view - только model.

azakharchuk
()
Ответ на: комментарий от Evgueni

> А что делать жителям Монако?

Все предусмотрено. :) Я не рассказывал во всех деталях. Для этого и делается много уровней. Хочешь определи в Европе - Западная Европа, Восточная Европа и так по самое не хочу. Количество уровней не ограничено. Детализация ограничена SVG картой - минимальные объем страна.

Многоязыковые рагионы поддерживаются. Клик на регионе в который уже провалиться нельзя вызывает popup со всеми доступными языками.

З.Ы. Сайтов с отдельным разделом для Монако не встречал. :) У нас даже Голладния, Бельгия и Люксембург объединялись в один регион Бенелюкс :)

azakharchuk
()
Ответ на: комментарий от azakharchuk

>> А что на lanl.gov не так?

>Нет. Я немного уточню. Представь себе книгу: "Подготовка научных изданий с помощью ПК". Ты пишешь главу по LaTeX, я пишу главу про XML :)

>Это два разных файла, один редактируешь ты, другой я.

>Мне в моем разделе надо описать как XML конвертируется в PDF, я хочу написать что-то вроде "в отличии от [ссылка]аналогичного процесса[/ссылка] для LaTeX, нам потребуется один дополнительный шаг".

>Я знаю что свой раздел ты уже закончил и положил в репозиторий. Я открываю браузер репозитория выбираю XML документ где находится твой раздел, в запросе ввожу два слова "LaTeX PDF", он мне выводит все элементы на которые я могу ссылаться из данного контекста и которые содержат данные слова. Я выбираю нужный и ссылка автоматически дополняется id-шкой.

Пакет xr (внешние сслыки)+ emacs+reftex - делает всё выше описанное. Добавим ещё cvs для контроля версий. reftex позволяет выбирать ссылки из списка и литературу по шаблону. Если же имеется мастер-файл, то даже xr использовать нет необходимости - всё распарсится и так.

>Стили - это view, то есть то как выглядит документ (цвет размер, гарнитура шрифта, форматирование параграфа и пр), они добавляются на последнем этапе рендеринга PDF/HTML. Исходный документ не содержит информацию о view - только model.

А, это то что указывается в \documentclass

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от azakharchuk

> З.Ы. Сайтов с отдельным разделом для Монако не встречал. :) У нас даже Голладния, Бельгия и Люксембург объединялись в один регион Бенелюкс :)

Упущение - там живут не самые бедные люди :P Так что надо было и Монако запихнуть.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

> Следующий шаг будет OO

Не думаю.

Кстати в список XML-приложений для techwriters добавлю DITA - это, то с чем мы работаем. Вышла из недр IBM, сейчас под OASIS. Эдакий симбиоз XML и OO (object oriented, с наследованием и прочими прелестями).

azakharchuk
()
Ответ на: комментарий от Evgueni

> Пакет xr (внешние сслыки)+ emacs+reftex - делает всё выше описанное.

То есть, если я потом объединю надцать LaTeX документов в один, и сгенерю один PDF, внутри него эти ссылки (которые вроде как были внешними на этапе авторинга, а стали внутренними) корректно зарезолвятся?

В приницпе характерная для *nix концепция, набор маленьких универсальных инструментов.

Проблема в том, что пользователи обленились и требуют интегрированных решений :/

Еще один вопрос.

use case - content references, когда вместо пустого элемента с refid, подставляется заполненный из другого документа. То есть в документе есть <topic refid="1234">, при обработке из репозитория берется топик с данной ИДшкой и подставляется в это место со всем своим содержимым.

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

Решается?

azakharchuk
()
Ответ на: комментарий от ugoday

>Не используй js, а используй lisp. (load-file "/home/ugoday/.gnuemacs.el") и всё в ажуре.

ты болен? браузеры слыхом не слыхивали о lisp

geek ★★★
()
Ответ на: комментарий от Skull

>> 1 TagName1 Blah-Blah-Blah
>> 2 TagName2 babah
> А если значение атрибута содержит перевод строки?

>> А если XML-значение содержит закрывающуюся угловую скобку? Кавычку?
> Вы вообще про XML читали? Похоже, нет.
> Ответ: &gt; и &apos; соотвественно. :)

Skull, ты еще не понял, что заблудился в трех соснах ?

Что мешает использовать &gt; \n и т.п. в первом случае ?

anonymous
()

про что вы говорите? ежу понятно, что зумль не для человека. то есть, человек конечно может что-то прочитать, но немного.

главная фишка зумля в том, что он стал форматом де-факто передачи информации.

O-Ren_Ishii
()
Ответ на: комментарий от ugoday

>Вызывающе неверная информация

в каком месте неверная?

>>svg - он не для ручной правки.

>Тогда зачем вообще нужен этот xml?

до тебя так трудно доходит? ладно, я ещё раз повторюсь. svg умеет тот же inkscape. Этот самый inkscape позволяет редактировать svg как дерево объектов - это позволяет добиваться эффектов, которые в самом редакторе не реализованы (т.е. некоторые параметры гуйней не изменить). Доступно объяснил? Более того, можно открыть svg в любом текстовом редакторе и _редактировать_ его. Не дошло ещё?

geek ★★★
()
Ответ на: комментарий от Evgueni

>Надо вкладываться в подготовку текста, а не в оборки вокруг него. Нет необходимости в полнотексном поиске, если есть нормальный алфавитный индекс.

подытожу: Ты лучше изобретешь ещё один велосипед, который к тому же не будет уметь полнотекстовый поиск, чем свяжешься с XML. Если честно, я не вижу смысла дискутировать с людьми, занимающими такую оригинальную позицию :)

geek ★★★
()
Ответ на: комментарий от Skull

>> Выше уже проскакивала здравая мысль выкинуть XML и заменить питоном. >Питон - жрущий память тормозной монстр. Спасибо, не надо. :) >Skull *** (*) (10.04.2006 11:06:20)

Ой - да ты его с CLIP'ом попутал! :) Вот уж чего точно не надо!

anonymous
()
Ответ на: комментарий от anonymous

>Ой - да ты его с CLIP'ом попутал! :) Вот уж чего точно не надо!

ты что? клип позволяет невиданные ранее возможности - сделать сервер приложений зависимым от виджетсета и иксов :)

geek ★★★
()
Ответ на: комментарий от bmc

>1) Есть плэн-текст, нафиг нам ХМЛ? Начинаешь говорить про расширяемость и способность безгеморной валидации-парсинга, начинают вещать про то, что вроде и не сложно всё это сделать (те реализовать недо-ХМЛ, только в уродливой велосипедной форме) для своего софта.

Ну ты даёшь. Мы хотим донести, что XML применим для _обмена_данными_. Data Interchange - это область XML. Там нужна валидация, там это всё полезно. XML создан именно для этого.

НО - XML _не_ нужно использовать для конфигов например(чаще всего). Какая к чёрту валидация конфигов? У тебя что - валидатор искусственным интеллектом обладает, чтобы понять конфиг? Какой к чёрту парсер, зачем там это?

Dimentiy ★★
()
Ответ на: комментарий от SI

>Если бы еще все клоуны, которые присылают нам прайсы в формате XML поддерживались всех стандартов - мы бы не писали супер сложные парсеры, которые выслеживают эти ошибки и пытаются "выцепить" информацию из формата XML - то тогда я б сказал что XML - это хороший формат передачи данных .. - а так это нереально - Tab-delimiter текст наше все :)))

Тебе бы не пришлось заниматься той чушью о которой говоришь если бы ты что-то знал об XSLT или на крайняк XPath, и твоя задача сводилась бы к написанию ПРОСТОГО XSLT шаблона приводящего входной нестандартный XML к СТАНДАРТНОМУ формату, а пока в детсад нах.

Ubnormal
()
Ответ на: комментарий от SI

>XML слишком сложен для всяких мелких фирм, даже компьютерных ...

Ламеры есть везде, даже в больших компьютерных фирмах...

Ubnormal
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.