понеделник, 25 май 2009 г.

xHtml и HTML

Преглед

XHTML е "преформулиране на трите HTML документ 4 типове като приложения на XML 1,0". [1] W3C също продължава да се поддържа HTML 4.01 препоръка и спецификации за HTML 5 и XHTML 5 активно да се развиват. В настоящия XHTML 1.0 Препоръка документ, като публикува и ревизирани към август 2002 г., W3C мнения, че "The XHTML семейството е следващата стъпка в еволюцията на интернет. Чрез мигриране към XHTML днес, съдържанието на разработчиците да въведете XML света с всички свои съпътстващи ползи, докато все още остават уверени в тяхното съдържание на изостанали и бъдещи съвместимост. "[1]

Мотивация

В края на 1990-те години, мнозина считат, че бъдещето на HTML се в създаването на версия спазване на правилата на XML синтаксис. [2] тогавашните текущата версия на HTML, HTML 4, е привидно молба на Стандарт за общи Маркиращ език ( SGML), въпреки че в спецификациите за SGML е сложна, и нито уеб браузъри, нито на HTML 4 Препоръка бяха напълно conformant с тях. [3], чрез пренасочване на база извършените от SGML към опростен XML, HTML ще станат съвместими с общия XML инструменти; [4] сървъри и представителство ще бъде в състояние да трансформира съдържанието, както е необходимо, за ограничени устройства като мобилни телефони. [5]

Друг ключов предимство е разширяемостта. Чрез използване на namespaces, XHTML документи могат да включват фрагменти от други XML-базирани езици като Скалируемо векторни графики и MathML. [6] Накрая, подновява работа ще предостави възможност да се разделят в HTML преизползваеми компоненти (XHTML Modularization) и почисти неспретнат части на езика. [7]

Отношение към HTML

HTML е първи технология за XHTML. Промените от HTML към първото поколение XHTML 1.0 са малки и са основно за постигане на съответствие с XML. Най-важната промяна е изискването, че документът трябва да бъде добре формирани и че всички елементи трябва да бъдат изрично закрито, както се изисква в XML. [8] По XML, всички елементи и описателни имена са съдебната чувствителни, така че XHTML подход е да се дефинират всички маркер имената да бъдат малки.

