0

我有一个模式,其中元素名称在 PascalCase 中定义,例如:

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

但我希望它生成为:

@XmlElement(name = "employeeName")

我知道这听起来有点奇怪,但它允许我使用 Jackson JAXB 注释支持在 camelCase 中生成我的 JSON。

这可能吗?

4

1 回答 1

0

是的,可以通过注释指令将 XML 元素名称(几乎)更改为您想要的任何名称。

在本例中,“price”被重命名为“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 以在其中包含 camelCase 元素名称。

没有“使用我的 XSD 生成 Java 类,但有一些覆盖”的工作流程。也许这就是混乱的来源。同样,没有“使用 Java 类注释来生成 XSD 文档,但有一些覆盖”。从名称上讲,您指定的将是您得到的。

于 2016-03-18T17:55:41.343 回答