小编use*_*702的帖子

使用导入的XSD和绑定生成JAXB类

我正在尝试从以下common.xsd哪些导入x.xsd和生成类y.xsd.

common.xsd 如下:

<?xml version="1.0"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:import namespace="mynamespace:x" schemaLocation="x.xsd"/>
    <xs:import namespace="mynamespace:y" schemaLocation="y.xsd"/>
</xs:schema>
Run Code Online (Sandbox Code Playgroud)

我尝试使用一个绑定文件,该文件指定了由生成的类实现的公共接口.我的绑定文件如下:

jaxb:extensionBindingPrefixes="inheritance" version="2.1">

<jaxb:globalBindings> 
    <jaxb:javaType name="java.lang.Long" xmlType="xsd:integer"/> 
</jaxb:globalBindings>

<jaxb:bindings schemaLocation="common.xsd" node="/xsd:schema">

    <jaxb:bindings node="xsd:complexType[@name='Customer']">
        <inheritance:implements>jaxb.BaseMessage</inheritance:implements>
        <jaxb:class />
    </jaxb:bindings>

    <jaxb:bindings node="xsd:complexType[@name='Payments']">
        <inheritance:implements>jaxb.BaseMessage</inheritance:implements>
        <jaxb:class />
    </jaxb:bindings>
Run Code Online (Sandbox Code Playgroud)

我试图生成代码,但它抱怨:

[ERROR] XPath evaluation of "xsd:complexType[@name='Customer']" results in empty target node
[ERROR] XPath evaluation of "xsd:complexType[@name='Payments']" results in empty target node
Run Code Online (Sandbox Code Playgroud)

如何定义绑定文件中的节点实际上是在各个外部XSD文件中但不在common.xsd

java xml binding xsd jaxb

11
推荐指数
1
解决办法
2万
查看次数

标签 统计

binding ×1

java ×1

jaxb ×1

xml ×1

xsd ×1