使用Maven插件从XSD生成HTML文档

使用Maven插件从XSD生成HTML文档,html,jaxb,xsd,documentation,maven-plugin,Html,Jaxb,Xsd,Documentation,Maven Plugin,经过几天的搜索,我还没有找到一个像样的HTML生成器,可以用作Maven报告插件。我尝试过使用JAXB和Javadoc,但这并不是一个干净的解决方案,因为它迫使我使用JAXB-Javadoc标记,更糟糕的是,它迫使我复制已经存在的文档 我的评论如下: <xs:annotation> <xs:documentation>My comments</xs:documentation> </xs:annotation> 我的评论 如果可以避免的话

经过几天的搜索,我还没有找到一个像样的HTML生成器,可以用作Maven报告插件。我尝试过使用JAXB和Javadoc,但这并不是一个干净的解决方案,因为它迫使我使用JAXB-Javadoc标记,更糟糕的是,它迫使我复制已经存在的文档

我的评论如下:

<xs:annotation>
  <xs:documentation>My comments</xs:documentation>
</xs:annotation>

我的评论
如果可以避免的话,我宁愿不使用
标记

我不想在特定的机器上安装工具/应用程序来生成HTML。我愿意使用JAXB和Javadoc方法作为最后的努力,但它不会收集评论,除非它们被标记为:

<xs:annotation>
  <xs:appinfo>
    <jxb:class> <!-- Or :property -->
      <jxb:javadoc>My comments</jxb:javadoc>
    </jxb:class>
  <xs:appinfo>
</xs:annotation>

我的评论
这很难看,而且似乎对XSD组不起作用(我已经尝试了

有没有Maven reporting插件可以帮我做到这一点?我也愿意使用Xalan或其他一些转换框架(只要是通过Maven),但我自己并不热衷于创建样式表

有什么建议吗

我想要的是简单地将XML模式元素抽象为消息,这通常是RESTful WS的情况(例如)。生成HTML文档,允许应用程序开发人员、外行和业务开发人员共享一个公共知识库来理解协议或API。这些人都对XML模式(目标、QName、名称空间等)的细节不感兴趣,他们只想知道:

  • 请求X看起来像什么(XML元素)
  • 我可以/必须设置哪些字段(最大值/最小值)
  • 有哪些信息可用于回复Y
  • 对于受限字段,允许哪些枚举值
Javadoc在回答这些问题上走了很长的路,但是为了让JAXB接受它,XSD必须以某种方式进行标记(使用appinfo标记),并且用JAXB名称空间污染原始XSD。顺便说一下,我从XSD中生成C、C++和java绑定,所以XSD是主文档。 WADL不太符合这里的要求,因为即使这样也太技术化了,它的用途主要是供机器使用,而不是供人使用

除了可能在生成的HTML中更改颜色模式外,我还很困惑地了解到,没有一个完整的解决方案来解决这个问题。几乎所有这些都需要某种本地安装(除了我现在使用的JAXB和javadocmaven插件),这与Maven的可移植构建概念背道而驰。我工作过的所有组织要么与JAXB/Javadoc和解,要么simple开发了自己的转换工具来生成HTML。

您是否看到: ?

它可以满足您的所有需求:

  • 它生成一流的HTML文档(单文件和框架多文件) 通过任意数量的任意复杂度的XML模式
  • 它还可以在RTF中生成相同的文档
  • 它在生成的文档中插入在XML模式中找到的所有注释/注释(甚至包括使用XHTML预格式化的注释/注释,这些注释/注释可以在HTML和RTF输出中呈现)
  • 它确实有一个Maven插件
  • 它出现在Google中与XMLSchema/XSD文档生成器相关的每个搜索查询的第一页上
  • 甚至还有一个支持论坛,您可以在论坛上提出任何具体问题,并在当天收到答复:
那么,这一切有什么不对

顺便说一句,如果你不想付钱,你可以免费使用。并非所有功能都可用,但是Maven插件可以工作

我也愿意使用Xalan或其他一些转换框架(只要是通过Maven),但我自己并不热衷于创建样式表

我建议看一下这些线索:

  • --全面讨论这一问题;除了上面提到的所有内容之外,没有什么可以补充的
  • --奇怪的问题,但回答正确
  • --在这里,XML模式专家(Michael Kay)还建议“使用XSLT处理原始模式文档很困难,因为在XSD中编写相同内容的方法太多了”

  • 是的,我以前确实看到过它,但出于两个原因放弃了它:它需要本地安装,生成的HTML(尽管可以自定义)有点太技术化,甚至比Javadoc更技术化。否则,我肯定我会把它用于其他目的。但我非常感谢您提供的提示和och链接;非常好的阅读。虽然我没有放弃,但是我在如何使用模板方面遇到了更多的问题。这不可能是简单的。DocFlex/XML-XSDDoc是一种通用的XML模式docgen,它涵盖了任何可以想象的XML模式,即使最终的XML模式是由大量定义(或重新定义)数千个组件的XSD文件组成的。此时,某些XML模式可能非常复杂。(XSD本身是我所学过的最复杂的计算机语言之一!)但我们的XSDDoc可以定制得非常好,可以为特定任务生成用户友好的文档。请将您的问题直接发送到我们的联系电子邮件或支持论坛。这里不是进行此类讨论的好地方。关于模板,请阅读我在以下帖子中的回复:。这是关于我们产品的另一个方面,但原理是一样的。必须在模板设计器中编辑模板。另外,我建议看一下这个宣传片:谢谢,我会看的。关于XSD的复杂性,我完全同意你的看法。让我感到有点奇怪的是,考虑到使用XML/XSD的RESTful WSs的数量,应该有一个现成的HTML生成器Maven插件,例如,它只将complexType视为一条消息,并生成易于阅读的文档(没有混乱的名称空间、目标、QName等)。Laym