JAXB XJC: how to resolve XSD to Java property conflicts? - java

I'm trying to generate Java classes starting from an XML Schema Definition
but I'm getting an error about a Property "Lang" is already defined.
[ERROR] http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd [302,52]
com.sun.istack.SAXParseException2: Property "Lang" is already defined. Use <jaxb:property> to resolve this conflict.
[ERROR] http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd [303,35]
com.sun.istack.SAXParseException2
The XSD I'm using defines the Common Weakness Enumeration (CWE) and is located at https://cwe.mitre.org/data/xsd/cwe_schema_v6.10.xsd
A short command to reproduce the error is:
xjc http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd
This is my pom.xml
<build>
<plugins>
<!-- https://www.mojohaus.org/jaxb2-maven-plugin/#/repo -->
<!-- https://www.mojohaus.org/jaxb2-maven-plugin/Documentation/v3.1.0/index.html -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<sources>
<source>_schema_/cwe</source>
</sources>
<xjbSources>
<xjbSource>${basedir}/cti-domain/src/main/xjb</xjbSource>
</xjbSources>
<outputDirectory>${basedir}/cti-domain/src/main/java</outputDirectory>
<clearOutputDir>false</clearOutputDir>
</configuration>
<executions>
<execution>
<id>xjc</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
and this is my attempt to fix the error:
<!-- cti-domain/src/main/xjb/cwe-bindings.xjb -->
<jxb:bindings version="1.0"
xmlns:jxb="https://jakarta.ee/xml/ns/jaxb"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<jxb:bindings schemaLocation="../../../../_schema_/cwe/cwe_schema_v6.10.xsd" node="//xsd:schema">
<jxb:schemaBindings>
<jxb:package name="com.example.cwe"/>
</jxb:schemaBindings>
<!-- <jxb:bindings schemaLocation="http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd" node="//xsd:schema">-->
<!-- <jxb:property name="Language"/>-->
<!-- </jxb:bindings>-->
</jxb:bindings>
</jxb:bindings>

You need to rename the 'lang' property at line 302 & line 1166 in http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd to something that does not clash, eg 'langAttribute'
The first 'lang' is in the last line in the snippet of xhtml1-strict.xsd below:
<xs:element name="bdo">
<xs:annotation>
<xs:documentation>
I18N BiDi over-ride
</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="Inline">
<xs:attributeGroup ref="coreattrs"/>
<xs:attributeGroup ref="events"/>
<xs:attribute name="lang" type="LanguageCode"/>
This is what should be in the xjb file:
<!-- cti-domain/src/main/xjb/cwe-bindings.xjb -->
<jxb:bindings version="3.0"
xmlns:jxb="https://jakarta.ee/xml/ns/jaxb"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<jxb:bindings schemaLocation="http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd" node="//xsd:schema">
<jxb:schemaBindings>
<jxb:package name="com.example.cwe"/>
</jxb:schemaBindings>
<!-- rename the 'lang' attribute on line 302 to 'langAttribute' -->
<jxb:bindings node="//xsd:attributeGroup[#name='i18n']/xsd:attribute[#name='lang']">
<jxb:property name="langAttribute"/>
</jxb:bindings>
<!-- rename the 'lang' attribute on line 1166 to 'langAttribute' -->
<jxb:bindings node="//xsd:element[#name='bdo']/xsd:complexType/xsd:complexContent/xsd:extension/xsd:attribute[#name='lang']">
<jxb:property name="langAttribute"/>
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>
I have tested with jaxb-ri-4.0.1 w jdk-17.0.2_8* with command line:
xjc http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd -b cwe-bindings.xjb
Output starts like this:
parsing a schema...
compiling a schema...
com\example\cwe\A.java
com\example\cwe\AContent.java
com\example\cwe\Abbr.java
also works with jaxb-ri-2.3.0 and jdk1.8.0_231 - with jxb:bindings version="1.0" and xmlns:jxb="http://java.sun.com/xml/ns/jaxb"

