簡體   English   中英

使用JAXB marshal將元素添加/修改為XML文件

[英]Add/Modify an element to XML file using JAXB marshal

我正在使用JAXB從XML生成java代碼,它有一個枚舉

    <xs:simpleType name="color">
    <xs:restriction base="xs:string">
        <xs:enumeration value="Blue"/>
        <xs:enumeration value="Green"/>
        <xs:enumeration value="Yellow"/>
    </xs:restriction>
</xs:simpleType>

Red and White說,我想為這個枚舉添加更多顏色。 我們不想更新xsd或生成的XML / Java代碼,因為它們不歸我們所有,我們希望保持原樣。

選項1.如果有一種方法可以讀取XSD,當它讀取xs:simpleType name =“color”時,我可以為枚舉添加顏色,因此生成的java enum具有所有需要的值

選項2.如果我可以編寫一個可以幫助我在生成的Enum中添加值的適配器

我已經檢查了XMLAdapter但是覆蓋它對我的情況沒有幫助。 由於它是一個枚舉,我發現很難修改它,因為Enums在Java中是不變的

由於難以在枚舉中插入值,因此我們使用自定義JAXB綁定將“color”元素從Enum轉換為String類型。

<jaxb:bindings node="//xs:simpleType[@name='color']">
  <jaxb:typesafeEnumClass map="false" />
</jaxb:bindings>

現在可以插入新值。 我們理解這是有風險的,因為現在“color”元素可以接受任何字符串,但從我們的項目角度來看它適用於我們。

暫無
暫無

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

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