Подтвердить что ты не робот

В чем разница между targetNamespace и xmlns: target?

Что такое targetNamespace функция?

<schema xmlns="http://www.w3.org/2001/SchemaXML"
        targetNamespace="http://www.example.com/name"
        xmlns:target="http://www.example.com/name">

Я понимаю, что xmlns="http://www.w3.org/2001/SchemaXML определяет пространство имен XML Schema.

Я также понимаю, что xmlns:target="http://www.example.com/name" определяет пространство имен для моего собственного словаря, если я создаю свою собственную схему, используя префикс "target"; это действует как прокси-сервер или заполнитель для URI http://www.example.com/name.

Это кажется достаточным для определения необходимых ограничений и словарей участников пространства имен. Итак, для чего мне нужен атрибут targetNamespace, который дублирует пространство имен http://www.example.com/name?

4b9b3361

Ответ 1

Здесь хорошо сказано: targetNamespace и xmlns без префикса, в чем разница?

Повторить:

  • targetNamespace="" - Поскольку текущий XML-документ представляет собой схему, этот атрибут определяет пространство имен, для которых эта схема предназначена для таргетинга или проверки.

  • xmlns="" - Определяет пространство имен по умолчанию в текущем документе для всех не префиксных элементов (т.е. yada: в <yada:elementName>)

  • xmlns:target="" - здесь вы просто определяете свое собственное пространство имен с префиксом target:, это не связано с предыдущими двумя специальными случаями.

Ответ 2

Объект targetNamespace объявляет пространство имен для других документов xml и xsd для ссылки на эту схему. Целевой префикс в этом случае относится к одному и тому же пространству имен, и вы должны использовать его в этом определении схемы для ссылки на другие элементы, атрибуты, типы и т.д., Также определенные в этом же определении схемы.

Ответ 3

Префикс "target" в xmlns:target="http://www.example.com/name" ничего особенного. Как процессор схемы знает, что вы хотите, чтобы это было пространство имен для вашей схемы? targetNamespace делает именно это - он объявляет пространство имен, принадлежащее компонентам вашей схемы.

N.B. Не все в документе схемы попадает в targetNamespace. Отметьте атрибуты "elementFormDefault" и "attributeFormDefault" в элементе "schema", а также атрибут "form" в элементах "element" и "attribute".