Проблема с пространством имен XML по умолчанию - PullRequest
4 голосов
/ 16 апреля 2009

Предположим, у меня есть следующий файл схемы XML и следующий файл документа XML. У меня два вопроса,

  1. Поскольку в файле схемы XML не задано целевое пространство имен, в каком пространстве имен будет содержаться информационный элемент?

  2. В файле документа XML, при использовании информации, какому пространству имен оно принадлежит? Обратите внимание, что в этом случае я не ссылаюсь на файл схемы XML из файла документа XML.

Файл схемы XML:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="Information" type="xs:string"/>
</xs:schema>

Файл документа XML:

<?xml version="1.0" encoding="utf-8"?>
<Information>Hello XML</Information>

спасибо заранее, George

Ответы [ 2 ]

9 голосов
/ 16 апреля 2009

Информационный элемент не будет в пространстве имен. Чтобы поместить его в пространство имен по умолчанию, вам потребуется указать это пространство имен в теге.

<Information xmlns="http://www.mydefaultnamespace.com">

Из статьи Oracle :

Нет пространства имен

Пространство имен не существует, если в области нет пространства имен по умолчанию. {Пространство имен по умолчанию} - это пространство, объявленное явно с использованием xmlns. Когда {пространство имен по умолчанию} вообще не было> объявлено с использованием xmlns, неправильно говорить, что элементы находятся в пространстве имен {default>. В таких случаях мы говорим, что элементы находятся в {пространстве имен}. {нет пространства имен}> также применяется, когда уже объявленное {пространство имен по умолчанию} не объявлено.

Вот довольно обширный ресурс пространства имен:

Часто задаваемые вопросы о пространствах имен XML

1 голос
/ 16 апреля 2009

Почему вы определяете схему без цели? Это не имеет смысла.

...