Related

How to generate classes using maven jaxb implements serializable

I want my all xjc generated classes implementing serializable interface.
After reading solution at post I implemented it but jaxb2-maven-plugin throws below error:
[ERROR] file: mapping.xsd [17,34] org.xml.sax.SAXParseException;
systemId: file:mapping.xsd; lineNumber: 17; columnNumber: 34;
src-annotation: elements can only contain and
elements, but 'globalBindings' was found. 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
My xsd sample:
<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:
<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.
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>

Single file for multiple WSDL binding

I am currently developing SOAP webservices client using Apache CXF's cxf-codegen-plugin. Since I have multiple WSDL, I need to bind it to different packages in my java project.
My question is, is it possible to define 1 single binding file for multiple WSDL file?
Below is my plugin configuration
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<defaultOptions>
<bindingFiles>
<bindingFile>src/main/resources/wsdl/bindings.xjb</bindingFile>
</bindingFiles>
</defaultOptions>
<sourceRoot>${basedir}/src/main/java</sourceRoot>
<wsdlRoot>src/main/resources/wsdl</wsdlRoot>
<includes>
<include>*.wsdl</include>
</includes>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
I am trying to achieve something like this but to no avail
<jaxws:bindings
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns="http://java.sun.com/xml/ns/jaxws">
<jaxws:bindings wsdlLocation="serviceA.wsdl" >
<jaxws:package name="org.ws.serviceA"/>
</jaxws:bindings>
<jaxws:bindings wsdlLocation="serviceB.wsdl" >
<jaxws:package name="org.ws.serviceB"/>
</jaxws:bindings>
</jaxws:bindings>
Turns out, it is indeed impossible and clearly stated in this site
https://jax-ws.java.net/nonav/2.1.2/docs/customizations.html
1.1.1 Root Binding Element
The jaxws:bindings declaration appears as the root of all other
binding declarations. This top-level jaxws:bindings element must
specify the location of the WSDL file as a URI in the value of
wsdlLocation attribute.
However it did not specify anything about the wsdlLocation at child element. This site does http://itdoc.hitachi.co.jp/manuals/3020/30203Y2310e/EY230286.HTM#ID00669
Non-root jaxws:bindings > wsdlLocation > The attribute cannot be
specified. Even if the attribute is specified, it is ignored.
Hopefully this can be improved in the future as JAXB can already bind multiple schemaLocation in one file like this
<jxb:bindings version="1.0" xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<jxb:bindings schemaLocation="schema1.xsd" node="//xsd:schema">
<jxb:schemaBindings>
<jxb:package name="org.package1" />
</jxb:schemaBindings>
</jxb:bindings>
<jxb:bindings schemaLocation="schema2.xsd" node="//xsd:schema">
<jxb:schemaBindings>
<jxb:package name="org.package2" />
</jxb:schemaBindings>
</jxb:bindings>
</jxb:bindings>

JAXB Duplicate class renaming

