XSD 文档作为构建过程的一部分
XSD documentation as a part of build process
我有多个 XSD 描述模式的文件。作为构建过程的结果,我想生成一个人类可读的文档。
XSD 在存储库 (gitflow) 中进行维护和审查,提交文档会使存储库变得混乱。我想在构建过程中生成人类可读的 HTML(maven / gradle / ant build 或简单的 CLI 界面)
发现这个 post How to convert xsd to human readable documentation? and DocFlex/XML Maven plugin 看起来很有趣,但我不敢相信这是唯一的。
有什么有用的提示吗?
我最终得到了包含在 gradle 构建中的 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'
我已经在 post http://jakub.marchwicki.pl/posts/2015/08/26/get-your-xsd-docs-as-build-process/
的构建过程中记录了从 XSD 构建文档的整个方法
我有多个 XSD 描述模式的文件。作为构建过程的结果,我想生成一个人类可读的文档。
XSD 在存储库 (gitflow) 中进行维护和审查,提交文档会使存储库变得混乱。我想在构建过程中生成人类可读的 HTML(maven / gradle / ant build 或简单的 CLI 界面)
发现这个 post How to convert xsd to human readable documentation? and DocFlex/XML Maven plugin 看起来很有趣,但我不敢相信这是唯一的。
有什么有用的提示吗?
我最终得到了包含在 gradle 构建中的 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'
我已经在 post http://jakub.marchwicki.pl/posts/2015/08/26/get-your-xsd-docs-as-build-process/
的构建过程中记录了从 XSD 构建文档的整个方法