powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Запрет родительского элемента у xsd
8 сообщений из 8, страница 1 из 1
Запрет родительского элемента у xsd
    #39941350
Альтаир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Есть xsd и xml. Проверка отрабатывает хорошо. Но если в xml добавить еще родительский элемент (<s:Body>) у корневого элемента, то проверка также пройдет хорошо. Как в xsd указать, что у элемента не может быть родителя?
Вот пример xsd:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="Root">
	<xs:complexType>
		<xs:sequence>
			<xs:element name="node1"/>
			<xs:element name="node2"/>
		</xs:sequence>
	</xs:complexType>
	</xs:element>
</xs:schema>



Оба файла проходят валидацию по xsd, нужно, чтобы второй файл не проходил валидацию.
<?xml version="1.0" encoding="UTF-8"?>
Код: xml
1.
2.
3.
4.
<Root>
  <node1/>
  <node2/>
 </Root>



<?xml version="1.0" encoding="UTF-8"?>
Код: xml
1.
2.
3.
4.
5.
6.
<s:Body>
<Root>
  <node1/>
  <node2/>
 </Root>
</s:Body>
...
Рейтинг: 0 / 0
Запрет родительского элемента у xsd
    #39941407
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валидация не должна проходить. Вы при валидации вручную указываете схему? Такое ощущение, что во втором случае у вас происходит валидация без схемы
...
Рейтинг: 0 / 0
Запрет родительского элемента у xsd
    #39941415
Альтаир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Схему подключаю вручную разными валидаторами пробовала. Ошибок нет, если добавить родительские элементы.
...
Рейтинг: 0 / 0
Запрет родительского элемента у xsd
    #39941425
Альтаир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я просто сильно упростила файлы. На самом деле родительский элемент у меня такой:
Код: xml
1.
2.
3.
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header></s:Header>
<s:Body>


Вот его схема пропускает, а просто <s:Body> не пропускает.
...
Рейтинг: 0 / 0
Запрет родительского элемента у xsd
    #39941598
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Альтаир,

Не подключается ли схема для SOAP валидации?
...
Рейтинг: 0 / 0
Запрет родительского элемента у xsd
    #39941607
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже, что все работает так:

1. Схема описывает набор корневых элементов (от 0)
2. Валидатору отдается набор схем
3. Валидатор по корневому элементу XML ищет подходящую схему
4. А если не находит, то просто проверяет, что XML well-formed

Т.е. вам нужно после валидацией схемой нужно еще проверять, что корневой элемент соответствует вашему
...
Рейтинг: 0 / 0
Запрет родительского элемента у xsd
    #39941648
Альтаир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проверять элемент отдельно после проверки по схеме - такое себе. Похоже на костыль. А нет ли возможности проверить это внутри схемы?
...
Рейтинг: 0 / 0
Запрет родительского элемента у xsd
    #39941717
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Альтаир
А нет ли возможности проверить это внутри схемы?
На сколько я понимаю проблема не в схеме, а в валидаторе. Который не может выбрать нужную схему для валидации. Можете посмотреть еще в сторону xsi:schemaLocation, но даже если оно будет работать, то это модификация исходного XML
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Запрет родительского элемента у xsd
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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