如何使生成的类包含来自XML Schema文档的Javadoc

前端之家收集整理的这篇文章主要介绍了如何使生成的类包含来自XML Schema文档的Javadoc前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前使用的XML模式有< xsd:annotation> /< xsd:documentation>对大多数类型和元素。当我从这个XML模式生成Java Bean时,那些Bean的Javadoc仅包含一些关于type / element的允许内容的通用生成信息。

我想查看< xsd:documentation>的内容标记(例如,complextType的该标记内容应该显示在为生成的表示该complexType的类的Javadoc中)。

有什么办法实现这个吗?

编辑:此XML模式将在与JAX-WS的WSDL中使用,因此此标记也可能适合。

编辑2:我已阅读有关< jxb:javadoc&gt ;.从我的理解,我可以在单独的JAXB绑定文件中或直接在XML模式中指定。这几乎可以解决我的问题。但我宁愿使用现有的< xsd:documentation>标签,因为Javadoc不是文档的主要目标(它主要是关于数据结构的信息,而不是关于从其生成的Java Bean),并允许非JAXB工具访问信息。在< jxb:javadoc>和xsd:documentation> “感觉”错了,因为我复制数据(和工作)没有好的理由。

编辑3:感谢Pascal的答案,我意识到我已经有一半的解决方案:< xsd:documentation>的complexTypes写入其Javadoc的开头!问题仍然是,只使用complexTypes和simpleTypes(这也可以导致一个类)和元素仍然是Javadoc-less。

我从来没有能够得到定期xsd:文档放置在java源,除非,如果它是一个复杂类型。元素,简单类型,
等被忽略。

所以,我最终使用jxb:javadoc。为此,请在< xsd:schema>中包含xmlns的定义:jxb =“http://java.sun.com/xml/ns/jaxb”元件。

将子项添加到< xsd:complexType>或< xsd:element>或< xsd:attribute&gt ;:

<xsd:annotation><xsd:appinfo><jxb:XXX><jxb:javadoc>
  This is my comment for a class/property
</jxb:javadoc></jxb:XXX></xsd:appinfo></xsd:annotation>

其中XXX是“类”或“属性”。

对于包你写一个孩子到xsd:schema

<xsd:annotation><xsd:appinfo><jxb:schemaBindings><jxb:package name="com.acme"><jxb:javadoc>
  This is my comment for a package
</jxb:javadoc></jxb:package></jxb:schemaBindings></xsd:appinfo></xsd:annotation>

编写HTML文档需要使用<![CDATA [---]]& (编辑:在写我的答案,该问题已经由OP编辑,因此我更新它相应) 在我的例子中,javadoc是唯一的目标,所以可以接受使用jxb:javadoc。但你的更新是完全有道理的,实际上,我完全同意你。可悲的是,我从来没有找到一个理想的解决方案,你所描述的情况(所以我会非常仔细地跟踪这个问题)。也许你可以使用像xframe从xsd:文档生成文档,但这不回答这个问题。

猜你在找的XML相关文章