Reputation: 41
my problem is this: I have to implement a Web Feature Service server from scratch, I wanted to get from XSD precise:
h**p://schemas.opengis.net/wfs/1.1.0/wfs.xsd
I run the command:
xjc h**p://schemas.opengis.net/wfs/1.1.0/wfs.xsd
[ERROR] Property "Title" is already defined. Use <jaxb:property> to resolve this conflict.
line 232 of h**p://www.w3.org/1999/xlink.xsd
[ERROR] The following location is relevant to the above error
line 219 of h**p://www.w3.org/1999/xlink.xsd
[ERROR] Property "Title" is already defined. Use <jaxb:property> to resolve this conflict.
line 261 of h**p://www.w3.org/1999/xlink.xsd
[ERROR] The following location is relevant to the above error
line 246 of h**p://www.w3.org/1999/xlink.xsd
Failed to parse a schema.
However, when i run:
xjc h**p://schemas.opengis.net/ows/1.1.0/owsGetCapabilities.xsd
the process is 100% successful.
the fragment section of h**p://www.w3.org/1999/xlink.xsd is:
<xs:attributeGroup name="locatorAttrs">
<xs:attribute ref="xlink:type" fixed="locator" use="required"/>
<xs:attribute ref="xlink:href" use="required"/>
<xs:attribute ref="xlink:role"/>
<xs:attribute ref="xlink:title"/>
<xs:attribute ref="xlink:label">
<xs:annotation>
<xs:documentation>
label is not required, but locators have no particular
XLink function if they are not labeled.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:group name="locatorModel">
<xs:sequence>
<xs:element ref="xlink:title" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:group>
<xs:complexType name="locatorType">
<xs:group ref="xlink:locatorModel"/>
<xs:attributeGroup ref="xlink:locatorAttrs"/>
</xs:complexType>
<xs:element name="arc" type="xlink:arcType" abstract="true"/>
<xs:attributeGroup name="arcAttrs">
<xs:attribute ref="xlink:type" fixed="arc" use="required"/>
<xs:attribute ref="xlink:arcrole"/>
<xs:attribute ref="xlink:title"/>
<xs:attribute ref="xlink:show"/>
<xs:attribute ref="xlink:actuate"/>
<xs:attribute ref="xlink:from"/>
<xs:attribute ref="xlink:to">
<xs:annotation>
<xs:documentation>
from and to have default behavior when values are missing
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:group name="arcModel">
<xs:sequence>
<xs:element ref="xlink:title" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:group>
What's wrong?
Upvotes: 4
Views: 3375
Reputation: 119
Problem is with xmlns:xlink="http://www.w3.org/1999/xlink"
Solution: Create and use binding.xjb:
<jxb:bindings version="2.0"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema" >
<jxb:bindings schemaLocation="http://www.w3.org/1999/xlink.xsd" node="/xs:schema">
<jxb:bindings node="//xs:attributeGroup[@name='locatorAttrs']">
<jxb:bindings node=".//xs:attribute[@ref='xlink:title']">
<jxb:property name="title1"/>
</jxb:bindings>
</jxb:bindings>
<jxb:bindings node="//xs:attributeGroup[@name='arcAttrs']">
<jxb:bindings node=".//xs:attribute[@ref='xlink:title']">
<jxb:property name="title2"/>
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>
</jxb:bindings>
Working ant task (build.xml and binding.xjb are in the same folder):
<xjc schema="${src.folder.xsd}\${src.file.xsd}" package="${src.package}" destdir="${src.folder}" binding="binding.xjb">
<produces dir="${src.folder}\${src.package}" includes="**/*.java" />
</xjc>
Upvotes: 6