HTML внутри XML
2013-03-29 19:37Если вы делаете вот так:
<?xml version="1.0" encoding="utf-8"?>
<foo>
…
<description>какой-то <b>форматированный</b> текст</description>
…
</foo>
или так:
<?xml version="1.0" encoding="utf-8"?>
<foo>
…
<description><![CDATA[какой-то <b>форматированный</b> текст]]></description>
…
</foo>
то эти лучи поноса — вам.
Правильно делать так:
<?xml version="1.0" encoding="utf-8"?>
<foo>
…
<description>какой-то <b xmlns="http://www.w3.org/1999/xhtml">форматированный</b> текст</description>
…
</foo>
no subject
Date: 2013-03-29 16:59 (UTC)no subject
Date: 2013-03-29 17:28 (UTC)no subject
Date: 2014-06-15 23:56 (UTC)А HTML5 не обязан являться валидным XML, следовательно, его придется таки пихать в CDATA.
no subject
Date: 2014-06-16 04:44 (UTC)Спецификация HTML5 определяет также XHTML5 и заявляет, что они изоморфны за исключением неймспейсов (только в DOM и XHTML),
<noscript>(только HTML) и подстроки-->в комментариях (только DOM).Когда хочется HTML запихать внутрь XML, следует трансформировать его в XHTML.
Случаи, когда заранее неопределённый пользовательский HTML-контент (типа описания некоего объекта на карте) может понадобиться запихать в application-specific XML-документ (типа KML) и при этом в исходном контенте допускается
<noscript>, представляются мне крайне редкими.Включение XHTML внутрь XML
позволяеттребует его валидировать не позднее чем на этапе первой загрузки после сохранения, что благотворно сказывается на результате и имеет очень большое воспитательное значение. Кроме того, по XHTML-включениям можно делать любые XPath-запросы и XSLT-преобразования. В то время как HTML внутри CDATA — это просто текстовая строка без выраженной семантики. Для сколько-нибудь навороченной обработки такого XML-документа (например, проверки, что все ссылки на картинки из вложенных HTML ещё живые) требуется сложный скрипт.no subject
Date: 2014-06-16 09:53 (UTC)Да, это хороший подход.
> изоморфны
Кстати, а у них не появился наконец reference mapping? В смысле, который бы с правильным приоритетом закрывал тэги <img> в <img />, <script> в <script></script>, вставлял всякие <tbody> и прочая...
Когда я последний раз пытался в это лезть, задача оказалась на удивление нетривиальной.
no subject
Date: 2014-06-16 14:15 (UTC)