簡體   English   中英

如何從XSD生成實現可序列化的類?

[英]How to generate classes from XSD that implements serializable?

我需要在包(.jar)中從我的XML Schema(XSD)生成許多類。 如何將這些類配置為可序列化?

(我正在使用Eclipse和JAX-B)

如果您正在使用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">

然后,在<jaxb:globalBindings>包含<xjc:serializable>節點:

<xs:annotation>
   <xs:appinfo>
      <jaxb:globalBindings generateIsSetMethod="true">
          <xjc:serializable uid="12343"/>
      </jaxb:globalBindings>
   </xs:appinfo>
</xs:annotation>

這將導致所有具體類實現Serializable接口。 此外,您可以定義結果類的UUID值(這是一個可選屬性)。

我發現了

<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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM