<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="xhtml2.css"?>
<?xml-stylesheet type="text/css" href="style_xhtml2.css"?>
<!-- !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 2.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml2.dtd" -->
<!DOCTYPE html [
<!ATTLIST section id ID #IMPLIED>
<!ATTLIST h id ID #IMPLIED>
<!ATTLIST div id ID #IMPLIED>
<!ATTLIST nl id ID #IMPLIED>
]>
<html xmlns="http://www.w3.org/2002/06/xhtml2/" xml:lang="ru"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xsi:schemaLocation="http://www.w3.org/2002/06/xhtml2/
                          http://www.w3.org/MarkUp/SCHEMA/xhtml2.xsd"
      xmlns:xf="http://www.w3.org/2002/xforms"
      xmlns:h1="http://www.w3.org/1999/xhtml"
>
<head profile="http://gmpg.org/xfn/11">
  <title>Маниакальный Веблог » XHTML 2</title>
  <link rel="pingback" href="http://softwaremaniacs.org/wordpress/xmlrpc.php"/>
  <link rel="archives" title="March 2007" href="http://softwaremaniacs.org/blog/2007/03/"/>
	<link rel="archives" title="February 2007" href="http://softwaremaniacs.org/blog/2007/02/"/>
	<link rel="archives" title="January 2007" href="http://softwaremaniacs.org/blog/2007/01/"/>
	<link rel="archives" title="December 2006" href="http://softwaremaniacs.org/blog/2006/12/"/>
	<link rel="archives" title="November 2006" href="http://softwaremaniacs.org/blog/2006/11/"/>
	<link rel="archives" title="October 2006" href="http://softwaremaniacs.org/blog/2006/10/"/>
	<link rel="archives" title="September 2006" href="http://softwaremaniacs.org/blog/2006/09/"/>
	<link rel="archives" title="August 2006" href="http://softwaremaniacs.org/blog/2006/08/"/>
	<link rel="archives" title="July 2006" href="http://softwaremaniacs.org/blog/2006/07/"/>
	<link rel="archives" title="June 2006" href="http://softwaremaniacs.org/blog/2006/06/"/>
	<link rel="archives" title="May 2006" href="http://softwaremaniacs.org/blog/2006/05/"/>
	<link rel="archives" title="April 2006" href="http://softwaremaniacs.org/blog/2006/04/"/>
	<link rel="archives" title="March 2006" href="http://softwaremaniacs.org/blog/2006/03/"/>
	<link rel="archives" title="February 2006" href="http://softwaremaniacs.org/blog/2006/02/"/>
	<link rel="archives" title="January 2006" href="http://softwaremaniacs.org/blog/2006/01/"/>
	<link rel="archives" title="December 2005" href="http://softwaremaniacs.org/blog/2005/12/"/>
	<link rel="archives" title="November 2005" href="http://softwaremaniacs.org/blog/2005/11/"/>
	<link rel="archives" title="October 2005" href="http://softwaremaniacs.org/blog/2005/10/"/>
	<link rel="archives" title="September 2005" href="http://softwaremaniacs.org/blog/2005/09/"/>
	<link rel="archives" title="August 2005" href="http://softwaremaniacs.org/blog/2005/08/"/>
	<link rel="archives" title="July 2005" href="http://softwaremaniacs.org/blog/2005/07/"/>
	<link rel="archives" title="June 2005" href="http://softwaremaniacs.org/blog/2005/06/"/>
	<link rel="archives" title="May 2005" href="http://softwaremaniacs.org/blog/2005/05/"/>
  <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://softwaremaniacs.org/wordpress/xmlrpc.php?rsd" />
  <link rel="openid.server" href="http://softwaremaniacs.org/wordpress/wp-content/plugins/openid/server.php/"/>
  
  <xf:model>
    <xf:instance>
      <data xmlns="">
        <author/>
        <email/>
        <url/>
        <comment/>
      </data>
    </xf:instance>
    <xf:submission action="http://softwaremaniacs.org/wordpress/wp-comments-post.php" method="post" id="submit"/>
  </xf:model>
