Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XML валидация по XML Schema 
:(
    Опции темы
poltora
Дата 18.1.2008, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 6.8.2007

Репутация: нет
Всего: нет



требуется проверять на валидность xml документ, однако получаю ошибки. привожу код на java, xml-документ и xml-схему
 
ошибки:
Parsing problem: schema_reference.4: Failed to read schema document 'upload.xsd', because 1) could not find the document; 

2)the document could not be read; 3) the root element of the document is not <xsd:schema>.
Parsing error: cvc-elt.1: Cannot find the declaration of element 'загрузка'.

xml схема:
Код

<?xml version="1.0" encoding="Windows-1251" standalone="yes"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
 <xsd:element name="загрузка">
....

xml:
Код

<?xml version="1.0" encoding="Windows-1251"?>
<загрузка xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="upload.xsd">
...

код:
Код

            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            factory.setNamespaceAware(true);
            factory.setValidating(true);
            try {
                factory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage", 
            "http://www.w3.org/2001/XMLSchema");
            } catch (IllegalArgumentException e) {
                e.printStackTrace();  
            }
 
            DocumentBuilder builder = factory.newDocumentBuilder();
            builder.setErrorHandler(new ErrorChecker());

PM MAIL WWW   Вверх
Sardar
Дата 19.1.2008, 05:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 4
Всего: 317



До самой валидации не дошли, документ не может отыскать upload.xsd.
Обычно само приложение ставит условие (схему) на документ, поэтому схема не включается в XML, а поднимается прогой (SchemaFactory).
Если это просто общий валидатор, то по моему тебе потребуется собственный EntityResolver что бы найти хитро спрятанный файл. Указав абсолютный URL можно этого избежать. Также можно посмотреть куда указывает InputSource.getSystemId() твоего XML документа, по идее относительно него должен парсер искать схему.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
LSD
Дата 20.1.2008, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



В дополнение к ранее сказанному: DocumentBuilderFactory.setValidating() надо установить в false. Т.к. этот параметр предназначен для DTD, а не XML Schema.

А вообще, здесь есть пример принудительного включения валидации по схеме.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0634 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.