我在Groovy中有一个xml对象。当我到达它时,它已经被解析了
def doc = new XmlSlurper().parse('sample.xml')
我想针对XSD进行验证
但是在示例代码中,涉及到以字符串或文件形式显示的xml
def xsdLocation = 'defn.xsd'
SchemaFactory.newInstance( XMLConstants.W3C_XML_SCHEMA_NS_URI)
.newSchema( new File(xsdLocation))
.newValidator()
.validate( doc )
我无法弄清楚我需要传递什么(Streams类型对象的转换或组合)(XmlSlurper.parse的结果)来验证()
答案 0 :(得分:0)
这对我有用。
import groovy.xml.XmlUtil
def doc = new XmlSlurper().parse('sample.xml')
def xsdLocation = 'defn.xsd'
SchemaFactory.newInstance( XMLConstants.W3C_XML_SCHEMA_NS_URI)
.newSchema( new File(xsdLocation))
.newValidator()
.validate(new StreamSource(new StringReader( XmlUtil.serialize(doc))))