How to generate classes from XSD that implements serializable?

Top*_*era 12 java eclipse serialization xsd jaxb

I need to generate many classes from my XML Schema (XSD) in a package (.jar). How can I configure these classes to be serializable?

(I'm using Eclipse and JAX-B)

Tom*_*ros 22

如果您正在使用XJC,我建议您阅读此参考:用于XML绑定的JavaTM体系结构:JAXB RI供应商扩展自定义:

您必须添加架构aditional命名空间定义以添加xjc aditional标记:

<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">
Run Code Online (Sandbox Code Playgroud)

然后,包括一个<xjc:serializable>节点<jaxb:globalBindings>:

<xs:annotation>
   <xs:appinfo>
      <jaxb:globalBindings generateIsSetMethod="true">
          <xjc:serializable uid="12343"/>
      </jaxb:globalBindings>
   </xs:appinfo>
</xs:annotation>
Run Code Online (Sandbox Code Playgroud)

这将导致所有具体类实现Serializable接口.此外,您可以定义结果类的UUID值(这是一个可选属性).


Top*_*era 5

我发现了

<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>
Run Code Online (Sandbox Code Playgroud)