相关疑难解决方法(0)

使用选项"-Xinject-code -extension"使用XJC + xsd + jxb插入代码

林"试图使用扩展'-Xinject码’XJC一些代码添加到我的生成的类.对于以下简单的xsd架构......

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="MyList" >
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="MyItem" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="MyItem">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="id" type="xs:int"/>
        <xs:element name="name" type="xs:string"/>
      </xs:sequence>
   </xs:complexType>
  </xs:element>

</xs:schema>
Run Code Online (Sandbox Code Playgroud)

..我已经关联了以下绑定:

<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings 
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:ci="http://jaxb.dev.java.net/plugin/code-injector"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
jxb:extensionBindingPrefixes="ci "
jxb:version="2.1"
>

<jxb:bindings schemaLocation="test.xsd">
    <jxb:bindings node="/xs:schema/xs:element[@name='MyItem']">
        <ci:code>
            @Override
            public String toString() { return this.getName();}
        </ci:code>
    </jxb:bindings>
</jxb:bindings>

</jxb:bindings>
Run Code Online (Sandbox Code Playgroud)

运行xjc会产生以下输出:

$ xjc -target 2.1 -verbose -Xinject-code -extension -d . -p generated -b test.jxb test.xsd …
Run Code Online (Sandbox Code Playgroud)

java jaxb xjc extending

7
推荐指数
1
解决办法
4798
查看次数

如何在jaxws中使用wsimport生成equals()和hashcode()方法

我使用wsimport的WSDL生成的类没有equals()hashcode()方法.如何自定义和生成客户端类以获取equals()hashcode()方法.

我不确定使用JAXB来实现这一点.

在Axis2.0生成的存根中生成了这些方法,但不确定为什么JAXWS中没有这样的基本功能!

jax-ws jaxb

6
推荐指数
1
解决办法
8636
查看次数

标签 统计

jaxb ×2

extending ×1

java ×1

jax-ws ×1

xjc ×1