私はJavax Marshallerを使ってxmlを生成しています。私は、生成されたXML agaisnt XSDを検証する方法を探しています。私はこれを行うためにgradleのプラグインを見つけました。JavaでXSDに対して生成されたXMLを検証する最良の方法はありますか?
buildscript {
repositories {
\t jcenter()
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "gradle.plugin.com.github.ramonwirsch:fopRenderer:0.1.7"
}
}
apply plugin: "com.github.ramonwirsch.FopRenderer"
apply plugin: 'java'
apply plugin: 'eclipse'
sourceCompatibility=1.8
targetCompatibility=1.8
project.ext {
\t app_name='XSD-XML'
\t build_date=new Date().format("yyyyMMddHHmm")
\t release_number='R1.0'
\t rc_build="${System.env.BUILD_NUMBER}"//look for BUILD_NUMBER in env (set by Jenkins)
\t generatedSrcDir = file("$buildDir/generated-src") \t
\t jaxb_schema='src/main/resources/xsd'
\t jaxbTargetDir = generatedSrcDir
\t
}
repositories { \t
// removed corporate repository details for security
jcenter()
\t
}
configurations {
\t jaxb \t
}
dependencies {
\t // Needed to generate JAX binding code
\t jaxb 'com.sun.xml.bind:jaxb-xjc:2.2.4-1'
\t
}
def generatedResources = 'src/main/generated'
task jaxb(){
\t description 'Converts xsds to classes'
\t def jaxbTargetDir = file(generatedResources)
\t jaxbTargetDir.deleteDir()
\t
\t doLast {
\t \t jaxbTargetDir.mkdirs()
\t \t ant.taskdef(name: 'xjc', classname: 'com.sun.tools.xjc.XJCTask', classpath: configurations.jaxb.asPath)
\t \t ant.jaxbTargetDir = jaxbTargetDir
\t \t
\t \t ant.xjc(destdir: '${jaxbTargetDir}', package: 'com.pavan.xml.java.binding') {
\t \t \t \t schema(dir:'src/main/resources/xsd', includes: '*.xsd')
\t \t } \t \t
\t }
}
task generateSources(dependsOn: jaxb) {
\t description 'generates the resources defined by the external xsd\'s'
}
sourceSets {
\t main {
\t \t java {
\t \t \t srcDirs = ['src/main/java', 'src/main/generated']
\t \t }
\t }
}
compileJava.dependsOn jaxb
これを行うに任意のより良い方法があります:それは私のbuild.gradleファイルいくつかのエラーに
Could not resolve gradle.plugin.com.github.ramonwirsch:fopRenderer:0.1.7
を与えているので、しかし、私は、このプラグインを使用couldntの。私はこのリンクを経由していた What's the best way to validate an XML file against an XSD file?。答えのほとんどは2008年からのものですが、私はこれを行うために今より良い方法が利用できるかどうか不思議です。
build.gradleファイルを共有できますか? –
@IssamELATIFが私のbuild.gradleファイル – PKR