jaxb – 如何在xjc中禁用Java命名约定?
发布时间:2020-12-15 02:49:35 所属栏目:Java 来源:网络整理
导读:例如,xsd中的sOmE_PROPerty必须是 java类中的sOmE_PROPerty而不是someProperty. 我试图使用globalBindings enableJavaNamingConventions =“false”但它不起作用. 解决方法 您将需要使用underscoreBinding =“asCharInWord”而不是enableJavaNamingConventio
例如,xsd中的sOmE_PROPerty必须是
java类中的sOmE_PROPerty而不是someProperty.
我试图使用globalBindings enableJavaNamingConventions =“false”但它不起作用. 解决方法
您将需要使用underscoreBinding =“asCharInWord”而不是enableJavaNamingConventions =“false”:
customer.xsd <?xml version="1.0" encoding="UTF-8"?> <xsd:schema targetNamespace="http://www.example.org/customer" xmlns="http://www.example.org/customer" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xsd:complexType name="customer"> <xsd:sequence> <xsd:element name="sOmE_PROPerty" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:schema> binding.xml JAXB绑定文件用于自定义Java转换的模式: <jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" version="2.1"> <jaxb:globalBindings underscoreBinding="asCharInWord"/> </jaxb:bindings> XJC电话 xjc -d out -b binding.xml customer.xsd 顾客 生成的属性名称现在包含下划线字符: package org.example.customer; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlType; @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "customer",propOrder = { "sOmEPROPerty" }) public class Customer { @XmlElement(name = "sOmE_PROPerty",required = true) protected String sOmEPROPerty; public String getSOmE_PROPerty() { return sOmEPROPerty; } public void setSOmE_PROPerty(String value) { this.sOmEPROPerty = value; } } 不使用binding.xml 如果您改为进行以下XJC调用: xjc -d out -customer.xsd 您将看到生成的属性不包含下划线: package org.example.customer; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlType; @XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "customer",required = true) protected String sOmEPROPerty; public String getSOmEPROPerty() { return sOmEPROPerty; } public void setSOmEPROPerty(String value) { this.sOmEPROPerty = value; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |