HTML » XHTML » XML

Основна відмінність між HTML і XHTML полягає в тому, що в XHTML застосовується синтаксис XML, який призначений для допомоги в розробці синтаксично коректних і правильних документів XML. XHTML являє собою словник XML, у той час як HTML – це лише попередній XHTML мову розмітки.

У зв'язку з тим, що XHTML є додатком XML, деякі дії. які абсолютно правильні в HTML4 на базі SGML, повинні бути змінені. Перерахуємо правила, яких необхідно дотримуватися при переході від HTML до XHTML:

1. Документи повинні бути правильно сформовані.

Це означає, що всі елементи зобов'язані мати закриває тег (наприклад, <p></p>) Або бути написані в спеціальній формі (наприклад, <br />), А також повинна дотримуватися коректна вкладеність елементів.

Хоча перекривання елементів не допускалося і в SGML, деякі браузери лояльно до цього ставилися і в більшості випадків відображали саме те, що хотів показати автор документа.

ПРАВИЛЬНО: вкладені елементи
<p>виділяємо це <em>слово</em>.</p>

НЕПРАВИЛЬНО: елементи перекриваються
<p>виділяємо це <em>слово.</p></em>

2. Імена елементів і атрибутів повинні бути в нижньому регістрі.

Документи XHTML повинні використовувати нижній регістр для всіх імен елементів і атрибутів HTML. Це необхідно, оскільки XML чутливий до регістру, наприклад, <ul> і <UL> це різні теги.

3. Правила написання значень атрибутів.

Всі значення атрибутів, навіть цифрові повинні бути поміщені в подвійні ("") або одинарні ('') лапки.

ПРАВИЛЬНО: атрибут у лапках
<td colspan="8">

НЕПРАВИЛЬНО: атрибут не в лапках
<td colspan=8>

Якщо значення атрибута містить амперсанд, він повинен виражатися Мнемонік ("&amp;"). Наприклад, якщо атрибут href елемента <a> посилається на скрипт CGI, який приймає параметри, він (атрибут) повинен бути виражений так:

http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user, А не так:
http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user
.

Зумовлені значення атрибутів (наприклад атрибут type елемента input) РеЄсТрОзАлЕжНі і повинні бути написані в нижньому регістрі. Однак, це не стосується значень атрибутів визначаються авторами документів (наприклад значення для атрибутів id, name або class), Які також РеЄсТрОзАлЕжНі, але допускають використання символів у верхньому регістрі.

Слід врахувати, що ведучі та ведені прогалини у значеннях атрибутів видаляються браузерами, а один або кілька послідовних пробілів між словами (а також переклади рядків) перетворюються на одиночний межсловний пробіл (пробіл ASCII в західних мовах).

XML не підтримує мінімізацію атрибутів. Пари атрибут / значення обов'язково повинні бути виписані повністю. Імена атрибутів, такі як compact і checked, Не можуть з'являтися в елементах без певних значень.

ПРАВИЛЬНО: атрибут написаний повністю
<dl compact="compact">

НЕПРАВИЛЬНО: атрибут мінімізований
<dl compact>

4. Для непустих елементів необхідні кінцеві теги.

У HTML4 на базі SGML, деякі елементи допускали відсутність кінцевого тега за наявності інших подальших елементів з закривають тегами. Така відсутність кінцевих тегів не допускається в XHTML на базі XML. Всі елементи, за винятком тих, які оголошені у визначенні типу документа як EMPTY, Повинні мати кінцевий тег.

ПРАВИЛЬНО: закриті елементи
<p>Тут якийсь текст.</p><p>Ще параграф з текстом.</p>

НЕПРАВИЛЬНО: незакриті елементи
<p>Тут якийсь текст.<p>Ще параграф з текстом.

5. Порожні елементи

Порожні елементи зобов'язані мати кінцевий тег, або стартовий тег зобов'язаний закінчуватися />. Наприклад, <br /> або <br></br>.

Для сумісності з застарілими браузерами слід писати пробіл перед /> в одиночному порожньому елементі.

Слід використовувати мінімізований синтаксис для тегів порожніх елементів, наприклад, <br /> так як альтернативний синтаксис <br></br>, Що допускається XML, дає непередбачувані результати в багатьох існуючих браузерах.

При створенні порожнього об'єкта елемента, чия модель вмісту не EMPTY(Наприклад, порожній заголовок або параграф), не слід використовувати мінімізовану форму (тобто потрібно використовувати <p> </p>, А не <p />).

ПРАВИЛЬНО: порожні теги закриті
<br /><hr />

НЕПРАВИЛЬНО: порожні теги не закриті
<br><hr>

