| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > XML, XSL > JAXB Unmarshalling |
| Автор: Zloxa 3.2.2012, 16:47 | ||||||||
| Пытаюсь средствами забиндить XMLчик, который содержит конфигурацию клиента. В результате выполнения метода unmarshal, получаю объект корневого класса, свойства которого == null. Перед публикацией поста на форуме, попробовал на упрощенном примере схожей структуры, вне проекта. Воспроизвести не смог, сбоку все отлично работает. Потому выкладываю полотнища, не обессудьте. xsd:
с помощью утилиты формирую классы
В ресурсе проекта создаю xml:
выполняю:
В результате config.getOracleConnection() возвращает null, соответственно получаю на следующей строке NullPointerException Посоветуйте плиз, куда смотреть, где искать косяк?. |
| Автор: LSD 3.2.2012, 17:15 | ||
|
| Автор: Zloxa 3.2.2012, 17:21 |
| Симптоматика устранилась после добавления параметра схемы elementFormDefault="qualified" Добавлено через 5 минут и 10 секунд Да, так тоже работает, и при не установленном elementFormDefault, спасибо, буду разбираться что это значит. |
| Автор: Zloxa 6.2.2012, 12:47 | ||
Не, в жаве было лучше. Походу это какая то особенность именно JAXB. На сколько я могу судить из "http://www.w3.org/TR/2004/REC-xmlschema-0-20041028/#GlobalvsLocal", " both schema approaches can validate the same, namespace defaulted, document". А у меня, в виду того, что я указал пространство имен по умолчанию, это был именно namespace defaulted документ. Т.е. он валидный, но не читается почему-то JAXB, и, более того, не поднимает ошибку.
http://www.w3.org/TR/2004/REC-xmlschema-0-20041028/#po1.xml объясняется. Если я правильно понял, при elementFormDefault="unqualified", префиксы должны применяться только к глобальным элементам схемы - элементам объявленным в корне схемы. Прочие элементы считаются локальными в этом пространстве имен. |
| Автор: LSD 6.2.2012, 15:16 |
Я проверил сторонним валидатором (на базе MSXML) он тоже сказал, что <c:Config - правильно, а <Config - нет. |
| Автор: Zloxa 6.2.2012, 19:26 |
Ухты... он оказывается не валидирует вовсе. Судя по тому времени, что уходит на загрузку этого XML, я полагал что валидация таки производится и проходит успешно. |