2015-08-07 2 views
0

повторно http://blog.bdoughan.com/2011/12/reusing-generated-jaxb-classes.htmlобщие схемы XSD импортирован в другую схему не unmarshalled

Я пытаюсь перейти от использования касторового к JAXB.

Я импортирую схему commontypes.xsd в другую схему, а затем с помощью jaxb для создания классов java, но когда я unmarhsal пример XML-файла, импортируемые типы являются нулевыми, если я явно не задал все пространства имен в образце xml.

Это реальная боль, потому что я хочу вызова приложений, чтобы иметь возможность отправить мне простой XML не один заваленную тонны пространств имен и префиксов и т.д.

Любые предложения о том, как избежать того, чтобы это сделать?

Я создал .episodes файлы в maven, используя вышеприведенную статью, и XJC episode with maven, но это не помогает, и я все еще получаю nulls, когда я unmarshal.

Может ли кто-нибудь помочь?

спасибо

ответ

1

У меня это работает!

Проблема заключалась в файл package-info.java генерируется XJC из моей XSD-файл был elementFormDefault установлен быть квалифицировано

@javax.xml.bind.annotation.XmlSchema(
    namespace = "http://www.example.com/commontypes", 
    elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED 
) 
package com.example.commontypes; 

Когда я изменил это, чтобы быть неквалифицированным и перекомпилировать код Java, то маршализацию затем работал.

Первопричина исправление было в моей XSD-файл, где я поставил elementFormDefault = "неквалифицированный"

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="http://www.example.com/commontypes"  
    xmlns="http://www.example.com/commontypes" 
    elementFormDefault="unqualified" 
    attributeFormDefault="unqualified"> 

Это приводит к следующему генерируемой package-info.java файл

@javax.xml.bind.annotation.XmlSchema(
    namespace = "http://www.example.com/commontypes" 
) 
package com.example.commontypes; 

и опять же, безжалостный, тогда работал!

Благодаря Блейзу за всю работу, которую он вкладывает, это был комментарий к одному из его сообщений в блоге, которые позволяют мне понять это!

Смежные вопросы