Чтобы понять, какие пространства имен пытаются решить, рассмотрите расширения файлов. Трехбуквенные расширения файлов сделали очень плохую работу по описанию содержимого файлов. Они неоднозначны и не несут информацию о версии. Пространства имен XML используют большее пространство строк, URI для решения одной и той же проблемы, и используют короткие префиксы, чтобы вы могли кратко смешивать несколько типов XML в одном документе.
Какова цель пространства имен, если существует только одно пространство имен?
Существует множество пространств имен, используемых для идентификации различных типов XML, и различные версии таких типов.
SVG и MathML - это два вида XML, каждый со своими собственными пространствами имен, которые могут быть встроены в HTML5, и они часто используют XLink, другое пространство имен XML. Многие другие XML-схемы с соответствующими пространствами имен используются для передачи сообщений между клиентами и серверами и для хранения данных.
XHTML - это попытка выразить HTML как допустимый XML. У него есть собственное пространство имен.
Так что мы используем createElementNS (ns_string, 'svg') и затем setAttributeNS (null ,,). Зачем? Почему бы не установить атрибутANS ('my_ns' ,,) ???
Вероятно, вам следует попытаться последовательно использовать setAttributeNS
с URI пространства имен при использовании createElementNS
с URI пространства имен.
XML был определен в несколько этапов. Первая версия спецификации ничего не говорила о пространствах имен, но оставила достаточно синтаксиса, чтобы XML с пространствами имен мог быть указан поверх XML без пространств имен с использованием префиксов и специальных атрибутов xmlns
. XML-спецификация гласит:
"Пространства имен в XML-рекомендации [Имена XML] присваивают значения именам, содержащим символы двоеточия. Поэтому авторам не следует использовать двоеточие в именах XML, кроме как для целей пространства имен, но процессоры XML должны принимать двоеточие в качестве символа имени. «
Пространства имен XML позволяют приложениям обработки XML знать, с чем они имеют дело, и позволяют смешивать несколько видов XML в одном документе.
Почему ns_string должно быть "http://www.w3.org/2000/svg"
Сюда входит год, когда версия SVG была стандартизирована, 2000, поэтому он содержит полезную информацию.
При использовании с xmlns:svg
он также сообщает браузеру, что префикс svg:
означает SVG, а не какой-то другой диалект XML.