Чтобы понять атрибут 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.