JAXB:从绑定文件

时间:2018-09-24 17:54:48

标签: java xml jaxb

我有一个Maven项目,其中有我的src/main/java文件夹和我的src/main/resources文件夹。在资源下,放置了xsd文件和以下jxb文件。计划是在我运行maven generate-sources以及xjc目标来生成类本身时,根据绑定文件创建javadoc注释。这些类已成功生成,但是在xsd文件中记录了文档标记的内容(我不想要,我希望从jxb文件获得javadoc注释)。

这是jxb文件:

<jxb:bindings version="1.0" xmlns:jxb="https://java.sun.com/xml/ns/jaxb" xmlns:xsd="https://www.w3.org/2001/XMLSchema" ?>
    <jxb:bindings schemaLocation="mySchema.xsd" node="//xsd:schema">
        <jxb:bindings node="//xsd:complexType[@name='MyType']">
            <jxb:class name="MyType">
                <jxb:javadoc>MY DOCS</jxb:javadoc>
            </jxb:class>
        </jxb:bindings>
    </jxb:bindings>
</jxb:bindings>

没有任何错误,但是将生成类,就像没有绑定文件一样。

2 个答案:

答案 0 :(得分:0)

请参见Customizing JAXB Bindings

<javadoc>标签必须位于<package><class><property><typesafeEnumClass><typesafeEnumMember>标签内。

链接文档中的示例(内联绑定声明):

<xsd:complexType name="PurchaseOrderType">
   <xsd:annotation>
      <xsd:appinfo>
         <jxb:class name="POType">
            <jxb:javadoc>
            A &lt;b>Purchase Order&lt;/b> consists of 
addresses and items.
            </jxb:javadoc>
         </jxb:class>
      </xsd:appinfo>
   </xsd:annotation>
   .
   .
   .
</xsd:complexType> 

答案 1 :(得分:0)

最后,我找到了解决方案。除了文件本身的一个小错误(我必须使用http而不是http s 作为名称空间)之外,真正的问题是文件扩展名。 jaxb maven插件搜索jxb个文件,我的扩展名为SELECT * FROM ATable WHERE CONTAINS(Description, @Description)