Това контрастира с някои по-ранни установени традиции, която започна по време на HTML 2.0, когато се използват много главни маркери. В XHTML, всички атрибута ценности трябва да бъдат затворени с кавички; или единични ( ') или двойни ( ") кавички могат да бъдат използвани. В контраст на това понякога е по желание в SGML-базирани HTML, когато атрибути могат да се пропуснат котировки в някои случаи. [ 9] Всички елементи трябва да бъдат изрично закрити, включително празни (известен още като Сингълтън) елементи като IMG и Br. Това може да стане чрез добавяне на затваряне наклонена черта на проекта маркер, например, и img / br / . Атрибути минимизиране (напр. option selected ) също е забранено, тъй като атрибут на разглеждане не съдържа изрична стойност, а вместо това ще бъде написано, както option selected="selected" .

HTML елементи, които са задължителни в съдържанието модел няма да се появи в ДОМ дървета, освен ако те не са изрично посочени. Например, XHTML страници, трябва да имате body. елемент, както и таблица, няма да има tbody елемент, освен ако авторът посочва едно.

В XHTML 1.0 препоръка посвещава раздел на различия между HTML и XHTML. [10] В WHATWG Wiki Аналогично счита различия, които възникват при използването на (X) HTML5. [11]

Защото XHTML и HTML, са тясно свързани с технологии, понякога те са писали за документиране и паралелно. При такива обстоятелства, някои автори conflate двете имена чрез вмъкнат нотация, като (X) HTML. Това показва, че документацията и принципи, може да се смята, че се прилага по принцип и за двете стандарти. [12]

Приемане

Сходствата между 4,01 и HTML XHTML 1.0 доведе много уеб сайтове и системи за управление на съдържанието, за приемане на първоначалната W3C XHTML 1.0 препоръка. За помощ авторите по време на преходния период, предвиден в W3C насоки за това как да се публикуват XHTML 1.0 документи в HTML-съвместим начин и им служат за браузъри, които не са проектирани за XHTML. [13] [14]

Такива "HTML-съвместим" съдържание е изпратено с помощта на HTML медиен тип (текст / HTML), а не на официалната Интернет медии тип за XHTML (прилагане / XHTML + XML). При измерване на приемане на XHTML с тази на редовните HTML, поради това, че е важно да се прави разлика дали е медиен тип ползване или действителни съдържанието на документите, които се сравняват.

Повечето уеб браузъри са зрели подкрепа [15] за всички възможни XHTML медийни типове. [16] В забележително изключение е Internet Explorer от Microsoft; отколкото оказване на молбата / XHTML + XML съдържание, диалогова кутия приканва потребителя да запишете съдържанието да диск вместо. И двете Internet Explorer 7 (освободен през 2006 г.) и Internet Explorer 8 излизане Кандидат 1 (освободен през януари 2009) проявява този проблем, и не е ясно дали това ще се решат в бъдещ съобщение. [17] Докато това продължава делото Повечето уеб разработчици избягват да използват XHTML, че не е HTML-съвместими, [18], така предимствата на XML като namespaces, по-бързо и по-малки анализирането-отпечатък браузъри не полза на потребителя. Microsoft Developer Крис Уилсън обясни, че през 2005 г. на ie7 приоритети са подобряване на сигурността и CSS подкрепа, както и че правилното XHTML подкрепа ще бъде трудно да се присадкови върху съвместимостта на IE-ориентирани HTML parser. [19]

критика

В ранния 2000s, някои уеб разработчици започна на въпрос защо Уеб автори някога направи скок в authoring в XHTML. [20] [21] [22] Други противодейства, че проблемите приписва на използването на XHTML може най-вече се дължат на две основни Източници: производство на невалидни XHTML документи от някои уеб автори, както и липсата на подкрепа за XHTML построен в IE6. [23] [24] Те отидоха да опишат предимствата на XML-базирани уеб документи (т.е. XHTML) по отношение на търсенето, индексиращи и синтактичния анализ, както и бъдещите-proofing уеб самоцел.

През октомври 2006 г., HTML изобретател и W3C стол Tim Berners-Lee, въвеждане на W3C големи усилия, за да развиват нови HTML 5 и XHTML 5 спецификации, публикувани в блога си, че "Опитът да отида по света, за да превключите на XML ... всички наведнъж не е работа. Големите HTML генериращи публични не се движат ... Някои големи общности направи смяна и се ползват от плодовете на добре формирани системи ... Планът е да се чартърни изцяло нов HTML група. "[25] В настоящия HTML XHTML и 5 работни проекта, неговите автори казват, че "особено внимание е отделено определящи ясни критерии за съответствие потребител агенти в усилията да се подобри оперативната съвместимост", "... а в същото време, актуализиране на HTML спецификации, за да обърне внимание на въпроси, поставени в последните няколко години. " Ian Hickson, автор на книга criticising неправилното използване на XHTML през 2002 г., [20] е член на групата, развиващи тази спецификация и е посочена като един от съ-автори на текущия работен проект. [26]

версии на XHTML

XHTML 1.0
Уикипедия използва XHTML 1.0 Transitional

Декември 1998 видях публикуването на W3C Работен проект за право преформулират HTML в XML. Това въведени Voyager на codename за нов език за маркиране на базата на HTML 4, но се придържат към строги правила синтаксиса на XML. Към февруари 1999 г. спецификацията е променила името си XHTML 1.0: The хипертекст разширяем език за маркиране, и през януари 2000 г. той е официално приет като W3C препоръка. [27] Има три официални DTDs за XHTML 1.0, съответстваща на три различни версии на HTML 4.01:

* XHTML 1.0 Strict е равнозначна на строгите HTML 4,01, и включва елементи и атрибути, които не са били маркирани deprecated в HTML 4.01 спецификация.
* XHTML 1.0 Transitional е еквивалентът на HTML 4.01 Transitional и включва презентационни елементи (като център, шрифт и стачка), изключени от строгия вариант.
* XHTML 1.0 Frameset е еквивалентът на HTML 4.01 Frameset, и дава възможност за дефиниране на документи frameset-общ Уеб черта в края на 1990-те години.

Второто издание на XHTML 1.0 стана W3C Препоръка през август 2002 година. [28]

Modularization на XHTML

Modularization предвижда абстрактна събиране на компоненти, чрез които може да се subsetted XHTML и разширено. Функцията е предназначена да помогне XHTML разширят своето място върху нововъзникващите платформи, като например мобилни устройства и поддръжка за уеб-телевизия. Първоначалният проект на Modularization на XHTML станаха достъпни през април 1999 г., и достигна Препоръка статус през април 2001 година. [29]

Първият XHTML Семеен Маркиращите езици да бъдат разработени с тази техника бяха XHTML 1.1 и XHTML Основни 1.0. Друг пример е XHTML-Отпечатай (W3C Препоръка, септември 2006 г.), на език, предназначен за отпечатване от мобилни устройства, за да нискотарифна принтери. [30]

През октомври 2008 Modularization на XHTML бе заменен от Modularization XHTML 1.1, която добавя XML Schema изпълнение. [31]

XHTML 1.1 Модул-базирани XHTML

XHTML 1.1 еволюира от работата около първоначалното Modularization на XHTML спецификация. В W3C публикува първия проект през септември 1999 г.; Препоръка положение бе постигнато през май 2001 година. [32] Модулите съчетани в рамките на XHTML 1.1 ефективно recreate XHTML 1.0 Strict, с добавянето на рубинен анотация елементи (рубин, rbc, РТК, RB, RT и RP) за по-добра подкрепа на Изток-азиатски езици. Други промени включват отстраняване на Език атрибут (в полза на XML: Език), и отстраняването на името атрибут от А и на сайта елементи.

Въпреки, че XHTML 1.1 е до голяма степен съвместим с XHTML 1.0 и HTML 4, през август 2002 г. W3C издаде официална Забележка съветват, че тя не трябва да се изпращат с HTML медиен тип. [33] С ограничена браузър подкрепа за заместник прилагане / XHTML + XML медиен тип, XHTML 1.1 оказаха в състояние да получат широко приложение. През януари 2009 втора версия на документа, е било издадено, релаксираща това ограничение XHTML 1.1 и позволява да се работи като текст / HTML. [34]

XHTML 1.1 Second Edition (W3C Предложени Редактирани Препоръка) бе издадена на 7 май 2009. [35]

XHTML основни и XHTML-депутат

За да подкрепи ограничени средства, XHTML Основни бе създаден от W3C; тя достигна Препоръка статут през декември 2000 година. [36] Основни XHTML 1.0 е най-рестриктивните версия на XHTML, осигуряване на минимален набор от функции, които дори и най-ограничен устройства може да се очаква за поддръжка.

Отворено мобилен алианс и неговите предшественици на WAP Форум освобождава три часа спецификации между 2001 и 2006 г., че удължава XHTML Основни 1.0. Известна като XHTML мобилен Профил или XHTML-депутат, те са силно насочени към обединяване на различни езици, използвани за маркиране на мобилни телефони в момента. Всички предоставят богати форма контролира от основния XHTML 1.0, заедно с различни нива на поддръжка на скриптове.

XHTML Основни 1,1 стана W3C Препоръка през юли 2008, която замества XHTML-депутат 1.2. [37] Основни XHTML 1.1 се почти, но не съвсем подмножество на редовни XHTML 1.1. Най-забележително допълнение над XHTML 1.1 е най-inputmode атрибут също намери в XHTML-1.2-депутат, който осигурява напътствия, за да се подобри формата браузъри влизане.

XHTML 1,2
Тази статия или секция съдържа информация за насрочено или очаквани бъдещи софтуер. Информация за него може да се променя, както софтуера съобщение подходи и повече информация стане достъпна.

В XHTML 2 Работна група обмисля създаването на нов език на базата на XHTML 1.1. [38] Ако XHTML 1.2 е създадена, тя ще включва WAI-ария и ролята атрибути достъпни за по-добра поддръжка на уеб приложения, както и подобрени Семантичен Уеб поддръжка чрез RDFa. В inputmode атрибут от основния XHTML 1.1, заедно с целевите атрибут (за определяне на рамката цели), могат също да присъстват. Това е важно да се отбележи, че XHTML2 РГ все още не са заклети за извършване на развитието на XHTML1.2, това означава, че XHTML1.2 Предложението може да не ставам.

XHTML 2,0
Тази статия или секция съдържа информация за насрочено или очаквани бъдещи софтуер. Информация за него може да се променя, както софтуера съобщение подходи и повече информация стане достъпна.

Между август 2002 и юли 2006 г. W3C пуснати първите осем работни Чернови на XHTML 2.0, нова версия на XHTML в състояние да направи чиста почивка от миналото от изхвърлянето на изискването за обратната съвместимост. Тази липса на съвместимост с XHTML 1.x и HTML 4 причинени някои ранни противоречия в уеб разработчик общността. [39] Някои части на езика (като ролята и RDFa атрибути), в последствие бяха разделени от спецификацията и е работил като отделни модули, частично, за да направят преход от XHTML 1.x към XHTML 2,0 гладко. А деветият проект на XHTML 2.0 се очаква да се появи през 2009.

Нови функции, въведена с XHTML 2,0 включват:

* HTML форми ще бъдат заменени с XForms Един XML-базирани потребителски вход спецификацията позволява формулярите да бъдат показани по подходящ начин за оказване на различни устройства.
* HTML рамки ще бъдат заменени от XFrames.
* В ДОМ събития ще бъде заменен с XML Събития, които използва XML Документ на обектния модел.
* A нов списък елемент тип, NL елемент тип, ще бъдат включени към изрично посочи списък като навигация списък. Това ще бъде от полза в създаването вложени менюта, които в момента са създадени по най-разнообразни средства като вложени unordered списъци или вложени определение списъци.
* Всеки елемент ще бъде в състояние да действа като хипервръзка, Е. Г., li href="articles.html" членове / Напред , подобни на XLink. Въпреки това, XLink себе си не е съвместим с XHTML поради дизайн разлики.
* Всеки елемент ще бъде в състояние да позоваването алтернативни медии с SRC атрибут, Е. Г., p src="lbridge.jpg" type="image/jpeg" Лондон Бридж / P е същата като object src="lbridge.jpg" type="image/jpeg" p Лондон Бридж / P / обект .
* В ALT атрибута на IMG елемент не е била отстранена: алтернативен текст ще бъде дадено в съдържанието на IMG елемент, много прилича на този обект, елемент, д. Г., img src="hms_audacious.jpg" HMS span class="italic" безочлив / педя / IMG .
* Една позиция елемент (ч) ще бъде добавена. Нивото на тези позиции се определят от дълбочината на гнездене. Това позволява използването на позиции, за да бъде безкрайно, вместо да се ограничи използването на шест нива в дълбочина.
* Останалите презентационни елементи I, Б и TT, все още се допускат в XHTML 1.x (дори стриктно), ще отсъства от XHTML 2.0. Единствените малко по презентационни елементи останалите ще бъде подкрепа и подсектори за superscript и долният съответно, защото те са значително извън презентационни цели и които се изискват в някои езици. Всички други марки са предназначени да бъдат семантични вместо (напр. strong за силен или удебелен текст), като позволява на потребителите средство за контрол върху представянето на елементи чрез CSS.
* Добавянето на RDF тройни с имущество, както и за атрибутите за улесняване на конверсията от XHTML да RDF / XML.

HTML 5-Лексика и APIs за HTML 5 и XHTML 5
Основна статия: HTML 5
Тази статия или секция съдържа информация за насрочено или очаквани бъдещи софтуер. Информация за него може да се променя, както софтуера съобщение подходи и повече информация стане достъпна.

HTML 5 първоначално нараства независимо от W3C, чрез лека група от броузера производители и други заинтересовани страни призовава си WHATWG или уеб хипертекст Прилагане Технологии работна група. В WHATWG обявяване съществуването на открита бюлетин през юни 2004 г., заедно с уеб сайта носещи strapline "Поддържане и развиващи HTML от 2004 г. насам." [40] Основният мотив на групата е да създаде платформа за динамични уеб приложения, които XHTML 2,0 смята за прекалено документ-централен, и не е подходяща за създаването на форум сайтове или онлайн магазини. [41]

През април 2007 г. фондацията Mozilla и Opera Софтуер присъединиха Apple в молещата че новосъздадените rechartered HTML Работната група на W3C приемат работа, под името на HTML 5. [42] В групата решават да направят това през следващия месец, [43 ] и първият обществен труд Проект на HTML 5 е издаден от W3C през януари 2008. Най-новите W3C Работа Проекта бе публикуван през юни 2008. [26]

HTML 5 и двете редовно текст / HTML serialization и XML serialization, който е известен като XHTML 5. В допълнение към езика за маркиране, спецификацията включва броя на прилагане програмни интерфейси. Документът обектния модел е удължена с APIs за редактиране, плъзгане и пускане, за съхранение на данни и мрежови комуникации.

Езикът може да се счита за по-съвместим с HTML 4 и XHTML 1.x, отколкото XHTML 2.0, в резултат на решението да се запази съществуващата HTML форма елементи и събития модел. Той добавя, много нови елементи, не се срещат в XHTML 1.x, обаче, като част и настрана. (The XHTML 1,2 еквивалент (което (X) HTML 5 замества) на тези структурни елементи ще бъдат div role="region" и div role="complementary" .)

Спецификацията се очаква да добави WAI-ария подкрепа в бъдещ проект. В момента няма индикации за това, дали HTML 5 ще подкрепят RDFa.

Валиден XHTML документи

XHTML Един документ, който съответства на XHTML спецификация се казва, да бъдат валидни. Валидност осигурява съгласуваност в документ код, който от своя страна облекчава преработка, но не е задължително да се осигури последователно оказване от браузъри. А тук може да се проверяват за валидност на W3C Маркиращите Ратифицирам служба. На практика, много уеб програми за развитие предвиждат код валидиране на базата на W3C стандартите.

коренов елемент

Коренът елемент на XHTML документ трябва да бъде HTML, и трябва да съдържат xmlns атрибут за да го асоциирате с XHTML Именно. В Именно URI за XHTML е http://www.w3.org/1999/xhtml. За XHTML 1.1 и по-късно там също трябва да бъде в идеалния вариант атрибут ясно да се идентифицира версия на XHTML се използва. Примерът по-долу маркер допълнително отличава с XML: Език атрибут да идентифицират документа с естествен език:

html xmlns="http://www.w3.org/1999/xhtml" version="XHTML 1.2" xml:lang="en"

За XHTML 1.1 и 2.0 по избор schemaLocation атрибут може да се добавят, за да се сдружават в Именно с XML Schema. Примерът по-долу е за XHTML 2,0:

HTML xmlns = "http://www.w3.org/2002/06/xhtml2/" версия = "XHTML 2,0" XML: Език = "EN"
xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi: schemaLocation = "http://www.w3.org/1999/xhtml

http://www.w3.org/MarkUp/SCHEMA/xhtml2.xsd "

Този пример доказва също и използването на множество namespaces в документа. В xmlns: xsi декларацията се посочва, че всички елементи или атрибути префикс xsi: попадат в XML Schema инстанция Именно вместо XHTML Именно. Този механизъм позволява на префикси елементи и атрибути от различни XML vocabularies да се смесват заедно в един и същ документ, без възможност за именуване на сблъсъци.

DOCTYPEs
Основна статия: DOCTYPE

С цел да се утвърждава един XHTML документ, документ Тип декларация, или DOCTYPE, могат да бъдат използвани. А DOCTYPE декларира пред браузър този документ Тип Определение (DTD) документът спазва. Документ Тип декларация трябва да бъде поставен преди корен елемент.

Системата идентификатор част от DOCTYPE, които в тези примери е, че URL адресът започва с http://, имат нужда само от точка за копие от DTD да използвате, ако validator не може да намери един часа на базата на публично идентификатор (другите цитирани низ). Тя не трябва да бъдат конкретните URL, който е в тези примери, а в действителност, авторите, са насърчавани да използват местни копия на DTD файлове, когато е възможно. Общественият идентификатор, обаче, трябва да бъде символ за характера на една и съща както в примера.

XML декларация

Личност кодирането може да бъде определен в началото на XHTML документа в XML декларацията, когато документът се връчва чрез прилагане / XHTML + XML MIME тип. (Ако един XML документ липсва Кодиране спецификация Един XML parser предполага, че кодирането е UTF-8 или UTF-16, освен ако кодирането вече е бил определен по-висок от протокола.)

За пример:

? XML версия = "1,0" за кодиране = "UTF-8"?

Декларацията може да бъде по избор, защото той пропуска декларира като кодировка по подразбиране кодиране. Въпреки това, ако документът, вместо да се възползва от XML 1,1 или друг характер кодиране, декларация е необходима. Internet Explorer версия 7 преди влизането quirks режим, ако го срещне един XML декларация в документ служи като текст / HTML.

Общи грешки

Някои от най-често срещаните грешки при използването на XHTML, са:

* Не затваряне празна елементи (елементи, без да вземат под внимание на потребителите в HTML4)
O Неправилно: br
O Правилно: br /
Имайте предвид, че всяка от тях са приемливи в XHTML: br / BR , br/ и br / . По-стари HTML само браузъри интерпретират като HTML ще приеме br и br / .
* Не затваряне без празни елементи
O Неправилно: p Това е параграф. p Това е друг параграф.
O Правилно: p Това е параграф. / P p Това е друг параграф. / P
* Неправилно гнездене елементи (Имайте предвид, че това също ще бъде недействителен в HTML)
O Неправилно: em strong Това е някакъв текст. / в / силен
O Правилно: em strong Това е някакъв текст. / силен / ги
* Не пускането кавички около атрибут стойности
O Неправилно: td rowspan=3
O Правилно: td rowspan="3"
O Правилно: td rowspan='3'
* С помощта на ampersand характер извън лица (Имайте предвид, че това също ще бъде недействителен в HTML)
O Неправилно: title Автомобили & Камиони / заглавие
O Правилно: title Автомобили & Камиони / заглавие
O Неправилно: a href="index.php?page=news&id=5" Новини / A
O Правилно: a href="index.php?page=news&id=5" Новини / A
* Ако не успее да разпознае, че XHTML елементи и атрибути са случаите чувствителни
O Неправилно: body p ID="ONE" на най-добрите Page Никога / P / ТЯЛО
O Правилно: body p id="ONE" на най-добрите Page Никога / P / тялото

* Ако авторът реши да включи скрипт или стила данни вградени в рамките на един документ, XHTML, различни подходи се препоръчват, както е показано в примерите по-долу, в зависимост дали авторът възнамерява да служи на страница като молбата / XHTML + XML и целеви само напълно conformant браузъри, или служи на страница като текст / HTML и се опитват да получат използваемост в Internet Explorer 6 и други не-conformant браузъри.

обратната съвместимост

XHTML 1.x документи са предимно назад съвместим с HTML 4 потребител агенти при подходящи насоки са изпълнени. XHTML 1.1 е съвместим същество, въпреки че елементите за рубинен анотация не са част от HTML 4 спецификация и по този начин обикновено игнорирани от HTML 4 браузъри. Късно XHTML 1.x модули, като например тези за ролята атрибут, RDFa и WAI-ария дегенерирам елегантно по подобен начин.

HTML 5 и XHTML 2 са значително по-малко съвместими, въпреки че това може да се намали до известна степен чрез използването на скриптове. (Това може да бъде просто една втулки, като използването на "document.createElement ()", за да регистрирате нов HTML елемент в рамките на Internet Explorer, или пълно JavaScript рамки, като например FormFaces изпълнението на XForms.)