[英]How to generate classes using maven jaxb implements serializable
I want my all xjc generated classes implementing serializable interface. 我希望所有xjc生成的类都实现可序列化的接口。 After reading solution at post I implemented it but
jaxb2-maven-plugin
throws below error: 在阅读了解决方案后,我实现了它,但是
jaxb2-maven-plugin
抛出以下错误:
[ERROR] file: mapping.xsd [17,34] org.xml.sax.SAXParseException;
[错误]文件:mapping.xsd [17,34] org.xml.sax.SAXParseException; systemId: file:mapping.xsd;
systemId:file:mapping.xsd; lineNumber: 17;
lineNumber:17; columnNumber: 34;
columnNumber:34; src-annotation: elements can only contain and elements, but 'globalBindings' was found.
src-annotation:元素只能包含和元素,但是找到了'globalBindings'。 at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134) at
在com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)处com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)在
My xsd sample: 我的xsd示例:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jaxb:extensionBindingPrefixes="xjc"
attributeFormDefault="unqualified"
elementFormDefault="qualified">
<xs:element name="MappingFile" type="MappingFileType">
<xs:annotation>
<jaxb:globalBindings>
<xjc:serializable uid="43538530765l"/>
</jaxb:globalBindings>
</xs:annotation>
Maven plugin: Maven插件:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.3</version>
<configuration>
<sources>
<source>xxxx/yyy/mapping.xsd</source>
</sources>
<packageName>xx.yy.zz.jaxp</packageName>
</configuration>
</plugin>
Is there any dependency that i need to use to avoid this exception? 我需要使用任何依赖项来避免此异常吗? Please sugest.
请随便。
Your binding file should look like: 您的绑定文件应如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
version="2.1">
<jaxb:globalBindings>
<xjc:serializable uid="1" />
</jaxb:globalBindings>
</jaxb:bindings>
Moreover, touch your binding file in a specific directory and reference it in the maven plugin specific configuration. 此外,在特定目录中触摸绑定文件,并在Maven插件特定配置中引用它。 Example:
例:
<configuration>
<sources>
<source>src/main/xjb/xsd</source>
</sources>
<packageName>xx.yy.zz.jaxp</packageName>
<xjbSources>
<xjbSource>src/main/xjb/jaxb-bindings.xjb</xjbSource>
</xjbSources>
</configuration>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.