</head>
<body class="blog">
<div id="header" role="banner">
  <h href="http://softwaremaniacs.org/blog">Маниакальный Веблог</h>
  <p><small>Иван Сагалаев о программировании и веб-разработке</small></p>
</div>
<div id="content" class="single">
  <div role="navigation">
    <p class="previous">← <a href="http://softwaremaniacs.org/blog/2007/03/31/blogger/">Слово “блогер”</a></p>
    <p class="next"/>
  </div>

  <section class="post" role="main">
    <h id="post-240" href="http://softwaremaniacs.org/blog/2007/04/01/switching-to-xhtml2/" rel="bookmark" title="Постоянная ссылка: XHTML 2">XHTML 2</h>
    
    <p role="contentinfo"><small>
      1.04.07 04:40, 
      категории: <a href="http://softwaremaniacs.org/blog/category/web/xhtml-vs-html/" title="View all posts in XHTML?" rel="category tag">XHTML?</a>
    </small></p>
    
    <section class="entry text">
      <p>Перечитывал тут комментарии к своим статьям в категории <a href="http://softwaremaniacs.org/blog/category/web/xhtml-vs-html/">XHTML</a> и долго над ними размышлял. С одной стороны, конечно, и с поддержкой XHTML в браузерах не так все хорошо, как хотелось бы, и W3C, вроде, тоже уже не вкладывает в это направление свой вес&#8230; Но с другой стороны, если кто и &#8220;виноват&#8221; в этой ситуации, то это не W3C и уж точно не сам XHTML, а те, кто все это время только <em>обещал</em>, что XHTML когда-нибудь будет, но ничего для этого не делал. Если бы мы смелее стали таки <em>использовать</em> новые стандарты, глядишь и не сидели бы сейчас с необходимостью поддерживать HTML следующий десяток лет.</p>

<p>Короче говоря, я понял, что был неправ, и решил сделать шаг вперед: перевести softwaremaniacs.org на XHTML. Получилось это довольно легко, правда не на всем сайте. Подробности дальше&#8230;</p>

<p><a id="more-241"></a></p>

<p>Чтобы не томить вас ожиданием, призываю заглянуть в исходник той страницы, которую вы сейчас читаете (если вы читаете это в фид-ридере, то надо, разумеется, зайти на сайт :-) ).</p>

<p>Как видно (и как многие догадались из заголовка статьи), я выбрал именно XHTML 2. Причиной этому послужило то, что XHTML 1 все таки наследует от HTML слишком много старых кривых решений, в то время как XHTML 2 &#8212; это новый язык разметки с четкой идеологией.</p>

<p>В процессе перевода как раз изменение XHTML-кода было самым приятным:</p>

<ul>
<li>ссылки можно ставить с любого элемента, поэтому вместо странной конструкции <code>&lt;li&gt;&lt;a href=""&gt;</code> можно писать просто <code>&lt;li href=""&gt;</code>, вычистилась куча тегов <code>&lt;a&gt;</code></li>
<li>многие безликие <code>&lt;div&gt;</code> заменились на <a href="http://www.w3.org/TR/xhtml2/mod-structural.html#sec_8.8."><code>&lt;section&gt;</code></a></li>
<li>уровень заголовков теперь задается не номерами (<code>&lt;h1&gt;</code>, <code>&lt;h2&gt;</code>), а вложенностью элементов <code>&lt;section&gt;</code></li>

<li>вместо несемантически классов появились <a href="http://www.w3.org/TR/xhtml2/mod-roleAttribute.html#adef_roleAttribute_role">роли элементов</a> (<code>role="main"</code>, <code>role="navigation"</code>, <code>role="contentinfo"</code>)</li>
<li>наконец-то вместо просто <code>&lt;ul&gt;</code> для навигации используется navigation list &#8212; <a href="http://www.w3.org/TR/xhtml2/mod-list.html#sec_11.2."><code>&lt;nl&gt;</code></a>.</li>

</ul>

<p>В итоге код выглядит гораздо логичней.</p>

