1
我知道这个问题已经在这里被问到过,但是他们没有一个正在询问我在找什么。在soapui验证XML对XSD
我想知道如何通过groovy脚本对XSD
模式文件验证RESTful
服务响应(application/xml)。是的,我的本地磁盘上有xsd文件,但似乎无法理解如何提供响应作为输入以供验证?
我创建了一个示例,但缺少一个关键部分。任何人都可以帮助吗?
import com.eviware.soapui.support.XmlHolder
import javax.xml.XMLConstants
import javax.xml.transform.stream.StreamSource
import javax.xml.validation.*
// setup validator
Validator validator;
def url = 'C:\\Documents and Settings\\schema\\sclBase.xsd'
log.info url
URI uri = new URI(url);
InputStream inp = uri.toURL().openStream();
try
{
SchemaFactory factory =
SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
StreamSource entitySs = new StreamSource(inp);
Schema schema = factory.newSchema(entitySs);
assert(schema != null);
validator = schema.newValidator();
def response = new XmlHolder(messageExchange.responseContentAsXml)
log.info response
validator.validate(new StreamSource(new StringReader(response)))
}
finally
{
inp.close();
inp = null;
}
我在这里得到的错误是“ - >在不透明的部分非法字符索引2:C:\ Documents和Settings \架构\ sclBase.xsd”
但是我们在哪里使用'response'变量?我用这个脚本,它给了我错误'“ - > src-resolve:无法解析名称tns:id到一个(n)'元素声明'组件'' – Amrit
对不起,你的问题真的_”我如何得到响应成一个字符串“_? –
现在你说你得到的错误似乎表明你的'xsd'错误# –