gpt4 book ai didi

java - 如何使生成的类包含 XML Schema 文档中的 Javadoc

转载 作者:IT老高 更新时间:2023-10-28 20:41:31 26 4
gpt4 key购买 nike

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

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

有什么办法可以做到吗?

编辑:此 XML Schema 将在带有 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 Schema 文档中的 Javadoc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1650249/

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