java - partir - error no se ha encontrado o cargado la clase principal com sun tools internal xjc xjcfacade
¿Cómo generar clases desde XSD que implemente serializable? (2)
Necesito generar muchas clases de mi esquema XML (XSD) en un paquete (.jar). ¿Cómo puedo configurar estas clases para que sean serializables?
(Estoy usando Eclipse y JAX-B)
He encontrado
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jaxb:extensionBindingPrefixes="xjc"
jaxb:version="1.0"
>
<!-- FORCE ALL CLASSES IMPLEMENTS SERIALIZABLE -->
<annotation>
<appinfo>
<jaxb:globalBindings generateIsSetMethod="true">
<xjc:serializable uid="1"/>
</jaxb:globalBindings>
</appinfo>
</annotation>
....
</schema>
Si está utilizando XJC, le recomiendo que lea esta referencia: JavaTM Architecture for XML Binding: JAXB RI Extensions de proveedores de proveedores :
Debe agregar en su esquema la definición de espacios de nombres adicionales para agregar el marcado adicional xjc:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jaxb:extensionBindingPrefixes="xjc"
jaxb:version="1.0">
Luego, incluido un nodo <jaxb:globalBindings>
<xjc:serializable>
dentro de <jaxb:globalBindings>
:
<xs:annotation>
<xs:appinfo>
<jaxb:globalBindings generateIsSetMethod="true">
<xjc:serializable uid="12343"/>
</jaxb:globalBindings>
</xs:appinfo>
</xs:annotation>
Esto hará que todas las clases concretas implementen la interfaz Serializable. Además, puede definir el valor de UUID de las clases resultantes (que es un atributo opcional).