|
|
|
Проверка XML на валидность(XSD).
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Интересует вопрос, как проверить xml по xsd схеме, и в случае удачной проверки распарсить xml. Я делаю так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. //Упоминая об ошибках в тексте ниже, я имею ввиду ошибки несоответствия xsd схеме, а не незакрытый тег в xml. Так вот, как я понял, первый parse() не возвращает никаких сведений о том, валидно все или нет . И даже не выбрасывает исключений. Ошибки обрабатываются в MyErrorHandler или видимо в дефолтном ErrorHandler (выводятся в консоль), если не писать свой. Если я сразу установлю и ErrorHandler и ContentHandler и выполню parse() - то тем более толку ноль, оно пишет в консоль об ошибках и спокойно парсит файл до конца выполняя логику в ContentHandler . Есть идея, завести булевскую( true ) переменную в MyErrorHandler , и в каждом методе (warning, error, fatalError) сетать её в false , а затем проверить , и парсить используя ContentHandler только если она true . Т.е. смысл в том, что если ошибок нет, то и методы не вызовутся, и переменная останется true, и значит можно парсить xml. А если были ошибки, то переменная станет false. Но мне кажется это костыль, и должны быть какие-то стандартные адекватные действия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 04:00 |
|
||
|
Проверка XML на валидность(XSD).
|
|||
|---|---|---|---|
|
#18+
f6, Приложите содержимое файла file.xml ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 04:31 |
|
||
|
Проверка XML на валидность(XSD).
|
|||
|---|---|---|---|
|
#18+
Usman, Так а разница какая? Любой обычный xml. users.xml Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 05:14 |
|
||
|
Проверка XML на валидность(XSD).
|
|||
|---|---|---|---|
|
#18+
f6, Скорее всего ошибка в XSD-схеме (либо Ваш XML не соответствует схеме). Вашему XML:file.xml Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. должен соответствовать такой XSD:file.xsd Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 05:58 |
|
||
|
Проверка XML на валидность(XSD).
|
|||
|---|---|---|---|
|
#18+
Usman, с XSD точно все ок. Оно ведь проверяет нормально, если со схемой все ок. А ошибки появляются если я их специально добавляю. Ну и собственно обсуждаемый вопрос, как проверку правильно организовать, а не все ли ок с xml/xsd . В том то и смысл проверки, что она должна работать когда что-то не ок с xml/xsd. XSD Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 06:08 |
|
||
|
Проверка XML на валидность(XSD).
|
|||
|---|---|---|---|
|
#18+
f6Но мне кажется это костыль, и должны быть какие-то стандартные адекватные действия Создайте отдельный класс, который будет заниматься проверкой на валидность/сопоставлением схем и пр. действиями, связанные с XML-документами. Все в рамках ООП. Не создавая классы типа: MyErrorHandler, ContentHandler и пр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 07:15 |
|
||
|
Проверка XML на валидность(XSD).
|
|||
|---|---|---|---|
|
#18+
Или одной функцией: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2013, 07:20 |
|
||
|
Проверка XML на валидность(XSD).
|
|||
|---|---|---|---|
|
#18+
UsmanИли одной функцией: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Это работает, спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2013, 00:24 |
|
||
|
|

start [/forum/search_topic.php?author=RadionAT_1&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
208ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 403ms |
| total: | 741ms |

| 0 / 0 |
