我有一个模式,其中元素名称在 PascalCase 中定义,例如:
<xsd:element name="EmployeeName" minOccurs="0" maxOccurs="1">
但我希望它生成为:
@XmlElement(name = "employeeName")
我知道这听起来有点奇怪,但它允许我使用 Jackson JAXB 注释支持在 camelCase 中生成我的 JSON。
这可能吗?
是的,可以通过注释指令将 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 文档,但有一些覆盖”。从名称上讲,您指定的将是您得到的。