?

Log in

No account? Create an account
вебология - Поклонник деепричастий [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

вебология [июн. 13, 2001|02:49 pm]
Anatoly Vorobey
Читал стандарты XML и XHTML.
Много думал.

Да, отстал я однако от жизни.

Придумалось вот что. W3 придумали интересную стратегию. В чём весь смысл затеи XHTML? В том, чтобы переписать HTML в качестве частного случая XML. Что это даёт, по сути дела? Ну, понятно, всякие разные стандарты, возможность работать с аппликациями XML, модуляризация, ещё всякие buzzwords. Но по сути дела всё это - следствия, это вторично. Первична сама природа чёткого позиционирования каждого документа HTML в качестве документа XML: первично то, что документы XML обязаны быть хорошо написаны.

То есть это просто часть стандарта. В XML-ном документе невозможны незакрытые таги, или неправильный нестинг. Этого просто не может быть. Подход на самом деле не свеж. В SGML'е тоже такие вещи были запрещены, да вот только всем было начхать, потому что браузеры кому-то надо писать, и работать со всем этим диким количеством плохо написаннных HTML-ных страниц тоже надо... поэтому браузеры писались так, чтобы они глотали всё, что только возможно. И SGML сам по себе это не то чтобы поощрял, но в общем-то и не запрещал. Ну умный браузер, чем плохо?

Теперь наконец-то они зашевелились, когда поняли, до каких масштабов это доросло. И XHTML - это попытка одним махом всю эту лавочку прикрыть. Поскольку в XML'ном стандарте написано, что обработчик ОБЯЗАН выдавать ошибки на незакрытых тагах, неправильном нестинге и ещё сотне всяких возможных ошибок, и ОБЯЗАН отказаться обрабатывать такой документ. Даже если он non-validating, т.е. не проверяет документ на соответствие DTD, он обязан проверять, что документ корректно написан. А уж если он validating - тогда вообще капут, прощайте, нестадартные расширения.

Очень интересно - может ли в принципе сработать такой силовой подход? С одной стороны, они сильно постарались, чтобы при всей несуразности таких драконовских требований (учитывая реальность, которая out there; сами требования, конечно же, очень правильные, и я за ний двумя ногами) облегчить, насколько возможно, их выполнение. А именно: обработчики XML очень сильно ограничены в том, что им можно, а что нельзя считать ошибками. Это вам не цвета на экране или резолюция; то есть, если документ составлен неверно, то браузер автора, неважно, на какой платформе и операционной системе, обязан будет выдать ему ошибку. Это куда лучше чем ситуация "на эксплорере работает, а на нетскейпе мы не проверяли".

Но всё же требования очень жестокие, и в конце концов люди могут просто послать нафиг этот XHTML - не перестанут же браузеры поддерживать старый добрый HTML 4. Именно это требование абсолютного соответствия стандарту столь желанно с одной стороны и столь неудобно с другой. Вот я сейчас обрабатываю XHTML-файлы с поэзией Пушкина для конкорданса. Казалось бы, проще всего просто взять готовую XML-библиотеку (например, весьма удобный XML::Parser в Перле) и пропускать через нее. Ан нет: файлы хотя и замечательно размечены, и вся информация структурно представлена, в них есть много погрешностей против стандартного XML'я. Например, такая мелочь, как таг <br> в конце каждой строки стиха, который по XML обязан быть <br/> или хотя бы <br /> (для лучшей совместимости с HTML-ными браузерами). И много других незакрытых тагов, а может, и с нестингом проблемы. И проблема в том, что я не могу сказать библиотеке: игнорируй этот по сути дела мелочный прокол. Она отказывается с этими файлами иметь дело вообще. И поступает совершенно правильным, единственно правильным способом в соответствии со стандартом. И что мне теперь делать? Исправлять все эти файлы? слишком много работы без всякого видимого результата, т.к. они и сейчас отлично видны на всех браузерах. Если нет, тогда надо свой код писать специально для этого случая. Я не жалуюсь совершенно, код-то на самом деле очень простой, но сама ситуация показательна.
СсылкаОтветить

Comments:
[User Picture]From: sema
2001-06-13 05:07 am
файлы хотя и замечательно размечены, и вся информация структурно представлена, в них есть много погрешностей против стандартного XML'я

это означает только одно -- люди, которые запихали все это в недоXML не понимали, зачем они это делают, наверное просто решили сделать модную вещь. Суть ведь как раз в том, чтобы иметь возможность обрабатывать документы различными средствами и способами, а это, ясное дело, возможно только при соблюдении стандарта. А неполного соблюдения не бывает, как осетрины второй свежести. Почему никого не удивляет, что бинарные стандарты надо соблюдать с точностью до бита?
(Ответить) (Thread)
[User Picture]From: cmm
2001-06-13 05:16 am

модные вещи

вся идея за XMHTML -- это что все дураки погонятся за модой, а раз мода на этот раз хорошая, то все будет ой как замешательно.

а бинарные стандарты соблюдаются, потому что непонятно что в файле написано -- ломать боязно.

те кто ломаный HTML пишут, думают что понимают -- хотя и не понимают на самом деле.

помнится как один из создателей SGML очень удивлялся, как это так: они SGML выдумали, думая что он всегда генериться программами будет, ан вот те на -- народ ручками таги рисует.

отдельные программы тоже, впрочем, не лучше.

(Ответить) (Parent) (Thread)
[User Picture]From: avva
2001-06-13 02:14 pm
Нет, да какая модная вещь? Так вообще по-русски никто не делает, они по-моему это первое начали, и никто пока что особенно это не оценил, увы. В других местах хорошо если ASCII тексты нормальные можно загрузить, и то редко - вон в инфоарте (или как его там сейчас) 10-томный малоакадемический Пушкин существует в виде ужасных фреймов в дикими урлами и несъедобным HTML'ем. Так что нет, у меня нет никаких претензий. Проблемы с чистотой маркапа решатся рано или поздно, главное что этот маркап есть и консистентно сделан.
(Ответить) (Parent) (Thread)
[User Picture]From: toshick
2001-06-13 11:05 pm
это еще ничего - у некоторых старые номера журналов лежат в виде сканированных страниц, подло оформленных как .pdf
(Ответить) (Parent) (Thread)
[User Picture]From: dmierkin
2001-06-14 02:42 pm

Auto convert ?

Бывает так: пишешь программу, сбрасываешь данные в файл а следуящая версия данные уже не читает. Тогда пишешь конвертор версий. Если browser сегодня читает HTML то он его и в XHTML переведет. Или нет ?
(Ответить) (Thread)
[User Picture]From: avva
2001-06-14 02:47 pm

Re: Auto convert ?

Не, не сможет. XHTML намного строже HTML'я; в плохо составленном HTML'е кучи нужной структурной информации просто нет. Если таг не закрыт - черт его знает, где он "по идее" должен закрываться. Каждый браузер может попробовать угадать, но угадают-то они по-разному, отсюда и множество проблем с разными результатами на разных браузерах. Или с нестингом неправильном тоже вообще неясно как разбираться. Нет, думаю, что такой автоматический перевод нереально обеспечить.
(Ответить) (Parent) (Thread)
[User Picture]From: dmierkin
2001-06-14 03:12 pm

Re: Auto convert ?

Ага. То есть на самом деле можно сказать что есть HTML стандарт кого-нибудь броузера ? Тогда берем за основу самый популярный, скажем IE, в нем то ведь все (ну или почти все) сайты видны нормально, и делаем auto convert через него. Это ведь, скорее всего, возможно. И как я понимаю достаточно хорошо. Кстати, если IWebBrowser дает возможность Save To XHTML то это можно быстро проверить.
(Ответить) (Parent) (Thread)