Jaxb 使用绑定声明时,XJC生成的Java类缺少导入语句

Jaxb 使用绑定声明时,XJC生成的Java类缺少导入语句,jaxb,jaxb2,xjc,Jaxb,Jaxb2,Xjc,我试图使用XJC从XML模式和绑定文件生成Java类。绑定文件旨在生成InetAddress类型的成员,而不是生成的类中的字符串 我有以下资料: config.xsd 运行XJC后是否需要手动插入所需的导入语句?即使我以某种方式在绑定文件中指定了所需的包,也没有办法让XJC自动为我这样做吗? 注意:我实际上想使用我自己的适配器类来实现这一点,这样我就可以正确地处理InetAddress异常,但是这个例子使问题更容易提出,即使手动添加import语句后生成的代码不会编译,因为未处理UnknownH

我试图使用XJC从XML模式和绑定文件生成Java类。绑定文件旨在生成InetAddress类型的成员,而不是生成的类中的字符串

我有以下资料:

config.xsd 运行XJC后是否需要手动插入所需的导入语句?即使我以某种方式在绑定文件中指定了所需的包,也没有办法让XJC自动为我这样做吗?


注意:我实际上想使用我自己的适配器类来实现这一点,这样我就可以正确地处理InetAddress异常,但是这个例子使问题更容易提出,即使手动添加import语句后生成的代码不会编译,因为未处理UnknownHostException。

只需使用完全限定的类名即可。您不能指望XJC猜到您的意思是
java.net.InetAddress

谢谢。没想到它会猜到。
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:element name="config">
    <xsd:complexType>
        <xsd:all>
            <xsd:element name="ip" type="IPv4Address" />
        </xsd:all>
    </xsd:complexType>
</xsd:element>

<xsd:simpleType name="IPv4Address">
    <xsd:annotation>
        <xsd:documentation>
            IPv4 address in the dotted-decimal notation.
        </xsd:documentation>
    </xsd:annotation>

    <xsd:restriction base="xsd:string">
        <xsd:pattern value="((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])"/>
    </xsd:restriction>
</xsd:simpleType>
<?xml version="1.0"?>
<jxb:bindings version="2.0"
          xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc">
<jxb:bindings schemaLocation="config.xsd" node="/xsd:schema" >
    <jxb:globalBindings>
        <jxb:javaType name="InetAddress" xmlType="IPv4Address" parseMethod="InetAddress.getByName" printMethod="getHostAddress" />
    </jxb:globalBindings>
</jxb:bindings>
$ javac generated/Adapter1.java 
generated/Adapter1.java:14: error: cannot find symbol
    extends XmlAdapter<String, InetAddress>
                               ^
  symbol: class InetAddress