XHTML мову HTML як XML-додаток - Програмування від
XHTML-документи відповідають стандарту XML, і, отже, можуть переглядатися, редагуватися і перевірятися на синтаксичну правильність стандартними засобами підтримки мови XML.
XHTML-документи можуть відображатися як існуючими браузерами HTML-документів, так і новими браузерами, що підтримують стандарт XHTML.
XHTML-документи можуть звертатися до сценаріїв та аплетів, заснованих на об'єктній моделі документів (DOM).
З практичної точки зору переваги XHTML такі:
І розробники документів, і розробники оглядачів постійно шукають нові способи вираження своїх ідей за допомогою нових HTML-тегів. XML забезпечує єдиний і простий спосіб створення нових елементів мови та їх додаткових атрибутів. XHTML покликаний уніфікувати такі розширення мови HTML за допомогою XHTML-модулів, які підтримуватимуть комбінації існуючих елементів HTML з новими елементами при розробці та відображенні документів.
На думку творців мови HTML, він, незважаючи на його приголомшливий успіх, за минуле десятиліття повністю вичерпав себе і перетворився на важкооглядного монстра, підтримка якого через надмірно розрослий набор тегів стає все більш скрутною. Тому історія HTML закінчується його четвертою версією; HTML 5 ніколи створений не буде - точніше кажучи, таким можна вважати XHTML 1.0, який починає нову епоху мов для Веб-документів, засновану на єдиній протомові XML, що забезпечує своїм додаткам розширюваність та переносимість.
XHTML -документ має таку структуру:
І з цього прикладу видно, що XHML-документ складається з наступних компонентів:
Декларація XML-документа (перший рядок прикладу). Цярядок не є обов'язковим згідно стандарту XML, але W3C рекомендує завжди включати його на початок XHTML-документа. Якщо кодування символів документа відрізняється від UTF-8 або UTF-16, то XML-декларація стає обов'язковою і повинна містити назву кодування символів в атрибутіencoding.
Декларація типу документа (другий рядок прикладу). Ця декларація є обов'язковою і може набувати одного з трьох значень, які відповідають трьом деклараціям типів HTML-документів:
Кореневий елемент документа (інші рядки прикладу). Цим елементом єhtml з обов'язковим атрибутомxmlns, що задає простір імен XHTML-документа. Значеннямxmlns має бути рядок "http://www.w3.org/1999/xhtml" . Крім того, для завдання мови документа повинні використовуватися і атрибутlang, і атрибутxml:lang, як показано у прикладі.
Оскільки XHTML-документи є XML-додатками, на їх синтаксис накладається ряд додаткових обмежень, які виражаються в тому, що XHTML-документи повинні бути правильно оформлені в розумінні стандарту XML. Це означає, що:
Кожен елемент повинен мати кінцевий тег, навіть якщо стандарт HTML говорить, що він не є обов'язковим. Якщо елемент немає кінцевого тега і вмісту, його початковий тег повинен закінчуватися на/>, наприклад , , . Пробіл перед дробовою рисою не обов'язковий, але рекомендується для сумісності з сьогоднішніми Веб-браузерами.
Елементи повинні або слідувати один за одним, або бути вкладені один в інший, як це було рекомендовано в цьому пункті, хоча досі веб-браузери ліберально ставилися до неправильного вкладення елементів один в одного.
Назви елементів та атрибутів HTML повинні писатисьмалими літерами, тому що мова XML розрізняє регістри, і в ньому і - це різні теги.
Значення атрибутів завжди повинні полягати в лапки (пор. пункт). Не допускається короткий запис атрибутів виду. Атрибут завжди повинен мати значення, у разі: .
Значення атрибутів нормалізуються відповідно до стандарту XML. Це означає, що з них видаляються початкові та кінцеві пробіли, а кожна послідовність пробілів усередині значення атрибутів (включаючи розриви рядків) замінюється на один символ пробілу.
Якщо елементиstyle абоscript містять спеціальні символи, їх вміст слід укладати в марковану секцію CDATA, інакше процесор XML перетворює спеціальні символи в їх еквіваленти до обробки оглядачем відповідної таблиці стилів або сценарію:
Атрибутname елементівa,form,frame,iframe,img таmap оголошено в XHTML морально застарілим; замість нього має використовуватися атрибутid. Більше того, всюди в XHTML-документах для створення закладок слід користуватися атрибутомid, наприклад: : .
Для того, щоб XHTML-документ правильно відображався Веб-браузерами, рекомендується дотримуватися наступних правил:
Оскільки XML-програми поки не мають зареєстрованого типу MIME, для XHTML-документів слід використовувати тип "text/html" у метаописувачі. Для завдання кодування символів документа слід вказувати і цей метаописувач, і XML-декларацію. Пам'ятайте, що XML-декларація має пріоритет перед HTML-декларацією кодування символів.
Для завдання мови елемента повинні використовуватися і атрибутlang, і атрибутxml:lang, причому атрибутxml:lang має пріоритет.
Якщо значення атрибутумістить символ амперсанта "&", його слід замінити на відповідний спеціальний символ&. Наприклад, якщо атрибутhref елемента вказує на 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 .
При використанні каскадних таблиць стилів слід пам'ятати, що синтаксичний аналіз властивостей стилів для HTML-документів і XML-документів проводиться по-різному. Для того, щоб ці відмінності менше впливали на відображення ваших документів, дотримуйтесь таких правил:
Назви елементів та атрибутів CSS повинні писатися малими літерами.
Якщо таблиця стилів містить властивості для елементаtbody, то таблиці в XHTML-документі повинні явно містити цей елемент (HTML додає його за замовчуванням, а XML немає).
Звертайте увагу на ті випадки, коли стандарт CSS по-різному визначає правила аналізу властивостей для HTML-документів і для XML-документів.