avva: (Default)
[personal profile] avva
Читал стандарты 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-ными браузерами). И много других незакрытых тагов, а может, и с нестингом проблемы. И проблема в том, что я не могу сказать библиотеке: игнорируй этот по сути дела мелочный прокол. Она отказывается с этими файлами иметь дело вообще. И поступает совершенно правильным, единственно правильным способом в соответствии со стандартом. И что мне теперь делать? Исправлять все эти файлы? слишком много работы без всякого видимого результата, т.к. они и сейчас отлично видны на всех браузерах. Если нет, тогда надо свой код писать специально для этого случая. Я не жалуюсь совершенно, код-то на самом деле очень простой, но сама ситуация показательна.

ìîäíûå âåùè

Date: 2001-06-13 05:16 am (UTC)
From: [identity profile] cmm.livejournal.com
âñÿ èäåÿ çà XMHTML -- ýòî ÷òî âñå äóðàêè ïîãîíÿòñÿ çà ìîäîé, à ðàç ìîäà íà ýòîò ðàç õîðîøàÿ, òî âñå áóäåò îé êàê çàìåøàòåëüíî.

à áèíàðíûå ñòàíäàðòû ñîáëþäàþòñÿ, ïîòîìó ÷òî íåïîíÿòíî ÷òî â ôàéëå íàïèñàíî -- ëîìàòü áîÿçíî.

òå êòî ëîìàíûé HTML ïèøóò, äóìàþò ÷òî ïîíèìàþò -- õîòÿ è íå ïîíèìàþò íà ñàìîì äåëå.

ïîìíèòñÿ êàê îäèí èç ñîçäàòåëåé SGML î÷åíü óäèâëÿëñÿ, êàê ýòî òàê: îíè SGML âûäóìàëè, äóìàÿ ÷òî îí âñåãäà ãåíåðèòüñÿ ïðîãðàììàìè áóäåò, àí âîò òå íà -- íàðîä ðó÷êàìè òàãè ðèñóåò.

îòäåëüíûå ïðîãðàììû òîæå, âïðî÷åì, íå ëó÷øå.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 01:34 am
Powered by Dreamwidth Studios