例如,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: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; } }