在groovy中验证xml文档

问题描述 投票:0回答:1

我在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  )

我无法弄清楚我需要传递的StreamSource类型对象的转换或组合(XmlSlurper.parse的结果)来验证()

xml groovy xsd
1个回答
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))))
© www.soinside.com 2019 - 2024. All rights reserved.