Hi I wonder if anyone can help me. I have got two .xsd schema files orderservice-order.xsd and order.xsd each of which name an element type of "order".
order.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://xml.xxxxxxxx.com/order"
<xs:element name="order">
<xs:complexType>
<xs:sequence>
<xs:element name="client" type="xs:string" minOccurs="0" maxOccurs="1" />
more elements here
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
orderservice-order.xsd
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://xml.xxxxxxxx.com/order"
<xs:element name="order">
<xs:complexType>
<xs:sequence>
<xs:element name="orderNumber" type="xs:string" minOccurs="1" maxOccurs="1" />
more elements here
</xs:sequence>
</xs:complexType>
</xs:element>
jaxbBindings.xjb
<jxb:bindings schemaLocation="../XSD/v1.0/Representation/orderservice-order.xsd">
<jxb:bindings node="//xs:element[#name='order']/xs:complexType">
<jxb:class name="OSOrder" />
</jxb:bindings>
</jxb:bindings>
When I come to create the Java source for these schema files I am obviously getting a class name clash on the Order class.
I've created a jaxb bindings .xjb file to rename the generated Order class name from the orderservice-order.xsd.
However I still get the following error
...XSD/v1.0/Representation/orderservice-order.xsd; lineNumber: 69; columnNumber: 15; 'order' is already defined
It doesn't appear to be a problem with the XPATH in the .xjb file. If I rename the element in orderservice-order.xsd to say orderNew and change the xpath to
node="//xs:element[#name='orderNew']/xs:complexType"
there is obviously no name clash but the class IS renamed to 'OSOrder'
It's as if there is some pre-validation of the schema files PRIOR to the bindings file rename kicking in. I've tried turning off various jaxb/maven settings such as strict validation etc etc but to no avail.
Anybody seen this before and know a way to fix it??? By the way I don't control the content of the schema files.
Thank You
I'm using the maven plugin jaxb2-maven-plugin version 1.3 and jaxb version 2.0 running on Java 7.
maven config
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>Representations</id>
<configuration>
<schemaDirectory>XSD/v1.0/Representation</schemaDirectory>
<packageName>com.xxxxxxxxx.xml.representation.v1</packageName>
<bindingDirectory>XSD/v1.0/Representation</bindingDirectory>
<outputDirectory>src/main/generated-sources</outputDirectory>
<staleFile>${project.build.directory}/generated-sources/jaxb/.representation</staleFile>
<clearOutputDir>false</clearOutputDir>
</configuration>
<goals>
<goal>xjc</goal>
</goals>
</execution>
In your JAXB bindings you can specify bindings for each file if you need and for each file rename the class as you want to resolve conflicts.
Here's an example :
<jxb:bindings schemaLocation="order.xsd">
<jxb:bindings node="//xs:element[#name='order']">
<jxb:class name="Order" implClass="Order"/>
</jxb:bindings>
</jxb:bindings>
<jxb:bindings schemaLocation="orderservice-order.xsd">
<jxb:bindings node="//xs:element[#name='order']">
<jxb:class name="OSOrder" implClass="OSOrder"/>
</jxb:bindings>
</jxb:bindings>
Here's the documentation : http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/1.5/tutorial/doc/JAXBUsing4.html
EDIT
I managed to reproduce the problem on my side.
The problem is the target namespace :
targetNamespace="http://xml.xxxxxxxx.com/order"
You have the same target namepace in both XSD.
So you define the type order twice in the same namespace which is not possible.
If you change the target namespace, you won't have the problem anymore.
Example for orderservice-order.xsd, I changed the target namespace into :
targetNamespace="http://xml.xxxxxxxx.com/orderservice-order"
I don't have the problem anymore.

JAXWS: How to change CXF-generated classes names defined in external XSD?

