gpt4 book ai didi

java - 如何使生成的类包含来自 XML 模式文档的 Javadoc

转载 作者:数据小太阳 更新时间:2023-10-29 02:32:42 24 4
gpt4 key购买 nike

我目前正在使用具有 <xsd:annotation> 的 XML 模式/<xsd:documentation>在大多数类型和元素上。当我从这个 XML 模式生成 Java Bean 时,这些 Bean 的 Javadoc 只包含一些关于类型/元素的允许内容的通用生成信息。

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

有什么办法可以实现吗?

编辑:此 XML 架构将在带有 JAX-WS 的 WSDL 中使用,因此此标记也可能适用。

编辑 2:我读过 <jxb:javadoc> .据我了解,我可以在单独的 JAXB 绑定(bind)文件中或直接在 XML 模式中指定。那几乎可以解决我的问题。但我宁愿使用现有的 <xsd:documentation>标记,因为 Javadoc 不是文档的主要目标(它主要是关于数据结构的信息,而不是关于从中生成的 Java Beans 的信息),并且允许非 JAXB 工具也访问这些信息。在 <jxb:javadoc> 中提供文档和 xsd:documentation> “感觉”不对,因为我无缘无故地复制数据(和工作)。

编辑 3:感谢 Pascal 的回答,我意识到我已经有了一半的解决方案:<xsd:documentation>complexType s 被写入其 Javadoc 的开头!问题仍然是只有 complexType使用 s 和 simpleType s(它也可以产生一个类)和元素仍然是无 Javadoc 的。

最佳答案

我从来没能得到规律的xsd:documentation除了当且仅当它是复杂类型外,将被放置在 java 源代码中。元素、简单类型的文档,等被忽略。

所以,我最终使用了 jxb:javadoc .为此,包括 xmlns:jxb="http://java.sun.com/xml/ns/jaxb" 的定义在你的<xsd:schema>元素。

将 child 添加到 <xsd:complexType><xsd: element><xsd:attribute> :

<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 是“类”或“属性”。

对于一个包裹,你写一个 child 到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:documentation 生成文档,但这并没有回答问题。

关于java - 如何使生成的类包含来自 XML 模式文档的 Javadoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2825444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com