Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XMLSpy 2009, xsd:include и xsd:import / 1 сообщений из 1, страница 1 из 1
24.04.2009, 16:00
    #35952955
petrav
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XMLSpy 2009, xsd:include и xsd:import
При переходе на XMLSpy 2009 возникла проблема. Поясню на примере:

Фаил A.xsd:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:an="www.com/a"
	targetNamespace="www.com/a"
	elementFormDefault="qualified"
	attributeFormDefault="unqualified">

	<xsd:complexType name="AType"/>
</xsd:schema>
Фаил B.xsd:
Код: plaintext
1.
2.
3.
4.
5.
6.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	elementFormDefault="qualified"
	attributeFormDefault="unqualified">

	<xs:import namespace="www.com/a" schemaLocation="A.xsd"/>
</xs:schema>
Фаил C.xsd:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:an="www.com/a"
	xmlns:cn="www.com/c"
	targetNamespace="www.com/c"
	elementFormDefault="qualified"
	attributeFormDefault="unqualified">

	<xsd:include schemaLocation="B.xsd"/>

	<xsd:complexType name="CType">
		<xsd:sequence>
			<xsd:element name="A" type="an:AType"/>
		</xsd:sequence>
	</xsd:complexType>
</xsd:schema>
Надеюсь понятно. B.xsd импортирует в себя A.xsd, C.xsd инклудит в себя B.xsd. Попытка в C.xsd использовать тип A.xsd приводит к ошибке - что-то похожее "тип не найден". Вот в этом проблема. Стоит отметить, что у A.xsd и C.xsd разные targetNamespace, если бы они были одинаковые - все нормально бы валидилось.

Если мы в B.xsd добавим targetNamespace, например, www.com/b и заменим xsd:include на xsd:import - то будет тоже самое. Если в A.xsd и C.xsd одинаковые targetNamespace, то в C.xsd можно использовать тип из A.xsd. Если в A.xsd и C.xsd НЕ одинаковые targetNamespace, то в C.xsd нельзя использовать тип из A.xsd.

Это интересно почему так?

Я бы спросил на форуме разработчика XMLSpy, да там зарегистрироваться невозможно :(
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XMLSpy 2009, xsd:include и xsd:import / 1 сообщений из 1, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]