Может кто-нибудь объяснить, что делает атрибут xml: lang в HTML5? - PullRequest
2 голосов
/ 17 ноября 2010

Мне было интересно, что делает атрибут xml: lang и каковы его значения в HTML5. и имеет ли атрибут xml: lang какие-либо ограничения?

Ответы [ 4 ]

4 голосов
/ 17 ноября 2010

Как поясняется в проекте стандартов в 3.2.3.3 Атрибуты lang и xml:lang , это XML-вариант стандартного атрибута lang, определяющий натуральныйязык документа.Может принимать любое значение, определенное BCP47 .Однако обратите внимание, что вы можете использовать атрибут xml:lang только в том случае, если у вас есть XML-документ или также определен атрибут lang, и в последнем случае они должны иметь одинаковое значение.Это связано с тем, что xml:lang разрешено только для облегчения перехода старых документов XHTML:

Авторы не должны использовать атрибут lang в пространстве имен XML для элементов HTML в документах HTML.Чтобы упростить миграцию в и из XHTML, авторы могут указать атрибут без пространства имен без префикса и с буквальным локальным именем «xml: lang» для элементов HTML в документах HTML, но такие атрибуты должны указываться только в том случае, если атрибут lang отсутствует в пространстве иментакже указывается, и оба атрибута должны иметь одинаковое значение при сравнении ASCII без учета регистра.

2 голосов
/ 17 ноября 2010

Чтобы понять атрибут xml:lang, вам необходимо ознакомиться с двумя различными синтаксисами HTML5, синтаксис HTML и синтаксис XHTML :

Существуют различныеконкретные синтаксисы, которые можно использовать для передачи ресурсов, использующих этот абстрактный язык, два из которых определены в данной спецификации.

Первый такой конкретный синтаксис - это синтаксис HTML.Этот формат рекомендуется для большинства авторов.Он совместим с большинством устаревших веб-браузеров.Если документ передается с типом HTML MIME , например text/html, веб-браузеры будут обрабатывать его как документ HTML.Эта спецификация определяет последний синтаксис HTML, известный просто как «HTML».

Второй конкретный синтаксис - это синтаксис XHTML, который является применением XML.Когда документ передается с XML MIME-типом , таким как application/xhtml+xml, веб-браузеры обрабатывают его как XML-документ для анализа XML-процессором.Авторам напоминают, что обработка для XML и HTML отличается;в частности, даже незначительные синтаксические ошибки не позволят полностью отобразить документ, помеченный как XML, тогда как в синтаксисе HTML они будут игнорироваться.Эта спецификация определяет последний синтаксис XHTML, известный просто как «XHTML».

DOM, синтаксис HTML и XML не могут все представлять один и тот же контент.Например, пространства имен не могут быть представлены с использованием синтаксиса HTML, но они поддерживаются в DOM и в XML.Точно так же документы, использующие функцию noscript, могут быть представлены с использованием синтаксиса HTML, но не могут быть представлены в DOM или в XML.Комментарии, содержащие строку "-->", могут быть представлены только в DOM, но не в синтаксисах HTML и XML.

Синтаксис HTML - это тот, который вы, вероятно, используете;он намного более терпим к ошибкам, и синтаксис XHTML изначально не поддерживается IE.

В синтаксисе HTML атрибут xml:lang не имеет смысла.Это ничего не делает.Если вы хотите установить язык, используйте атрибут lang, который также работает в синтаксисе XHTML.При использовании атрибута lang будет задан язык по умолчанию для этого элемента и его дочерних элементов, который может использоваться для таких вещей, как выбор используемого шрифта (вы можете использовать селектор :lang() CSS, чтобы управлять этим самостоятельно).В синтаксис HTML разрешено включать атрибут xml:lang, только если атрибут lang также предоставлен и имеет то же значение;это гарантирует отсутствие путаницы из-за их различий, а атрибут lang - это тот, на который браузер будет обращать внимание.

В синтаксисе XHTML атрибут xml:lang имеет семантику определяется спецификацией XML .При определении языка фрагмента текста в XHTML атрибут xml:lang имеет прецедент, но если он отсутствует, атрибут lang используется для определения языка (для целей выбора шрифта и * 1044).* CSS-селектор).

Лучше всего просто использовать атрибут lang.Это будет работать в синтаксисе HTML, который вы, вероятно, будете использовать, и в синтаксисе XHTML, если вы его используете.Если вы должны обработать свой код с помощью инструментов XML, которые вообще ничего не понимают в HTML и требуют определения языка, то вы можете использовать атрибут lang и атрибут xml:lang с одинаковым значением, чтобы обеспечитьчто все инструменты будут видеть один и тот же язык.

Возможные значения для lang и xml:lang: языковые теги BCP47 , такие как en-US для американского английского или sr-Latn-RS для сербского языка, написанного латинскими буквами, используемого в Сербии.Более подробную информацию смотрите в спецификации BCP47.

0 голосов
/ 17 ноября 2010
  1. xml:lang является атрибутом XML, поэтому его следует использовать только в документах XHTML, а не в документах HTML.

  2. xml:lang указывает язык, на котором читается контент.

Подробнее: http://www.w3.org/TR/REC-xml/#sec-lang-tag

0 голосов
/ 17 ноября 2010

HTML 5 использует определение в спецификации XML. Соответствующий раздел: 2.12 . Может принимать значение от BCP 47 или "".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...