<p>Не обошлось, правда, и без парочки ложек дегтя. Некоторые происходят из того, что XHTML 2 еще все таки в процессе разработки, а некоторые из-за того, что мой браузер (Firefox 2) не поддерживает некоторые элементы XHTML 2. Но я надеюсь, что в следующей версии с этим будет гораздо лучше. Ложки дегтя, в итоге, такие:</p>

<ul>
<li>Слегка увеличился код в заголовке страницы, хотя это копейки&#8230;</li>
<li>Отчего-то отказался работать <a href="http://www.w3.org/MarkUp/style/xhtml2.css">официальный CSS</a>, рекомендуемый для XHTML2, пришлось позаимствовать его с <a href="http://w3future.com/weblog/gems/xhtml2.xml">одной странички</a></li>
<li>Firefox не поддерживает активацию ссылок на XHTML2-элементах, поэтому с той же странички пришлось умыкнуть XBL-документ, который автоматически добавляет всем элементам с href ссылки, реализованные с помощью XLink (гениально!)</li>

<li>Для XHTML2 <a href="http://www.w3.org/TR/xhtml2/xhtml20_dtd.html#a_xhtml20_dtd">еще не написан DTD</a>, поэтому не получается проверить его на валидность.</li>
<li>Из-за этого же пришлось вручную дописать прямо в страницу, что атрибуты &#8220;id&#8221; &#8212; это именно идентификаторы элементов, иначе в CSS не работает указание &#8220;#some_element&#8221;.</li>
<li>В CSS также заменил все &#8220;.classname&#8221; на более универсальный &#8220;[class~=classname]&#8221;.</li>

<li>Пришлось отказаться от скриптов &#8212; не заработали. Больше всего жалко подсветку синтаксиса :-(. Видимо, надо это будет на серверной стороне делать.</li>
<li>Title страницы не показывается в заголовке окна.</li>
<li>Больше всего повозился с формой комментариев. Хотел конвертировать ее в <a href="http://www.w3.org/TR/xforms/">XForms</a>, скачал <a href="https://addons.mozilla.org/ru/firefox/addon/824">дополнение к Firefox&#8217;у</a> с его реализацией, почитал несколько тьюториалов, но так и не заставил работать (в XHTML1, кстати, работает). Поэтому пока форма работает в старом XHTML1-виде, который с помощью namespace&#8217;а внедрен в XHTML2-документ. XML &#8212; крутая штука, что ни говори!</li>

<li>В IE6 форма, правда, не работает совсем и есть проблемы с CSS&#8217;ом. Но я надеюсь их решить в ближайшее время с помощью скрипта &#8220;ie7&#8243; Дина Эдвардса, который кучу CSS2-конструкций реализует для IE. (Да и честно говоря, по статистике у меня IE всего 6%, поэтому это меня не сильно беспокоит.)</li>
</ul>

