Дадзены дакумент з'яўляецца перакладам артыкула "HTML and XHTML Frequently Answered Questions".
Арыгінальная версія якога існуе толькі на сайце W3C http://www.w3.org/MarkUp/2004/xhtml-faq
Дадзены пераклад не з'яўляецца афіцыйным дакументам W3C.
Усе Аўтарскія Правы Належаць W3C.
Дадзены дакумент можа ўтрымоўваць памылкі перакладу і памылкі друку.
Аўтар: Аляксей Пятроў ( усе пераклады ) Дзякуй за падтрымку: Чорны квадрат
Рэдактар: Steven Pemberton, W3C/CWI
Дата версіі: 21 ліпеня 2004
Іншае якое адносіцца да FAQs:
Каментары і прапановы па ўтрыманні гэтага дакумента накіроўвайце на email www-html-editor@w3.org, у тэме паведамлення пакажыце «FAQ».
HTML — магчыма, самая папулярная ў свеце мова разметкі дакументаў. З з'яўленнем XML было арганізавана абмеркаванне, ці патрэбна новая версія HTML у рамках XML. Удзельнікі адказалі адназначна «так»: версія HTML, заснаваная на XML, дазволіць выкарыстаць элементы XHTML у іншых мовах XML, а дакументы XHTML змогуць выкарыстаць элементы іншых моў XML. Акрамя таго, будзе магчымым прывесці ў парадак HTML, ліквідаваўшы яго самыя «неахайныя» элементы і пашырыўшы яго функцыянальнасць, напрыклад, палепшанай рэалізацыяй форм.
Калі дакумент складае прастой XHTML 1.0 (без выкарыстання іншых моў разметкі), то вы не зазначыце істотнай розніцы. Аднак с цякам часу даступнымі становяцца ўсё больш і больш прылад, заснаваных на XML (такіх як XSLT для ператварэння дакументаў) і вы рана або позна зазначыце перавагі выкарыстання XHTML. Напрыклад, тэхналогія XForms дазволіць вам рэдагаваць дакументы XHTML (і любыя іншыя дакументы XML). Прыкладанні Семантычнай Сеткі (Semantic Web) будуць здольныя выкарыстаць перавагі XHTML.
Калі дакумент утрымоўвае штосьці большае, чым XHTML 1.0, напрыклад, уключэнні моў MathML, SMIL, SVG, то перавагі ў наяўнасці - вы бы не змаглі выкарыстаць гэтыя тэхналогіі з HTML.
Не. Фармат HTML не заснаваны на XML. Каб інтэрпрэтаваць дадзеныя як XML, вы павінны занесці неабходныя змены, каб зрабіць код дакумента дакладным кодам XML.
HTML Tidy дазваляе атрымаць XHTML з кода HTML. Amaya - браўзэр і вэб-рэдактар, які захоўвае HTML дакументы ў фармаце XHTML.
XML уводзіць стражэйшыя правілы апрацоўкі дакументаў. Браўзэры HTML працуюць з любымі ўваходнымі дадзенымі, карэктнымі і некарэктнымі, і спрабуюць іх інтэрпрэтаваць. Схема апрацоўкі памылак вельмі ўскладняе распрацоўку праграм, асабліва калі ўлічыць, што мяркуецца, што рэакцыя ўсіх браўзэраў на некарэктныя дадзеныя павінна быць аднолькавай. Акрамя таго, гэта азначае, што вялізны лік дакументаў HTML утрымоўваюць памылкі, але нармалёва адлюстроўваюцца браўзэрамі, і аўтары не падазраюць аб тым, што код HTML некарэктны. Вось чаму складана стварыць новы карыстацкі агент, пакуль дакументы, якія выдаюцца за HTML, часта вельмі дрэнныя.
Усе браўзэры здольныя апрацоўваць дакладны код HTML. Але калі код няверны, браўзэр уносіць выпраўленні; бо розныя браўзэры па-рознаму апрацоўваюць памылкі, гэта прыводзіць да таго, што дакумент па-рознаму выглядае ў розных браўзэрах. Браўзэраў існуе сотні, іх колькасць расце (не толькі для ПК, але і для КПК, мабільных тэлефонаў, тэлевізараў, друкарак і нават халадзільнікаў), пратэставаць дакумент на ўсіх браўзэрах немагчыма. Калі ваш дакумент утрымоўвае памылкі і няправільна адлюстроўваецца ў пэўным браўзэры, гэта ваша віна, але калі код HTML карэктны, то няслушнае адлюстраванне ўжо на сумленні распрацоўнікаў праграмы.
W3C падае для гэтага сэрвіс "валідатар": http://validator.w3.org/. Браўзэр Amaya паведамляе, ці дакладны код адлюстраваных дакументаў.
У той час як браўзэры з'яўляюцца важнымі карыстачамі HTML і XHTML, існуе шмат іншых праграм і сістэм, якія выкарыстаюць (X)HTML дакументы. Пошукавыя машыны, напрыклад, счытваюць дакументы, хоць і не ставяцца да браўзэраў. Выкарыстаючы тэрмін «карыстацкі агент», мы імкнемся падкрэсліць розніцу.
Напрыклад, зрабіўшы запыт пошукавіку Google, у выніках пошуку разам са спасылкай можна ўбачыць тэкст «вэб-старонка выкарыстае фрэймы, але ваш браўзэр не падтрымлівае іх» некаторыя людзі ігнаруюць такія спасылкі. Стваральнікі такіх сайтаў не ўяўляюць сабе, што кантэнт патрабуецца не адным толькі браўзэрам, і што элемент <noframes> павінен утрымоўваць больш прадбачлівы тэкст, які не выглядае гэтак глупа ў вачах людзей, выкарыстоўвалых пошук.
У час станаўлення HTML розныя групы і кампаніі дадавалі па сваім жаданні новыя элементы і атрыбуты ў HTML. Гэта пагражала блытанінай з версіямі HTML, якія не з'яўляюцца агульнапрынятымі. XML («X» азначае «пашыраецца», «Extensible») дазваляе ўсім выкарыстаць элементы з розных моў, але браўзэр або іншы карыстацкі агент павінен неяк вызначаць, да якой мовы ставіцца той або іншы элемент. Для гэтага і патрабуюцца аб'явы імянных прастор (namespace).
XHTML мае фармат XML; гэта азначае, што тып дадзеных дакумента XHTML павінен суадносіцца з XML (application/xhtml+xml,
application/xml, or text/xml). Аднак XHTML 1.0 ствараўся такім чынам, каб дакументы маглі дакладна адлюстроўвацца карыстацкімі агентамі HTML. Калі вы рушыце ўслед некалькім простым правілам, дакументы XHTML 1.0 будуць падыходзіць для браўзэраў HTML. Але, паколькі апошнія працуюць толькі з тыпам дадзеных text/html, вам неабходна перадаваць XHTML 1.0 як text/html, каб забяспечыць сумяшчальнасць з састарэлым праграмным забеспячэннем. Але ведайце: дакумент з загалоўкам text/html заўсёды будзе апрацоўвацца як прастой HTML, а не XHTML.
Вядомыя нам браўзэры — усё заснаваныя на Mozilla (Mozilla, Netscape 5+, Galeon, Firefox), Opera, Amaya, Camino, Chimera, DocZilla, iCab, Safari, плюс усё праграмнае забеспячэнне для мабільных тэлефонаў, якія працуюць з WAP2. Фактычна, любы сучасны браўзэр павінен прымаць тып дадзеных
application/xml. Звярніціся к тэсту XHTML
Media-type test за падрабязнасцямі.
Не, але ёсць выкрут, якая дазволіць перадаваць XHTML1.0 для Internet Explorer у якасці application/xml.
Дадайце ў пачатак дакумента вылучаны ніжэй радок:
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="copy.xsl"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
файл copy.xsl павінен утрымоўваць такі код::
<stylesheet version="1.0"
xmlns="http://www.w3.org/1999/XSL/Transform">
<template match="/">
<copy-of select="."/>
</template>
</stylesheet>
Файл павінен утрымоўвацца на тым жа сайце, з якога перадаецца дакумент.
Вы перадаеце дакумент як XML, ён праходзіць апрацоўку, у падрахунку браўзэр лічыць, што атрыманы text/html, такім чынам, карыстаючыся прыведзенай радай, вы павінны ўлічваць усе правілы, якія патрабуюцца для забеспячэння сумяшчальнасці XHTML 1.0 з браўзэрамі HTML.
Дакумент будзе працаваць для браўзэраў, якія прымаюць XHTML 1.0 як application/xml.
Не. Правілы CSS, якія адносяцца толькі да HTML, ужываюцца толькі да дакументаў, перададзеным як text/html.
Не. Сама сутнасць XML мяркуе, што немагчыма генераваць разметку скрыптамі, у тый час як парсер яшчэ апрацоўвае разметку.
Можна дамагчыся таго жа эфекту, што і document.write, але для дадання і выдалення элементаў трэба выкарыстаць DOM.
XHTML 1.1 уяўляе сабою звычайны XML, прызначаны толькі для апрацоўкі ў якасці XML. XHTML 1.1 нельга перадаваць браўзэрам HTML. Таму дакументы XHTML 1.1 абавязкова павінны перадавацца з тыпам дадзеных, якія адносяцца да XML, такім як application/xhtml+xml.
Атрыбут target не ліквідаваўся з XHTML 1.1. XHTML 1.0 падпадзяляецца на тры розныя версіі: strict, transitional і frameset. Усе разнавіднасці забяспечваюць такую сумяшчальнасць з HTML 4.01, якую толькі дазваляе XML. XHTML 1.1 — абноўленая версія XHTML 1.0
strict, а атрыбуту target не было ні ў адной версіі HTML strict. Іншыя версіі, transitional і frameset, не былі абноўлены, бо ў гэтым няма неабходнасці. Калі вы жадаеце выкарыстаць атрыбут target выкарыстайце XHTML 1.0 transitional.
Мадулярызацыя XHTML (Modularization) прызначана для ўжывання распрацоўнікамі моў, заснаваных на XHTML, але не карыстачамі моў. Кампаніі і групы часта распрацоўваюць уласныя версіі HTML і XHTML, якія не сумяшчальны паміж сабою. Мадулярызацыя падзяляе XHTML на модулі, якія могуць па асобнасці выкарыстоўвацца пры азначэнні новай мовы; так, напрыклад, любая версія мовы, выкарыстоўвалая табліцы, будзе працаваць з адзіным для XHTML азначэннем табліц. Акрамя таго, мадулярызацыя растлумачвае, у якіх выпадках можна дадаваць новыя элементы, а ў якіх — не.
HTML і XHTML выканалі ўскладзеныя на іх задачы, але ў гэтых мовах ёсць мноства элементаў, якія трэба палепшыць. У XHTML 2 адмысловая ўвага нададзена паляпшэнню магчымасцяў структуравання, выдаленню элементаў, якія ўжо ёсць у XML, выгодзе выкарыстання (usability), даступнасці (accessibility), інтэрнацыяналізацыі, апаратнай незалежнасці, палепшанаму механізму форм, ухіленню неабходнасці ў выкарыстанні скрыптавання.
Не. Элемент <img> будзе заменены ў XHTML 2, але чымсьці іншым (хоць вы можаце выкарыстаць і<object> калі жадаеце).
Дызайн <img> у HTML мае шмат недахопаў:
alt калі браўзэр не ўспрымае фармат PNG. Гэта як раз і памяшала распаўсюджванню фармату PNG (лепшага, чым GIF і JPG), бо аўтары кантэнту выкарысталі больш старыя фарматы, каб быць упэўненымі, што графіка даступная для ўсіх карыстачоў.alt не можа быць размечаны, так што калі вы яго выкарыстаеце, то вам даступны толькі прасты тэкстlongdesc на апісанне малюнка, але гэтая магчымасць рэдка рэалізуецца.У XHTML 2 малюнкі прыраўноўваюцца да складнікаў кантэнту, гэта здзяйсняецца прысвойваннем уласцівасці src любому элементу. Калі малюнак даступны і браўзэр можа яго апрацаваць, графіка будзе скарыстана, інакш браўзэр будзе выкарыстаць змесціва элемента. Напрыклад:
<p src="map.png">Выхад са станцыі, звярніцеся налева, падніміцеся па прыступках на<strong>Верхнюю Вуліцу</strong>, і звярніце направа</p>
Перавага гэтага ў тым, што ў выпадку, калі малюнак недаступны (да прыкладу, з-за памылак у сеткі) або не можа быць апрацаваны браўзэрам, дакумент застаецца даступным. Калі патрабуецца выкарыстаць больш аднаго малюнку, код будзе выглядаць так:
<p src="map.png"><span src="map.gif">Выхад са станцыі...</span></p>
вядома, лепш выкарыстаць тэхналогію content negotiation, калі яе падтрымлівае ваш сервер:
<p src="map">Выхад са станцыі...</p>
У такім разе, сервер «дамаўляецца» з браўзэрам, які фармат графікі перадаць праграме. Калі даступных малюнкаў няма, будзе скарыстана змесціва элемента. Гэта дазваляе дадаць малюнкі асобнага фармату пазней, не змяняючы код старонак.
XLink і XHTML маюць розныя патрабаванні для выкарыстання спасылак, і гэтыя патрабаванні не сумяшчальны.
Сумяшчальнасць ёсць, але яна рэалізаваная інакш, чым раней.
Раннія версіі HTML былі мовамі для пэўнай вобласці ўжывання (якія не суадносіцца з нейкай агульнай прыладай разметкі), таму было важна падтрымліваць сумяшчальнасць, так каб старыя браўзэры карэктна ўспрымалі дакументы. Напрыклад, па гэтым чынніку элемент<meta> утрымоўвае дадзеныя ў сваім атрыбуце, а не ў якасці свайго змесціва — так забяспечана сумяшчальнасць з ранейшым праграмным забеспячэннем.
Аднак дзякуючы XML і табліцам стыляў, такі строгі механізм сумяшчальнасці больш не патрэбен, бо браўзэр XML (на момант напісання гэтага тэксту 95% браўзэраў прымаюць XML) можа апрацоўваць новую мову без абнаўлення. Шматлікія магчымасці XHTML 2 ужо даступны ў сучасных браўзэрах, зробленых не адмыслова для XHTML 2. Шматлікае працуе, але не ўсё: калі формы і табліцы былі дададзены ў HTML, людзям прыйшлося пачакаць з'яўлення новых браўзэраў; сапраўды гэтак жа адмысловыя элементы XHTML 2, такія як XForms і XML Events, патрабуюць ад праграмнага забеспячэння разумення іх функцыянальнасці.
Атрыбут xml:space звязан з уводам: ён патрабуецца, каб кантраляваць, ці будуць прабелы прадстаўлены ў DOM (т.е. ва ўнутранай версіі дакумента, з якой працуе браўзэр); гэта не ставіцца да канчатковага адлюстравання дакументаў. Выснова прабельных знакаў усталёўваецца уласцівасцю CSS 'whitespace'. Прысвойце яму значэнне 'pre' каб усе пробельные знакі DOM былі бачны пры выснове; значэнне
'normal' схавае прабельныя знакі (CSS 3 будзе ўтрымоўваць багацейшыя сродкі кантролю высновы).
Менавіта таму для ўсіх элементаў XHTML усталявана
xml:space="preserve" інакш бы ўласцівасць
'whitespace' не мела дзеяння. Табліца стыляў па змаўчанні ўсталёўвае
'whitespace' значэнне 'normal' для ўсіх элементаў, акрамя
<pre>, але вы можаце гэта змяніць у сваіх табліцах.
Copyright ©2004 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply. Your interactions with this site are in accordance with our public and Member privacy statements.