LINUX.ORG.RU
Ответ на: комментарий от tailgunner

> Кстати, у XML с разумной схемой читаемость лучше, чем у любого JSON.

Меня это всегда напрягало (у меня RESTful служба) - во всех важных для меня аспектах JSON лучше, а вот с читаемостью бида (особенно кодированные строки напрягают), но тут вчера поставил JSONView и все проблемы решились.

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

> во всех важных для меня аспектах JSON лучше

Валидация, я так понимаю, тебе не нужна?

вчера поставил JSONView

У меня в качестве JSONView - глаза, в качестве веб-службы - qemu %)

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

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

Не спорю. Но не

у XML с разумной схемой читаемость лучше, чем у любого JSON



<attr2>0 1 2 3 4 5 6 7</attr2>


Не-не-не. Давай без мухлежа и необходимости что-то ещё раз парсить после XML-парсинга.

{ «elt»: { «attr1»: { «subattr»: «foo», «subattr2»: «bar» },

«attr2»: [0 1 2 3 4 5 6 7]}}



Ну да, а если в одну строчку записать, то разница вообще будет огого.

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

>> <attr2>0 1 2 3 4 5 6 7</attr2>

Не-не-не. Давай без мухлежа и необходимости что-то ещё раз парсить после XML-парсинга.

Насколько я понимаю, подобная запись поддерживается и валидируется XSD. И почему не «парсить после парсинга», если это улучшает читабельность? Там банальный токенизатор.

Ну да, а если в одну строчку записать

Даже если сделать красивую идентацию, разницы нет.

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

> Насколько я понимаю, подобная запись поддерживается и валидируется XSD.

Что, действительно? o_O Я такого не помню.

И почему не «парсить после парсинга», если это улучшает читабельность? Там банальный токенизатор.

Улучшает читабельность XML, но ухудшает читабельность кода, его парсящего.

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

>> Насколько я понимаю, подобная запись поддерживается и валидируется XSD.

Что, действительно? o_O Я такого не помню.

Насколько я могу судить - да. И не только XSD, но и RelaxNG - видимо, это достаточно нужная фишка.

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

> Даже если сделать красивую идентацию, разницы нет.

{ "elt": { "attr1": { "subattr": "foo",
                      "subattr2": "bar" },
           "attr2": [0, 1, 2, 3, 4, 5, 6, 7] } }

либо

{
  "elt": {
    "attr1": {
      "subattr": "foo",
      "subattr2": "bar"
    },
    "attr2": [0, 1, 2, 3, 4, 5, 6, 7]
  }
}
pitekantrop ★★★
()
Ответ на: комментарий от tailgunner

Действительно, есть xsd:list.

Но всё равно, во-первых, чтобы правильно распарсить, нужно заглядывать в схему. В во-вторых, большинство парсеров вернут строку целиком.

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

> Но всё равно, во-первых, чтобы правильно распарсить, нужно заглядывать в схему.

Само наличие схемы - уже хорошо. В qemu форматы JSON-сообщений даются примерами %)

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

> Но если ошибка в скрипте, чем поможет валидация?

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

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

> Ты спрашиваешь, чем это помогает?

Нет, я спрашиваю чем это поможет мне? Но судя по тому, что выше ты упоминал qemu, то вряд ли твои соображения будут полезными для меня ), уж слишком разные области.

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

Ага, так мы приходим снова к вопросу динамика vs статики. Твоя позиция ясна, но далеко не везде обоснована.

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

> Ага, так мы приходим снова к вопросу динамика vs статики.

Ненене, это не имеет отношения к системе типизации.

Твоя позиция ясна, но далеко не везде обоснована.

Не ясна %) То, что процедуры и модули должны проверять свои аргументы на валидность (неважно, пришли они от человека или другой части программы) - это «программирование 101» и имеет только отдаленное отношение к дисциплине типизации. XSD, RelaxNG и что там еще - это как раз средство валидации данных.

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

> процедуры и модули должны проверять свои аргументы на валидность

Удачи на этом поприще, а у меня сроки есть и ресурсы ограничены.

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

> Удачи на этом поприще

Спасибо.

а у меня сроки есть и ресурсы ограничены.

Та же фигня.

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

> XSD, RelaxNG и что там еще - это как раз средство валидации данных.

Только они используются гораздо чаще для генерации кода. А вот именно для валидации, по-моему, редко. Тот же MSOffice точно нифига не валидирует, т.к. пишет и читает невалидный по схеме XML.

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