<p>В общем, без особенных проблем и за исключением досадных мелочей страница теперь выглядит точно так же, как и в HTML! Осталось теперь остальной сайт перевести&#8230;</p>

      <div class="comments">
        Оставьте <a href="#respond">комментарий</a> или <a href="http://softwaremaniacs.org/blog/2007/03/31/blogger/trackback/">TrackBack</a> с вашего сайта.
      </div>
    </section>
  </section>
  <section>
    <h id="respond">Добавить комментарий</h>
      
    <!-- p id="legend"><small>
      <object data="/blog/wp-content/markdown-legend.png">Текст через пустую строку превращается в отдельные абзацы, цитата отделяется символами &gt; слева, списка состоит из пунктов с дефисом слева, курсив выделяется * с каждой стороны, жирный - двойными **, блоки кода отступают слева на 4 пробела"</object>
    </small></p>
    
    <p><xf:input ref="/data/author"><xf:label>Имя</xf:label></xf:input></p>
    <p><xf:input ref="/data/email"><xf:label>EMail</xf:label></xf:input></p>
    <p><xf:input ref="/data/url"><xf:label>Веб-сайт</xf:label></xf:input></p>
    <p id="comment_block">
      <xf:textarea ref="/data/comment" id="comment"><xf:label>Комментарий</xf:label></xf:textarea>
    </p>

    <div id="submitbutton">
      <xf:submit submission="submit">
        <xf:label>Отправить</xf:label>
      </xf:submit>
    </div>
    <div><input type="hidden" name="comment_post_ID" value="240"/></div-->
    
    <form action="http://softwaremaniacs.org/wordpress/wp-comments-post.php" method="post" id="commentform" xmlns="http://www.w3.org/1999/xhtml">
      <p><label for="author" class="required">Имя</label> <input type="text" name="author" id="author" value="" tabindex="1"/></p>
      <p><label for="email" class="required">EMail</label> <input type="text" name="email" id="email" value="" tabindex="2"/></p>
      <p><label for="url">Веб-сайт</label> <input type="text" name="url" id="url" value="" tabindex="3"/></p>
      <p id="legend"><small>
        <img src="/blog/wp-content/markdown-legend.png" alt="Текст через пустую строку превращается в отдельные абзацы, цитата отделяется символами &gt; слева, списка состоит из пунктов с дефисом слева, курсив выделяется * с каждой стороны, жирный - двойными **, блоки кода отступают слева на 4 пробела"/>
      </small></p>
      <p id="comment_block"><label for="comment">Комментарий</label> <textarea name="comment" id="comment" rows="15" cols="40" tabindex="4"/></p>
      
      <div id="submitbutton">
        <p><strong>Внимание! Из-за некоторых технических ограничений комментарии
        будут видны не сразу. Но они дойдут, будьте уверены!</strong></p>
        <button type="submit" name="submit" id="submit" tabindex="5">Отправить</button>
      </div>
      <div><input type="hidden" name="comment_post_ID" value="241"/></div>
    </form>

  </section>
