Как проверить xml: lang ATTLIST внутри XML с помощью DTD? - PullRequest
0 голосов
/ 07 июня 2019

Во многих статьях в Интернете (например, в этой ) предлагается использовать xml:lang или некоторый пользовательский атрибут для кодирования мета-информации о языке внутри тегов XML. Они упоминают, что эти коды должны соответствовать стандарту BCP47 .

Давайте посмотрим, что произойдет, если я закодирую атрибут языка, как предлагают статьи:

  1. Внутри DTD: <!ATTLIST text xml:lang NMTOKEN #IMPLIED>
  2. Внутри XML: <text xml:lang="YODU991Yklew-e-ijsw02ijwk">...</text>

Каков ожидаемый результат?

Валидатор DTD проверит, является ли код YODU991Yklew-e-ijsw02ijwk реальным кодом языка BCP47, если существует страна и сценарий, и пометит его красным, если эти коды неверны. Точно так же, как http://schneegans.de/ помогает проверить эти коды ( НЕПРАВИЛЬНЫЙ код против ПРАВИЛЬНЫЙ код ).

Что происходит вместо этого?

Валидатор воспринимает этот атрибут только как некоторый текст и не проверяет, является ли он реальным языковым кодом или каким-то бредом.

...