【问题标题】:XSD documentation as a part of build processXSD 文档作为构建过程的一部分
【发布时间】:2015-08-19 21:42:02
【问题描述】:

我有多个描述架构的 XSD 文件。作为构建过程的结果,我想生成一个人类可读的文档。

XSD 在存储库 (gitflow) 中进行维护和审查,提交文档会使存储库变得混乱。我想在构建过程中生成人类可读的 HTML(maven / gradle / ant build 或简单的 CLI 界面)

发现这个帖子How to convert xsd to human readable documentation?DocFlex/XML Maven plugin 看起来很有趣,但我不敢相信这是唯一的一个。

有什么有用的提示吗?

【问题讨论】:

  • 进一步研究:oxygen XML 有命令行工具:oxygenxml.com/doc/versions/17.0/ug-editor/#topics/…,可以生成所需的 HTML 文件。它仍然没有以任何方式与构建工具集成(所有手动工作)
  • 您应该将您的编辑添加为答案(并接受它),以便更轻松地查看此解决方案并知道您认为问题已得到解答和解决。
  • 谢谢小费。完毕! :)

标签: xml maven xsd


【解决方案1】:

我最终得到了包含在 gradle build 中的 Oxygen Editor schemaDocumentation.sh 脚本。

我的build.gradle 到目前为止看起来像这样 - 我怀疑它仍在进行中。它完成了它的工作,HTML 生成到build/generated-html 文件夹,但它需要在OXYGEN_HOME 浴缸中安装氧气(包括许可证)。我可能会在未来的某一天修复它

apply plugin: 'java'

version = "1.0-SNAPSHOT"

ext {
    generatedDir = new File(buildDir, "generated-html")
}

def OXYGEN_HOME = "/opt/java/oxygen"
def schemaFiles = ["page", "metadata"]

schemaFiles.each { pageName -> 
    task "${pageName}SchemaTask"(type: JavaExec) {
        mkdir generatedDir

        classpath = files([
            "$OXYGEN_HOME", 
            "$OXYGEN_HOME/classes", 
            "$OXYGEN_HOME/lib", 
            "$OXYGEN_HOME/lib/oxygen.jar", 
            "$OXYGEN_HOME/lib/oxygenDeveloper.jar", 
            "$OXYGEN_HOME/lib/fop.jar", 
            "$OXYGEN_HOME/lib/xmlgraphics-commons-1.5.jar", 
            "$OXYGEN_HOME/lib/batik-all-1.7.jar", 
            "$OXYGEN_HOME/lib/xercesImpl.jar", 
            "$OXYGEN_HOME/lib/xml-apis.jar", 
            "$OXYGEN_HOME/lib/org.eclipse.wst.xml.xpath2.processor_1.2.0.jar", 
            "$OXYGEN_HOME/lib/icu4j.jar", 
            "$OXYGEN_HOME/lib/saxon.jar", 
            "$OXYGEN_HOME/lib/saxon9ee.jar", 
            "$OXYGEN_HOME/lib/log4j.jar", 
            "$OXYGEN_HOME/lib/resolver.jar", 
            "$OXYGEN_HOME/lib/oxygen-emf.jar", 
            "$OXYGEN_HOME/lib/commons-httpclient-3.1.jar", 
            "$OXYGEN_HOME/lib/commons-codec-1.3.jar", 
            "$OXYGEN_HOME/lib/commons-logging-1.0.4.jar", 
            "$OXYGEN_HOME/lib/httpcore-4.3.2.jar", 
            "$OXYGEN_HOME/lib/httpclient-cache-4.3.5.jar", 
            "$OXYGEN_HOME/lib/httpclient-4.3.5.jar", 
            "$OXYGEN_HOME/lib/fluent-hc-4.3.5.jar", 
            "$OXYGEN_HOME/lib/httpmime-4.3.5.jar", 
            "$OXYGEN_HOME/lib/commons-logging-1.1.3.jar", 
            "$OXYGEN_HOME/lib/commons-codec-1.6.jar"
        ].toList())
        main = 'ro.sync.xsd.documentation.XSDSchemaDocumentationGenerator'  
        jvmArgs = ["-Djava.awt.headless=true"]
        args = ["schema/${pageName}.xsd", "-format:html", "-split:location", "-out:$generatedDir/${pageName}.html"] 
    }   
}

task schema(dependsOn: tasks.matching { Task task -> task.name.endsWith("SchemaTask")}) {
}

defaultTasks 'schema'

我在这篇文章http://jakub.marchwicki.pl/posts/2015/08/26/get-your-xsd-docs-as-build-process/中记录了在构建过程中从 XSD 构建文档的整个方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    • 2013-11-09
    • 1970-01-01
    相关资源
    最近更新 更多