Ответ 1
Это объявление пространства имен XML.
пространства имен XML действительно определяются URI, поэтому квалифицированное имя состоит из пространства имен (произвольного URI) и локального имени (короткая простая строка, следующая за правилами NCName). Тем не менее, это не может быть выписано полностью каждый раз, поэтому пространства имен сопоставляются с префиксами объявлением пространства имен, которое всегда принимает форму атрибута, начинающегося с xmlns
и определяющего префикс для содержащего его элемента и всех его дочерние элементы.
В качестве примера рассмотрим ваш пример.
У нас есть атрибут xmlns:mstns="http://tempuri.org/config.xsd"
, и это просто говорит, что префикс mstns
сопоставляется с URI пространства имен http://tempuri.org/config.xsd
; это означает, что все элементы и атрибуты, имена которых начинаются с mstns:
(обратите внимание на двоеточие), находятся в этом пространстве имен. В вашем примере мы также видим xmlns=""
, который отображает все элементы (сложная точка: не атрибуты!) Без префикса в пустой URI.
Очевидно, что вы не можете использовать xmlns
как префикс (он магический), и на самом деле все префиксы, начинающиеся с xml
, зарезервированы. Существует обычная привычка использовать префикс tns
в схемах, чтобы указать Target NameSpace.