0

要素名が PascalCase で定義されているスキーマがあります。

<xsd:element name="EmployeeName" minOccurs="0" maxOccurs="1">

しかし、私はこれを次のように生成したいと思います:

@XmlElement(name = "employeeName")

これは少し奇妙に聞こえるかもしれませんが、Jackson JAXB 注釈サポートを使用して JSON を camelCase で生成できるようになります。

これは可能ですか?

4

1 に答える 1

0

はい、注釈ディレクティブを使用して、XML 要素名を (ほぼ) 任意の名前に変更できます。

この例では、「価格」は「itemprice」に名前が変更されています。Java では大文字と小文字が区別されないため、キャメル ケーシングが適用されます。

 //Example: Code fragment
 public class USPrice {
     @XmlElement(name="itemprice")
     public java.math.BigDecimal price;
 }

 <!-- Example: Local XML Schema element -->
 <xs:complexType name="USPrice"/>
   <xs:sequence>
     <xs:element name="itemprice" type="xs:decimal" minOccurs="0"/>
   </sequence>
 </xs:complexType>

この例は、JAXB javadocsからのものです。

JAXB サポートには、いくつかの「使用方法」ワークフロー、「サポートする Java クラスを生成する XSD」、および「XSD を生成する Java クラス」があることに注意してください。私は後者を好みますが、前者を使用している可能性があります。もしそうなら、キャメルケースの要素名を持つように XSD を変更する必要があります。

「XSD を使用して Java クラスを生成するが、いくつかのオーバーライドを伴う」ワークフローはありません。混乱はそこから来ているのではないでしょうか。同様に、「生成された XSD ドキュメントに Java クラスの注釈を使用しますが、いくつかのオーバーライドがあります」はありません。あなたが指定するものは、あなたが得るものになるでしょう。

于 2016-03-18T17:55:41.343 に答える