- Как я понимаю, пространства имен в xml (и) XSD используются для смягчения
возможная неоднозначность элементов и атрибутов, на которые ссылаются.- Атрибут targetNamespace схемы XML предназначен для
пространство имен, что элементы, определенные в этом файле (или все
внутри элемента, который имеет targetNamespace) соответствуют. Этот
применяется только к элементам, «объявленным» в этом контексте (которые имеют
их имя объявлено в атрибуте «name»). - Таким образом, если я объявляю targetNamespace в моей схеме, каждый экземпляр, который я проверяю против него, должен использовать это пространство имен перед любым элементом или атрибутом, объявленным в схеме, или объявить его в качестве пространства имен по умолчанию, чтобы избавить меня от необходимости предшествовать каждому типу Из этой схемы с ним.
- Атрибут targetNamespace схемы XML предназначен для
Если что-то не так, обязательно поправьте меня.
Что сводит меня с ума, почему это не так:
<?xml version="1.0" encoding="UTF-8"?>
<responsabilities >
<responsability>uno</responsability>
<responsability>dos</responsability>
<responsability>tres</responsability>
</responsabilities>
…проверяет это:
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.library.org" >
<element name="responsabilities" type="bpd:responsabilitiesType"/>
<complexType name="responsabilitiesType">
<sequence>
<element maxOccurs="unbounded" name="responsability" type="string" />
</sequence>
</complexType>
</schema>
Он показывает эту ошибку:
Элемент ‘responsabilities’ в пространстве имен ‘ http://www.library.org ‘
имеет недопустимый дочерний элемент ‘responsability’ в пространстве имен
‘http://www.library.org ‘. Список возможных ожидаемых элементов:
«ответственность». Строка: 1 Столбец: 90
Я проверил с помощью SimpleType, используя ту же схему пространства имен, и не было никаких проблем вообще.
Спасибо.
Неважно:
В схеме отсутствовал атрибут: