Войти
ПрограммированиеФорумОбщее

Валидация нескольких XML по одному XSD (3 стр)

Страницы: 1 2 3 4 Следующая »
#30
13:51, 26 июня 2010

DevilDevil
> для генерации xml написал свой алгоритм
Лучше используй готовые библиотеки, например tinyxml.


#31
14:07, 26 июня 2010

X512
не учи меня жить и я не скажу куда тебе идти

#32
14:09, 26 июня 2010

DevilDevil
> У меня такое впечатление, что ты не работал с xml. И с xsd тоже
Работал. И в отличии от тебя понимаю, что XML и XSD в первую очередь предназначены для машины, для программной проверки, а не чтобы их бедная девочка-бухгалтер ручками правила.
> при отправке в налоговую всплывает дофига ограничений. Формат кодов, каких-то
> наименований, точек вместо запятых, реестровых записей
Я вижу это с другой стороны, можно сказать со стороны налоговой, угу. Мы предоставляем готовые xsd для документов и формулы логического контроля. XSD собственно бухам нафиг не нужны - это чисто техническая часть.

> "по определению правилен" - это убило
Меня убило другое - что ты генерируешь неправильный XML а потом его проверяешь.

> Нихрена себе откровение
Ну да. Ты генерацию XML как делаешь? Вначале делается готовая структура, а потом туда запихиваются данные. Либо я вообще не понял, что ты хочешь.

DevilDevil
> для генерации xml написал свой алгоритм
А, ну тогда конечно. Может из-за этого у тебя сгенерированный по схеме XML-файл не всегда проходит проверку по этой самой схеме?

DevilDevil
> валидации нескольких xml

Тебе примерно в таком виде надо? Или что?

SAXParser parser = new SAXParser();
parser.setValidationMode(SAXParser.SCHEMA_VALIDATION);
parser.setContentHandler(new ContentHandler());
parser.setErrorHandler(new ErrorHandler());
parser.setXMLSchema(xmlschema);

parser.parse(xml1);
parser.parse(xml2);
parser.parse(xml3);
parser.parse(xml4);

Или выделить мышкой все XML файлы в проводнике и нажать "Валидация по схеме" в контекстном меню? Altova XMLSpy глянь тогда.

#33
14:16, 26 июня 2010

DevilDevil
> не учи меня жить и я не скажу куда тебе идти
Тогда сиди и исправляй свой вилосипед от багов.

#34
14:23, 26 июня 2010

у меня нет багов
у меня есть задача проверять несколько xml по схеме

#35
14:24, 26 июня 2010

Iskander,
это рабочий код ?

не могу юзать XMLSpy, потому что он платный. Бухгалтера не могут

#36
14:43, 26 июня 2010

DevilDevil
> это рабочий код ?
Ну как сказать, это пример. Нужно определить классы обработчиков, ContentHandler и ErrorHandler, которые будут обрабатывать содержимое и ошибки.
Вообще это оракловые джава классы, но он унаследован от обычного org.xml.sax.Parser - они открыты.


Так про мышкой в проводнике я угадал? Это имелось в виду?

#37
15:22, 26 июня 2010

Автор темы, ты реально залип на своей валидации.
Ты просто пришёл услышать то что ты хочешь, и шаг влево-шаг вправо от темы тебя раздражает и называется тобой холиваром и другими обидными словами.

Тебе не нужна валидация XSD, окей? Тебе надо проверить корректность данных, это делается набором простых вычислений данных, собранных через XPath. Список правил тебе зададут сами бухгалтера. А соответствие XSD должен соблюдать твой генератор. Вот и всё, что тебе надо.

#38
23:44, 26 июня 2010

kvakvs
> Тебе надо проверить корректность данных, это делается набором простых
> вычислений данных, собранных через XPath
поподробнее

kvakvs
> Список правил тебе зададут сами бухгалтера
есть список правил и указан в XSD. есть стандартный механизм проверки на соответствие. бухгалтера сами ошибаются в данных. поэтому нет

kvakvs
> Вот и всё, что тебе надо.
мне нужна валидация нескольких xml по одному xsd
трёп мне не нужен

Iskander
> Так про мышкой в проводнике я угадал? Это имелось в виду?
я посмотрю в понедельник

