如何解决如何在JAXB类生成期间更改元素名称
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="2.0">
<xs:element name="A" type="a"/>
<xs:element name="b" type="b"/>
<xs:complexType name="a">
<xs:sequence>
<xs:element name="XXX" type="xs:string"/>
<xs:element name="Y" type="xs:string"/>
<xs:element name="Z" type="z"/>
<xs:element name="PERSON">
<xs:complexType>
<xs:sequence>
<xs:element name="B" type="b" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="xxx" type="xs:string"/>
</xs:complexType>
....
在cmd控制台中生成类期间
"%java_home%\bin\xjc" mySchema.xsd
Exception in thread "main" java.lang.IllegalArgumentException: trying to create the same field twice: xxx
我意识到我在xs:element name =“ XXX”和属性名=“ xxx”中具有相同的名称。 我想我应该创建schemat_binding.xml文件并更改元素XXX的名称,但是我不知道如何。
解决方法
我写了正确的schema_bindings.xml 也许会帮助某人:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jxb:bindings xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb" jxb:version="2.0"
jxb:extensionBindingPrefixes="xjc" >
<jxb:bindings schemaLocation="mySchema.xsd" >
<jxb:schemaBindings>
<jxb:package name="pl.domain.jaxb.myClasses" />
</jxb:schemaBindings>
<jxb:bindings node="//xs:complexType[@name='a']//xs:attribute[@name='xxx']">
<jxb:property name="xxxOtherName"/>
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>
在cmd控制台中
"%java_home%\bin\xjc" -b schema_bindings.xml mySchema.xsd
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。