如何从WSDL生成* .xjb文件?

时间:2015-03-26 23:36:41

标签: jaxb wsdl wsdl2java xjc xjb

我有一个WSDL文件weatherservice.wsdl,我正在尝试使用xjc为此WSDL生成绑定。我如何使用xjc执行此操作?

我没有从xjc找到任何命令行参数。 xjc -p com -wsdl weatherservice.wsdl

3 个答案:

答案 0 :(得分:4)

通常我们创建一个带有.xjb扩展名的绑定文件来解决WSDL或模式中的任何冲突。例如,如果两个元素具有相同的名称,并且您想要区分它们,则可以通过将其指定为绑定文件来重命名。

以下是一个例子:

<jaxb:bindings 
    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"
    version="2.1">

    <jaxb:globalBindings generateIsSetMethod="true" fixedAttributeAsConstantProperty="true">
        <xjc:serializable uid="1" />
    </jaxb:globalBindings>

    <jaxb:bindings schemaLocation="abcd.xsd">
        <jaxb:bindings node="//xs:element[@name='Event']/xs:simpleType">
               <jaxb:typesafeEnumClass name="EventEnumType" />
        </jaxb:bindings>
   </jaxb:bindings>

</jaxb:bindings>

答案 1 :(得分:0)

下面的代码将保存为.xjb扩展,并将其添加到资源包中。 资源 - &gt; xjb文件夹 - &gt; binding.xjb

<bindings version="2.0" xmlns="http://java.sun.com/xml/ns/jaxb"
          xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
          xmlns:annox="http://annox.dev.java.net">

  <globalBindings>
    <xjc:simple/>
  </globalBindings>

</bindings>

答案 2 :(得分:0)

您可以通过Maven插件来做到这一点,该插件可以简化并简化操作。

这将需要一些XSD并应用XJB来生成Java类:

true
true
false
true
true
false

两个陷阱:

  1. 插件无法从执行配置中获取默认设置-必须在插件级别的配置中进行设置。
  2. 如果您在同一模块中对架构进行了一些测试,则需要将源添加到反应堆中。