6. Елементи <script> і <style>.

У XHTML елементи <script> і <style> оголошено як мають вміст #PCDATA. Як результат цього, < і & будуть розглядатися як початок розмітки, а мнемоніки, такі як &lt; і &amp;, Будуть вважатися процесором XML мнемоніка символів < і & відповідно. Перенесення вмісту елементів <script> або <style> в розділ, позначений CDATA, Дозволить уникнути розшифровки цих мнемонік.

<script type="text/javascript">//<![CDATA[
  ... unescaped script content ...
//]]></script>

Розділи CDATA розпізнаються процесором XML і є вузлами в об'єктній моделі документа (Document Object Model)

Альтернативою може бути використання зовнішніх документів скриптів і стилів.

7. Винятки SGML.

SGML надавав творцям визначень типу документа можливість виключати деякі елементи як вміст елементу. Такі заборони (звані "виключення") неможливі в XML.

Наприклад, Суворе визначення типу документа HTML4 (Strict DTD) забороняє вкладення елемента <a> в інший елемент <a> на будь-яку глибину. Хоча ці заборони і можуть бути відсутніми у визначенні типу документа, певні елементи не можуть вкладатися.

У XHTML:
<a> не може містити інші елементи <a>.
<pre> не може містити елементи <img>, <object>, <big>, <small>, <sub> або <sup>.
<button> не може містити елементи <input>, <select>, <textarea>, <label>, <button>, <form>, <fieldset>, <iframe> або <isindex>.
<label> не може містити інші елементи <label>.
<form> не може містити інші елементи <form>.

8. Елементи з атрибутами "id" і "name"

HTML 4 визначив атрибут name для елементів a, applet, form, frame, iframe, img і map, А також ввів атрибут id. Обидва ці атрибуту створені для використання в якості ідентифікаторів фрагмента.

У XML ідентифікатори фрагмента мають тип ID, І в елементі може бути тільки один атрибут типу ID. Таким чином, в XHTML 1.0 атрибут id визначений як атрибут типу ID. Щоб бути впевненим, що документи XHTML 1.0 є правильно структурованими документами XML, документи XHTML 1.0 зобов'язані використовувати атрибут id для визначення ідентифікаторів фрагмента, і навіть у тих елементах, які історично мали атрибут name.

Також слід пам'ятати, що значення атрибута id в межах документа повинна бути унікальним.

У XHTML 1.1 для елементів a і map атрибут name видалений, замість нього слід використовувати атрибут id.

9. Подвійні тире в коментарях

У коментарях подвійні тире "-" можуть позначати тільки початок і кінець коментаря.

НЕПРАВИЛЬНО:
<! - Використовувати роздільник, написаний нижче - не можна і цей коментар - невірний ->
<!--------------------------------->

ПРАВИЛЬНО:
<! - Використовувати роздільник, написаний нижче - - можна і цей коментар - - вірний ->
<!--==== - - - - ====-->

Таким чином, подвійні тире "-" не позначають початок і кінець коментаря в його тексті повинні бути чим-небудь замінені або розділені пробілом, наприклад "- -".

10. Символи <і & в тексті документа

Символи <і & в тексті документа повинні бути замінені відповідними послідовностями <і &.

Немає необхідності, але бажано замінювати також і> на>.

11. Ось зразок мінімального документа XHTML:

<?xml version="1.0" encoding="windows-1251"?>
<! DOCTYPE html PUBLIC "- / / W3C / / DTD XHTML 1.1 / / EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru">

   <head>
      <title>
XHTML</title>
   </head>
   <body>
    <p>
Подробиці про розмітку на сайті W3C: <a href="http://w3c.org/MarkUp/"> http://w3c.org/MarkUp/ </a>.</p>

   </body>
</html>

Кореневим елементом документа повинен (зобов'язаний) бути <html>.

Кореневий елемент документа зобов'язаний позначити простір імен XHTML шляхом використання атрибуту xmlns[XMLNAMES]. Простір імен XHTML визначено в http://www.w3.org/1999/xhtml.

У документі має бути присутнє оголошення DOCTYPE, Попереднє кореневого елементу (<html>).
Публічний ідентифікатор, включений до оголошення DOCTYPE, Зобов'язаний бути посиланням на одне з визначень типу документа. O різних визначеннях DOCTYPE та їх вплив на відображення (X) HTML документа в браузерах можна прочитати у статті "Різна відображення HTML документів в браузері залежить від оголошеного Doctype".

Автор: Андрій Баранов
Джерело: http://xhtml.ru/
за матеріалами сайту http://www.w3.org/

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*