powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Валидация sequence по-элементно - возможно?
6 сообщений из 6, страница 1 из 1
Валидация sequence по-элементно - возможно?
    #36827840
Сергей АБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Прошу проконсультировать в поиске решения:
- есть xsd-схема, жестко описывающая обязательность и размерность значений тегов
- есть большой набор данных, выгружаемых в xml, строка набора - комплексный тег в sequence
- данные в основном соответствуют требованиям xsd, но небольшой процент - не соответствует (почему - отдельная история, выравнивание данных и жесткий контроль ведения - один из путей решения проблемы)
- и из-за нескольких кривых строк, могут не приняться десятки тысяч вполне валидных, т.к. файл не проходит валидацию

Вопрос - можно ли каким-нибудь образом разбить валидацию (программную, в java) на 2 этапа:
- сперва просто проверка well-formed, состав и наличие тегов;
- затем уже полноценная валидация по всем условиям на значения тегов, но каждой строки по-отдельности?
...
Рейтинг: 0 / 0
Валидация sequence по-элементно - возможно?
    #36829354
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АБВопрос - можно ли каким-нибудь образом разбить валидацию (программную, в java) на 2 этапа:
- сперва просто проверка well-formed, состав и наличие тегов;Да. Просто не подключаете XSD схему
Сергей АБ- затем уже полноценная валидация по всем условиям на значения тегов, но каждой строки по-отдельности?Нет. Согласно рекомендациям w3c парсинг XML-документа оканчивается при нахождении первой ошибки. Тут есть свои ньюансы - например MSXML6 может выдать не первую ошибку, а список всех ошибок, но все равно документ считается невалидным.

Может Вам стоит посмотреть в сторону элементов <xsd:any> и <xsd:anyAttributes>?
...
Рейтинг: 0 / 0
Валидация sequence по-элементно - возможно?
    #36829396
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1й этап натравить очень умную xsl, которая сделает чьд валидным, если сможет разберет невалидные куски, не сможет - выкинет
2й этап проверить результат работы xsl
...
Рейтинг: 0 / 0
Валидация sequence по-элементно - возможно?
    #36829399
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чьд === код
...
Рейтинг: 0 / 0
Валидация sequence по-элементно - возможно?
    #36830057
Сергей АБ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я имею ввиду, можно ли как-то, в xsd объявить тип или группу, соответствующую строке данных, потом, например в SAX, потоком разобрав очередную строку, проверить на соответствие объявленному в xsd типу? Что-то вроде этого..



Но нашел в сети идеи, которые навели на достаточно элегантный вариатн (что-то похожее озвучил mage.lan):
- сперва проверка well-formed, проверка структуры по xsd
- потом xslt, заточенное на проверку значений, результат трансформации - протокол обнаруженных ошибок
- протокол валидируется по своей xsd, специальной, валидным которой может быть только пустой протокол
- если протокол не валидный - читаем идентификаторы кривых строк
- обрабатываем исходный файл исключая кривые строки
- стороне формирования файла с данными передается протокол обнаруженных ошибок

Замороченно, конечно, но в моем случае вполне может сгодиться.

Прокомментируйте..
...
Рейтинг: 0 / 0
Валидация sequence по-элементно - возможно?
    #36830484
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АБ- сперва проверка well-formed, проверка структуры по xsdWell-formed по XSD не проверяется. По XSD проверяется валидность. Т.е. на этом этапе никакой XSD не нужно
Сергей АБ- потом xslt, заточенное на проверку значений, результат трансформации - протокол обнаруженных ошибокМожно объединить с первым пунктом. Если документ был загружен в объекты для трансформации, то он был well-formed
Сергей АБ- протокол валидируется по своей xsd, специальной, валидным которой может быть только пустой протокол
- если протокол не валидный - читаем идентификаторы кривых строкПринципиальная ошибка - если протокол не удовлетворяет схеме, то Вы его не сможете прочитать. На этом этапе нужно создать максимально простой формат и валидировать его самостоятельно без XSD схемы
Сергей АБ- обрабатываем исходный файл исключая кривые строки
- стороне формирования файла с данными передается протокол обнаруженных ошибокНу а к этим пунктам замечаний, как будто-бы нет
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Валидация sequence по-элементно - возможно?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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