#39
1:13, 27 июня 2010

Как работает XPath написано в примерах и мудрых мануалах.
Это не XSD.
Загуглить можно по фразе "xpath example tutorial"
Запросил данные, сверился с правилами, вывел ошибку или не вывел и перешёл к следующему правилу.

#40
15:25, 27 июня 2010

DevilDevil
Разных schema language для XML много, наиболее распространенные:
- W3C XML Schema -- нечто переусложенное, data-oriented
- RELAX NG -- на основе регулярных грамматик для деревьев, хорошо подходит для проверки полуструктурированных данных (например, документов HTML)
- Schematron -- тут уже упомянули

Языков программирования с поддержкой schema-preserving transformation (как я понял, это волнует) по-моему, нету (экспериментальные, вроде CDuce, не в счет). Можно найти какой-нить schema-aware XSLT-процессор, но сам по себе XSLT не очень удобно править.

Еще можно взять какую-нибудь утилиту, которая генерирует соответствующие схеме типы в языке программирования. Тоже вариант.

> Ищу способ валидации нескольких XML по одной схеме

Не понимаю, что Вы имеете в виду:
- массовую проверку однотипных XML-документов (по одной схеме)
- что-то другое?

#41
17:48, 27 июня 2010

chiaroscuro
> Не понимаю, что Вы имеете в виду:
> - массовую проверку однотипных XML-документов (по одной схеме)
> - что-то другое?

привет
есть схема и по ней генерируется много отчётов
все эти отчёты, которые были сгенерированы, надо проверять на соответствие схемы
я знаю как одну xml бесплатным софтом проверять на соответствие схеме, но отчётов может быть например 40 и их желательно проверять пакетом

#42
18:56, 27 июня 2010

DevilDevil
> есть схема и по ней генерируется много отчётов
> все эти отчёты, которые были сгенерированы, надо проверять на соответствие
> схемы
> я знаю как одну xml бесплатным софтом проверять на соответствие схеме, но
> отчётов может быть например 40 и их желательно проверять пакетом

"Отчеты" в наших краях -- программы, которые вытаскивают какие-то данные из базы данных (в соответствие с критериями, заданными пользователем), и представляют их в понятном пользователю виде. Например, "платежное поручение" -- на входе номер документа и год (задаются пользователем), на выходе -- формуляр, который можно распечатать.

А что Вы имеете в виду под "отчетами"? Все еще не понимаю, что Вы хотите сделать.

#43
19:47, 27 июня 2010

chiaroscuro
отчёты в налоговую. Мы - крупный налогоплательщик
отчётность сдаётся в xml по внутренним каналам

для отчётов налоговая представляет свои схемы. Я по этим схемам программно генерирую xml. Но я не проверяю соответствие типам, всё представляю как строки. Возможно иногда преобразую типы до других. Например "2,2" преобразую до "2.2", а "5,3%" (double значение 0.053) преобразую до "5.3". Там очень много типов и на корректность всех заколебёшься писать проверки. Намного проще юзать стандартный механизм проверки файла по имеющейся схеме

об этом топик

#44
9:07, 28 июня 2010

DevilDevil
> бухгалтера сами ошибаются в данных. поэтому нет
DevilDevil
> Там очень много типов и на корректность всех заколебёшься писать проверки


Еще раз. Данные != типы данных. Бухгалтера ошибаются в данных - XSD никак не сможет помочь здесь. Мое сообщение 15 глянь. № 39 - то же самое, только на другом этапе. Проверка схемы тебе не нужна. Тебе нужно взять другой генератор.

DevilDevil
> об этом топик
XY problem.  Тебе надо проверить несколько XML в поточном режиме? Так  напиши или на джаве/шарпе/чем угодно проверку. Ее писать-то полчаса. Не можешь писать - возьми альтову. Или ее бесплатные альтернативы. В чем проблема? Это тебе стандартный механизм проверки файла по схеме.

Если надо решить задачу - сделать чтобы отчеты генерировались правильно - послушай альтернативное мнение, тебе уже 10 раз сказали что надо проверять данные.

Я не пойму, какого фидбека ты еще ждешь?

Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.