所以我为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,我会感激一些帮助!感谢。
答案 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文件。