metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-03-31 12:27 pm

О чтении и понимании

Нужно обмениваться данными с другой программой. Сделал для ее разработчиков документ с описанием формата на базе CSV, в котором есть такие строки:

"дата - формат dd.mm.yyyy, с выводом незначащих нулей."

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

Присылают файл с такими строками:
"10780;11077112;31.03.2009;1.04.2009;1014"

Вопрос, что я объяснил не так?

[identity profile] sergiej.livejournal.com 2009-03-31 02:55 pm (UTC)(link)
Хороший вопрос, наверно для порядка :)
Я тоже поначалу думал что это зря, но потом представил себе насколько проще (по загрузке машины) с такой структурой раобтать XSLT процессору. Особенно в случае если элементов с тем же самым названием может быть много.
Ну или вот например если выражение работает не по имени тега а по другим признакам а надо чтобы порядок был, тогда при трансформации чтобы создать упорядоченный список надо процессить ещё раз - грузить машину сортировкой, в то время, как источник данных это прелестно может сделать.
Ну и последнее, чисто пользовательское, вот в банальном HTML приятно будет head искать где угодно или лучше непосредственно перед body?

[identity profile] metaclass.livejournal.com 2009-03-31 03:08 pm (UTC)(link)
XSLT разве использует DTD для работы? А без DTD ему по идее неоткуда узнать о встроенном порядке.

Я эту пакость воспринимаю как усложненный вариант БД, а в реляционных БД множество колонок и кортежей не упорядоченное, поэтому всегда сортирую отдельно.

[identity profile] sergiej.livejournal.com 2009-04-01 08:38 am (UTC)(link)
Ну это не есть усложнённый вариант БД. БД частный случай записи данных, а XML по-идее должен быть универсален. Пока что я лично не встретил таких структур данных которые нельзя бы было передать в XML, если бы такой возможности не было передача упорядоченной по полям структуры была бы возможна только с диким подвыподвертом (дополнительный аттрибут, или кодирование в id).
Одни парсеры и процессоры используют DTD, другие не используют, третьи могут использовать по желанию. Да и не в DTD дело, самый популярный XSD тоже имеет sequence, и оно широко используется.
Есть достаточное количество специфических задач в котором оно нужно. Да тот же CSV о котором пост и есть такой тип данных где порядок критичен.
Вот тут http://www.ibm.com/developerworks/xml/library/x-eleord.html товарисч пытается объяснить этот экзестенциальный вопрос, нужно оно или не нужно.