powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помощь с xsd
7 сообщений из 7, страница 1 из 1
Помощь с xsd
    #38939110
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть исходный xml, по нему я создал xsd схему для того чтобы проверять корректность входящих файлов.
Есть документация производителя описывающая структуру входящих xml файлы, в ней указано что есть элемент представляющий из себя комплексный тип

Код: xml
1.
2.
3.
4.
		<SLUCH>
			<IDCASE>1</IDCASE>
			<EXTR/>
		</SLUCH>



При этом EXTR типа int и может как присутствовать так и отсутствовать в входящем файле. В схеме я написал
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
			<xs:element name="SLUCH">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="IDCASE" type="Integer11"/>
						<xs:element name="EXTR" type="Integer2" minOccurs="0"/>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>



Проблема в том что при проверке на валидность парсер проверяет значение EXTR и если оно с каким то числом, либо EXTR полностью отсутствует то проверка проходится легко, но если в файле значение задано в виде <EXTR/> то проверка не проходится. Как мне обойти это ограничение?
...
Рейтинг: 0 / 0
Помощь с xsd
    #38939171
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эндиКак мне обойти это ограничение?это не ограничение.
значение есть - все в порядке, элемента нет - все в порядке, а если элемент есть, а значения нет? что об этом говорится в документации производителя? это третье состояние элемента, если оно не описано в документации, значит оно по умолчанию запрещено, и схема работает правильно.
...
Рейтинг: 0 / 0
Помощь с xsd
    #38939192
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В документации описано что элемент условно-обязательный (при отсутствии не передается), а их программист говорит примерно следующее

автор2. Я считаю, что если значение элемента EXTR = NULL - возможны следующие варианты оформления:
1. элемент отсутствует
2. <EXTR />
3. <EXTR></EXTR>
ВСЕ ВАРИАНТЫ ВЕРНЫ!!
правильная интерпретация, в данном случае, зависит от того, каким обработчиком Вы пользуетесь.
(это мое мнение)

При этом схемы у них нет, только описание в ворде в виде таблички, имя элемента, тип, размерность, обязательность. Будь это строка я бы просто сделал минимальную длину 0 и нет проблем, была бы просто пустая строка, а тут int и такой финт ушами не проходит. Т.е парсер в принципе этот XML есть без особых проблем, но валидацию этот XML не проходит.
...
Рейтинг: 0 / 0
Помощь с xsd
    #38939214
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
        <xs:element name="EXTR" minOccurs="0">
          <xs:simpleType>
            <xs:union memberTypes="xs:positiveInteger">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:length value="0"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:union>
          </xs:simpleType>
        </xs:element>
...
Рейтинг: 0 / 0
Помощь с xsd
    #38939224
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
их программист лошара педальный. null это отсутствие элемента, а <EXTR /> или <EXTR></EXTR> это пустая строка. у него есть реальный шанс нарваться на type mismatch при конвертации пустой строки в число.
...
Рейтинг: 0 / 0
Помощь с xsd
    #38939259
petalvik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariyих программист лошара педальный
Согласен.
...
Рейтинг: 0 / 0
Помощь с xsd
    #38939285
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То-то я так и не смог XMLSpy заставить эту пустую строку обойти на типе int :)
Весьма приятственная программа
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помощь с xsd
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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