Ответ 1
В качестве примера я расскажу о следующем примере XML:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Пространство имен
Пространство имен - это логический контейнер, в котором определен элемент. Пространство имен XML Schema (с uri: http://www.w3.org/2001/XMLSchema). В вышеприведенном документе ссылка на него указана в строке 2. Обработка XML-документа может возникать с использованием синтаксического анализатора XML, который либо известен как имя, либо нет, но документы, использующие пространства имен, как правило, должны анализироваться с помощью парсеров, ориентированных на пространство имен.
Пространства имен определены так, что a) они могут быть каталогизированы синтаксическим анализатором и b), так что элементы с тем же именем в разных пространствах имен могут существовать в одном документе без двумерного определения.
Префикс
Префикс - это короткий ключ, используемый для обращения к пространству имен. В приведенном выше примере xs
используется для обозначения пространства имен XML Schema.
Локальное имя (часть)
Элемент документа имеет имя, определенное в пространстве имен. В приведенном выше примере вы можете найти schema
, element
, complexType
, sequence
и element
как локальные имена. Локальные имена могут быть неоднозначными, если в вашем документе указано несколько пространств имен, и одно или несколько из этих пространств имен определяют элементы с тем же именем.
Квалифицированное имя (qName)
Ключевое имя состоит из префикса для пространства имен (необязательно, некоторые реализации могут использовать пространство имен uri), за которым следует :
, а затем локальное имя элемента. В приведенном выше примере вы можете найти xs:schema
, xs:element
, xs:complexType
, xs:sequence
и xs:element
в качестве квалифицированных имен. Эти имена недвусмысленны и могут обрабатываться парсером и проверяться.