如何将 null 命名空间映射到特定包?
How can I map null namespace to a specific package?
我正在尝试使用 org.jvnet.jaxb2.maven2:maven-jaxb2-plugin
.
编译一堆 XSD
我像这样将命名空间映射到包。
<jaxb:bindings namespace="urn:some:a" schemaLocation="../xsd/a.xsd">
<jaxb:schemaBindings>
<jaxb:package name="some.a"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<jaxb:bindings namespace="urn:some:b" schemaLocation="../xsd/b.xsd">
<jaxb:schemaBindings>
<jaxb:package name="some.b"/>
</jaxb:schemaBindings>
</jaxb:bindings>
问题是 c.xsd
不在任何命名空间中。它实际上编译成 generated
包。
我很害怕,
<jaxb:bindings namespace="" schemaLocation="../xsd/c.xsd">
<jaxb:schemaBindings>
<jaxb:package name="some"/>
</jaxb:schemaBindings>
</jaxb:bindings>
而且它不起作用。
我该怎么做?
更新
Woo,xjc 工具文档说...
If no targetNamespace
is declared, then use a hard coded package named generated
.
Woo, xjc tool doc is saying...
If no targetNamespace
is declared, then use a hard coded package named generated
.
仅当未使用 jaxb:package
自定义时,请参阅 com.sun.tools.xjc.reader.xmlschema.ClassSelector。
实际上,以下自定义应该有效:
<jaxb:bindings schemaLocation="../xsd/c.xsd">
<jaxb:schemaBindings>
<jaxb:package name="some"/>
</jaxb:schemaBindings>
</jaxb:bindings>
您不需要 namespace
jaxb:bindings
。
这是 test project which demonstrates exactly that.
免责声明: 我是 maven-jaxb2-plugin.
的作者
我正在尝试使用 org.jvnet.jaxb2.maven2:maven-jaxb2-plugin
.
我像这样将命名空间映射到包。
<jaxb:bindings namespace="urn:some:a" schemaLocation="../xsd/a.xsd">
<jaxb:schemaBindings>
<jaxb:package name="some.a"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<jaxb:bindings namespace="urn:some:b" schemaLocation="../xsd/b.xsd">
<jaxb:schemaBindings>
<jaxb:package name="some.b"/>
</jaxb:schemaBindings>
</jaxb:bindings>
问题是 c.xsd
不在任何命名空间中。它实际上编译成 generated
包。
我很害怕,
<jaxb:bindings namespace="" schemaLocation="../xsd/c.xsd">
<jaxb:schemaBindings>
<jaxb:package name="some"/>
</jaxb:schemaBindings>
</jaxb:bindings>
而且它不起作用。
我该怎么做?
更新
Woo,xjc 工具文档说...
If no
targetNamespace
is declared, then use a hard coded package namedgenerated
.
Woo, xjc tool doc is saying...
If no
targetNamespace
is declared, then use a hard coded package namedgenerated
.
仅当未使用 jaxb:package
自定义时,请参阅 com.sun.tools.xjc.reader.xmlschema.ClassSelector。
实际上,以下自定义应该有效:
<jaxb:bindings schemaLocation="../xsd/c.xsd">
<jaxb:schemaBindings>
<jaxb:package name="some"/>
</jaxb:schemaBindings>
</jaxb:bindings>
您不需要 namespace
jaxb:bindings
。
这是 test project which demonstrates exactly that.
免责声明: 我是 maven-jaxb2-plugin.
的作者