</div>
<section id="sidebar" role="secondary">

  <div id="pagestatus">
    </div>
  
    
  <section id="categories">
    <h>Категории</h>
    <ul>
     	<li href="http://softwaremaniacs.org/blog/category/delphi/" title="View all posts filed under Delphi">Delphi (10)</li>
	    <li href="http://softwaremaniacs.org/blog/category/django/" title="View all posts filed under Django">Django (33)
        <ul class="children">
          <li href="http://softwaremaniacs.org/blog/category/django/cicero/" title="View all posts filed under Cicero">Cicero (7)</li>
        </ul>
      </li>
      <li href="http://softwaremaniacs.org/blog/category/uncategorized/" title="View all posts filed under Разное">Разное (46)</li>
      <li href="http://softwaremaniacs.org/blog/category/tools/" title="View all posts filed under Инструменты">Инструменты (7)</li>
      <li href="http://softwaremaniacs.org/blog/category/ru-blogs/" title="View all posts filed under Блоги">Блоги (9)</li>
      <li href="http://softwaremaniacs.org/blog/category/usability/" title="View all posts filed under Юзабилити">Юзабилити (2)</li>
      <li href="http://softwaremaniacs.org/blog/category/unicode/" title="View all posts filed under Юникод">Юникод (3)</li>
      <li href="http://softwaremaniacs.org/blog/category/vainglory/" title="View all posts filed under Тщеславие">Тщеславие (6)</li>
      <li href="http://softwaremaniacs.org/blog/category/management/" title="View all posts filed under Управление">Управление (4)</li>
      <li href="http://softwaremaniacs.org/blog/category/mysoft/" title="View all posts filed under Мои программы">Мои программы (13)</li>
      <li href="http://softwaremaniacs.org/blog/category/software-design/" title="View all posts filed under Проектирование">Проектирование (22)</li>
      <li href="http://softwaremaniacs.org/blog/category/openid/" title="View all posts filed under OpenID">OpenID (5)</li>
      <li href="http://softwaremaniacs.org/blog/category/python/" title="View all posts filed under Python">Python (15)</li>
      <li href="http://softwaremaniacs.org/blog/category/ubuntu/" title="View all posts filed under Ubuntu">Ubuntu (4)</li>
      <li href="http://softwaremaniacs.org/blog/category/web/" title="View all posts filed under Web">Web (60)
        <ul class="children">
          <li href="http://softwaremaniacs.org/blog/category/web/primer/" title="View all posts filed under Учебник">Учебник (10)</li>
          <li href="http://softwaremaniacs.org/blog/category/web/xhtml-vs-html/" title="View all posts filed under XHTML?">XHTML? (6)</li>
        </ul>
      </li>
      <li href="http://softwaremaniacs.org/blog/category/wordpress/" title="View all posts filed under WordPress">WordPress (9)</li>
    </ul>
  </section>
    
  <section id="archive">
    <h>Архив</h>
    <ul>
     	<li href="http://softwaremaniacs.org/blog/2007/03/" title="March 2007">March 2007</li>
      <li href="http://softwaremaniacs.org/blog/2007/02/" title="February 2007">February 2007</li>
      <li href="http://softwaremaniacs.org/blog/2007/01/" title="January 2007">January 2007</li>
      <li href="http://softwaremaniacs.org/blog/2006/12/" title="December 2006">December 2006</li>
      <li href="http://softwaremaniacs.org/blog/2006/11/" title="November 2006">November 2006</li>
      <li href="http://softwaremaniacs.org/blog/2006/10/" title="October 2006">October 2006</li>
      <li href="http://softwaremaniacs.org/blog/2006/09/" title="September 2006">September 2006</li>
      <li href="http://softwaremaniacs.org/blog/2006/08/" title="August 2006">August 2006</li>
      <li href="http://softwaremaniacs.org/blog/2006/07/" title="July 2006">July 2006</li>
      <li href="http://softwaremaniacs.org/blog/2006/06/" title="June 2006">June 2006</li>
      <li href="http://softwaremaniacs.org/blog/2006/05/" title="May 2006">May 2006</li>
      <li href="http://softwaremaniacs.org/blog/2006/04/" title="April 2006">April 2006</li>
      <li href="http://softwaremaniacs.org/blog/2006/03/" title="March 2006">March 2006</li>
      <li href="http://softwaremaniacs.org/blog/2006/02/" title="February 2006">February 2006</li>
      <li href="http://softwaremaniacs.org/blog/2006/01/" title="January 2006">January 2006</li>
      <li href="http://softwaremaniacs.org/blog/2005/12/" title="December 2005">December 2005</li>
      <li href="http://softwaremaniacs.org/blog/2005/11/" title="November 2005">November 2005</li>
      <li href="http://softwaremaniacs.org/blog/2005/10/" title="October 2005">October 2005</li>
      <li href="http://softwaremaniacs.org/blog/2005/09/" title="September 2005">September 2005</li>
      <li href="http://softwaremaniacs.org/blog/2005/08/" title="August 2005">August 2005</li>
      <li href="http://softwaremaniacs.org/blog/2005/07/" title="July 2005">July 2005</li>
      <li href="http://softwaremaniacs.org/blog/2005/06/" title="June 2005">June 2005</li>
      <li href="http://softwaremaniacs.org/blog/2005/05/" title="May 2005">May 2005</li>
    </ul>
  </section>

</section>

<nl id="menu">
  <li href="/">SM.org</li>
  <li class="current" href="/blog/">Веблог</li>
  <li href="/soft/">Софт</li>
  <li href="/forum/">Форумы</li>
  <li href="/about/">О сайте</li>
</nl>

<section id="footer">
  <div id="info">
    <address>Автор: <a href="mailto:Maniac@SoftwareManiacs.Org">Иван Сагалаев</a></address> 
    <p>Блог работает на <a href="http://wordpress.org">WordPress</a></p>
  </div>
  
  <div id="services">
    <p href="http://softwaremaniacs.org/blog/2007/03/31/blogger/feed/atom/" class="feed">Feed комментариев статьи</p>
    <p href="http://softwaremaniacs.org/blog/feed/atom/" class="feed">Feed всего блога</p>
  </div>
</section>
</body>
</html>