I'm trying to change name of a class generated from wsdl (I don't want to modify any wsdl or xsd file directly). The problem is that its definition is in a separate xsd file.
The structrure of wsdl looks like this:
main.wsdl:
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://foo.bar/zee">
<wsdl:import location="typedef.wsdl" namespace="http://foo.bar/wee">
</wsdl:import>
...
</wsdl:definitions>
typedef.wsdl:
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Foo" targetNamespace="http://foo.bar/wee">
<wsdl:types>
<xsd:schema>
<xsd:import namespace="http://foo.bar/wee/schema" schemaLocation="FooBar.xsd"/>
</xsd:schema>
</wsdl:types>
...
<wsdl:definitions>
FooBar.xsd:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://foo.bar/wee/schema">
...
<xsd:complexType name="FooType">
<xsd:sequence>
...
</xsd:complexType>
</xsd:schema>
Now let's say I want to rename the FooType class to Foo. After reading this: JAXB: How to change XJC-generated classes names when attr type is specified in XSD? I've created a following bindings file.
jaxws_bindings.xml:
<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
version="2.1"
wsdlLocation="http://127.0.0.1:8431/Foo/types.wsdl">
<jxb:bindings schemaLocation="http://127.0.0.1:8431/Foo/FooBar.xsd">
<jxb:bindings node="//xs:complexType[#name='FooType']">
<jxb:class name="Foo"/>
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>
But all I get is an error:
[ERROR] Failed to execute goal org.apache.cxf:cxf-codegen-plugin:2.7.0:wsdl2java (generate-sources) on
project foo: Execution generate-sources of goal org.apache.cxf:cxf-codegen-plugin:2.7.0:wsdl2java failed:
file:/E:/sources/.../jaxws_bindings.xml [8,95]: "http://127.0.0.1:8431/Foo/FooBar.xsd" is not a part of
this compilation. Is this a mistake for "http://127.0.0.1:8431/Foo/FooBar.xsd"? -> [Help 1]
I've already tried everything that came to my mind, but still got nothing close to a success.
Anyone happens to know how to do this?
PS: To generate the classes I use maven cxf codegen plugin with a following configuration in pom.xml:
<build>
<finalName>${project.groupId}.${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>2.7.0</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated-sources</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>http://127.0.0.1:8431/Foo/main.wsdl</wsdl>
<extraargs>
<extraarg>-client</extraarg>
</extraargs>
<bindingFiles>
<bindingFile>jaxws_bindings.xml</bindingFile>
</bindingFiles>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
I figured this out based on this gist.
While this works with XJC:
<jaxb:bindings
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
version="1.0">
<jaxb:bindings schemaLocation="..."
node="/xsd:schema/xsd:element[#name='Bar']">
<jaxb:class name="Foo"/>
</jaxb:bindings>
</jaxb:bindings>
you need this with CXF:
<jaxb:bindings
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
version="1.0">
<jaxb:bindings schemaLocation="..."
node="/xsd:schema/xsd:complexType[#name='Case']">
<jaxb:class name="Wat" implClass="bar"/>
</jaxb:bindings>
</jaxb:bindings>
The difference is element vs complexType.

Create Java classes with JaxB

I tried to create Java classes with JaXB from this XSD http://pda.rosreestr.ru/upload/www/files/02_V04_STD_Region_Cadastr_KV.rar but got these errors.
parsing a schema...
[WARNING] Simple type "dAllDocuments" was not mapped to Enum due to EnumMemberSizeCap limit. Facets count: 298, current limit: 256. You can use customization attribute "typesafeEnumMaxMembers" to extend the limit.
line 3 of file:/D:/liferay-develop/workspace/JABX_test/src/02_V04_STD_Region_Cadastr_KV/dAllDocuments.xsd
compiling a schema...
[ERROR] Two declarations cause a collision in the ObjectFactory class.
line 1645 of file:/D:/liferay-develop/workspace/JABX_test/src/02_V04_STD_Region_Cadastr_KV/STD_Region_Cadastr_KV.xsd
[ERROR] (Related to above error) This is the other declaration.
line 1587 of file:/D:/liferay-develop/workspace/JABX_test/src/02_V04_STD_Region_Cadastr_KV/STD_Region_Cadastr_KV.xsd
Failed to produce code.
When I work with another schemas everything is fine. I am not good in work with XML, can you tell me what these errors mean and how to solve it?
UPDATE
I tried to use binding.xml in class generation but got this error.
C:\Documents and Settings\kliver\Мои документы\Загрузки\jaxb-ri-2.2.6\bin>xjc -d
out -b binding.xml D:/liferay-develop/workspace/JABX_test/src/02_V04_STD_Region
_Cadastr_KV/STD_Region_Cadastr_KV.xsd
parsing a schema...
[ERROR] "D:/liferay-develop/workspace/JABX_test/src/02_V04_STD_Region_Cadastr_KV
/STD_Region_Cadastr_KV.xsd" is not a part of this compilation. Is this a mistake
for "file:/D:/liferay-develop/workspace/JABX_test/src/02_V04_STD_Region_Cadastr
_KV/STD_Region_Cadastr_KV.xsd"?
line 6 of file:/C:/Documents%20and%20Settings/kliver/%D0%9C%D0%BE%D0%B8%20%D0%
B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B/%D0%97%D0%B0%D0%B3%D1%80%D1%8
3%D0%B7%D0%BA%D0%B8/jaxb-ri-2.2.6/bin/binding.xml
[WARNING] Simple type "dAllDocuments" was not mapped to Enum due to EnumMemberSi
zeCap limit. Facets count: 298, current limit: 256. You can use customization at
tribute "typesafeEnumMaxMembers" to extend the limit.
line 3 of file:/D:/liferay-develop/workspace/JABX_test/src/02_V04_STD_Region_C
adastr_KV/dAllDocuments.xsd
Failed to parse a schema.
UPDATE2
I try this binding:
<jxb:bindings
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
version="2.1">
<!-- Raise theEnumMemberSizeCap limit -->
<jxb:bindings >
<jxb:globalBindings typesafeEnumMaxMembers="2000"/>
</jxb:bindings>
<jxb:bindings schemaLocation="D:\liferay-develop\workspace\JABX_test\src\02_V04_STD_Region_Cadastr_KV\STD_Region_Cadastr_KV.xsd">
<jxb:bindings node="//xs:complexType[#name='tRight_Owner']">
<jxb:class name="tRight_Owner2"/>
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>
And this console command:
C:\Documents and Settings\kliver\Мои документы\Загрузки\jaxb-ri-2.2.6\bin>xjc -d
out -b binding.xml D:\liferay-develop\workspace\JABX_test\src\02_V04_STD_Region
_Cadastr_KV\STD_Region_Cadastr_KV.xsd
You can use an external bindings file to specify a different class name for one of the complex types.
binding.xml
<jxb:bindings
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
version="2.1">
<!-- Raise theEnumMemberSizeCap limit -->
<jxb:bindings >
<jxb:globalBindings typesafeEnumMaxMembers="2000"/>
</jxb:bindings>
<jxb:bindings schemaLocation="your-schema.xsd">
<jxb:bindings node="//xs:complexType[#name='tRight_Owner']">
<jxb:class name="TRight_Owner2"/>
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>
The xjc command line would be:
xjc -d out -b binding.xml your-schema.xsd
For those of you coming across this question in later years this method worked for me.
Environment: Netbeans 7.4
Build method: Maven - jaxb2-maven-plugin
Create a folder called xjb in src\main.
In that folder create a file called binding.xjb (or any other .xjb name).
In it:
<jxb:bindings
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
version="2.1">
<!-- Raise theEnumMemberSizeCap limit -->
<jxb:bindings >
<jxb:globalBindings typesafeEnumMaxMembers="2000"/>
</jxb:bindings>
</jxb:bindings>
Note that this is not an alternative solution to Blaise's post.
I'm using version 0.13.0 of the maven-jaxb2-plugin, and I found the correct path to the binding file is:
src/main/resources/binding.xjb
The content is the same as OldCurmudgeon proposed, namely:
<jxb:bindings xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb" version="2.1">
<!-- Raise theEnumMemberSizeCap limit -->
<jxb:bindings>
<jxb:globalBindings typesafeEnumMaxMembers="2000" />
</jxb:bindings>
</jxb:bindings>
You have an issue with your XSD, there are multiple declarations of same name tRight_Owner
line 1587:
<xs:complexType>
<xs:complexContent>
<xs:extension base="tRight_Owner"/>
</xs:complexContent>
</xs:complexType>
line 1645:
<xs:complexType name="tRight_Owner">

Categories