我在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的结果)来验证()
这对我有用。
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))))