Pregunta

Estoy buscando actualizar la versión jaxb de nuestro proyecto de 1 a 2. ¿Alguien ha intentado hacer esto en sus proyectos y hay algún consejo de que alguien quiera hacer esto? Entiendo que cada proyecto es único, solo estoy buscando consejos generales.

¿Fue útil?

Solución

JAXB2 generará clases de enumeración para restricciones de tipo simple. Cualquier código Java que se base en establecer valores de cadena para usos de estos tipos requerirá que use la enumeración adecuada. Creo que esto es genial, ya que obtienes la verificación de tipo al compilar en lugar de una advertencia de validación en tiempo de ejecución.

JABX2 utiliza listas con tipo en lugar de listas sin tipo, por lo que puede eliminar una gran cantidad de conversión de su código de Java.

El soporte de fecha se ha mejorado enormemente. IIRC, la mayoría de los tipos de fecha en JAXB1 generan Calendario, mientras que en JAXB2 generan XMLGregorianCalendar.

Otros consejos

Hoy estaba leyendo un tutorial sobre JAXB 1 e intenté compilar el ejemplo usando JAXB 2.1 (como se incluye en JavaSE 6). Los elementos en el XSD usaban tipos sin nombre, como:

<xs:element name="logging">
        <xs:complexType>
                <xs:attribute name="debug" type="xs:boolean" use="required"/>
                <xs:attribute name="file" type="xs:string" use="required"/>
        </xs:complexType>
</xs:element>

Por lo que veo, JAXB 1.0 generó una clase Logging y una clase LoggingType (refiriéndose al tipo sin nombre del elemento logging), mientras que JAXB 2 genera solo una clase Logging. Esto sucede regularmente en todas las etiquetas de este ejemplo, por lo que supongo que esto sucede con bastante frecuencia en tales casos. Sin embargo, fue suficiente para eliminar el " Tipo " sufijo para arreglar la compilación, sin necesidad de otros cambios.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top