当通过xjc生成为@XmlElement时,如何更改XSD元素名称的大小写

时间:2016-03-18 17:47:42

标签: jaxb xjc xjb

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

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

但我想这样生成:

@XmlElement(name = "employeeName")

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

这可能吗?

1 个答案:

答案 0 :(得分:0)

是的,可以通过注释指令将XML元素名称更改为(几乎)所需的任何内容。

在这个例子中,&#34;价格&#34;被重命名为&#34; itemprice&#34;。 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>

此示例来自the JAXB javadocs

请注意,JAXB支持有一些&#34;如何使用它&#34;工作流,&#34; XSD生成支持Java类&#34;和&#34; Java类以生成XSD&#34;。我更喜欢后者,但你可能正在使用前者。如果你是,那么你需要改变你的XSD以在那里有camelCase元素名称。

没有&#34;使用我的XSD来生成Java类,但有一些覆盖&#34;流程。也许这就是混乱的来源。同样,没有&#34;使用Java类注释生成XSD文档,但有一些覆盖&#34;。你指定的将是你得到的,名字。