JAXB外部绑定文件错误

时间:2016-06-21 17:54:59

标签: java binding jaxb external

所以我为waterml2.xsd编写了一个外部绑定文件,到目前为止已经修复了[Error]属性“Rows”已经定义,[Error]属性“Title”已经定义。

在解决这些问题后,我现在遇到了多个处理碰撞的问题。例如:

  

[ERROR]具有相同名称的类/接口   “net.opengis.gml._3.SecondDefiningParameter”已在使用中。用一个   用于解决此冲突的类自定义。

     

[错误]两个声明导致ObjectFactory类发生冲突。

这就是绑定文件的样子:

<bindings xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">
<!-- In geometryPrimitives.xsd, fix so element and attribute both with name "rows" don't conflict -->
<bindings schemaLocation="http://schemas.opengis.net/gml/3.2.1/geometryPrimitives.xsd" version="3.2.1.2">
<bindings node="//xs:group/xs:sequence/xs:element[@name='rows']">
<property name="rowsElement"/>
</bindings>
</bindings>
<!-- In xlink.xsd, fix so element and attributes don't have the same "titles" conflict -->
<bindings schemaLocation="http://www.w3.org/1999/xlink.xsd" node="/xs:schema">
<schemaBindings>
<package name="net.opengis.wfs._2_1"/>
</schemaBindings>
</bindings>
<bindings schemaLocation="http://www.w3.org/1999/xlink.xsd" node="/xs:schema">
<bindings node="//xs:attributeGroup[@name='locatorAttrs']">
<bindings node=".//xs:attribute[@ref='xlink:title']">
<property name="LocatorAttrsTitle"/>
</bindings>
</bindings>
<bindings node="//xs:group[@name='locatorModel']">
<bindings node=".//xs:element[@ref='xlink:title']">
<property name="LocatorModelTitle"/>
</bindings>
</bindings>
<bindings node="//xs:attributeGroup[@name='arcAttrs']">
<bindings node=".//xs:attribute[@ref='xlink:title']">
<property name="ArcAttrsTitle"/>
</bindings>
</bindings>
<bindings node="//xs:group[@name='arcModel']">
<bindings node=".//xs:element[@ref='xlink:title']">
<property name="ArcModelTitle"/>
</bindings>
</bindings>
</bindings>
</bindings>

如果有人有任何建议或已经处理过WaterML 2.0 Schema,我会感激一些帮助!感谢。

1 个答案:

答案 0 :(得分:0)

OGC模式需要一些额外的绑定信息才能正确运行JAXB。依靠https://github.com/highsource/ogc-schemas的辛勤工作,你会好得多。

要使用高源绑定,最好只是克隆存储库并使用maven来构建绑定(在这个项目中有很好的maven构建支持)。即

git clone https://github.com/highsource/ogc-schemas.git
mvn install –D skipTests

我跳过了测试以加快速度,我遇到了一个测试失败的问题。

您也可以将基本pom.xml导入Eclipse(或您使用的任何IDE)并让maven构建完成。

一旦构建完成,您应该在相关文件夹下结束绑定。例如。 WaterML2.0:

ls waterml/2.0/target/generated-sources/xjc/net/opengis/waterml/v_2_0/

CategoricalTVPType.java
CategoricalTimeseriesType.java
CollectionPropertyType.java
CollectionType.java
CommentBlockPropertyType.java
and so on..

目标/ classes文件夹中有一个XJB文件。