Javascript Mirth Connect和HL7 v3消息验证

Javascript Mirth Connect和HL7 v3消息验证,javascript,xml,mirth,hl7-v3,Javascript,Xml,Mirth,Hl7 V3,我正在使用Mirth Connect(稳定版本)为HL7v3创建接口。我已经创建了一个接口来接收2013年05月UV02消息中的PRPA_ 此时,我想对传入的XML消息进行某种验证。经过一些搜索,我发现HL7有模式文件(xsd)来验证消息的正确性 因此,我试图针对xsd文件实现验证。其中一位管理员在一个java库中发布了一个用于xml验证的链接 在我的channel source transformer中,我基于该链接编写了javascript // parse an XML document

我正在使用Mirth Connect(稳定版本)为HL7v3创建接口。我已经创建了一个接口来接收2013年05月UV02消息中的PRPA_

此时,我想对传入的XML消息进行某种验证。经过一些搜索,我发现HL7有模式文件(xsd)来验证消息的正确性

因此,我试图针对xsd文件实现验证。其中一位管理员在一个java库中发布了一个用于xml验证的链接

在我的channel source transformer中,我基于该链接编写了javascript

// parse an XML document into a DOM tree
var parser = Packages.javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();
var document = parser.parse(msg);
最后一行代码是在我收到消息时给我一个错误

Wrapped java.net.MalformedURLException: no protocol
我也试过了

var document = parser.parse(messageObject.getRawData());
但我也犯了同样的错误

这里少了什么? 这是在Mirth Connect上进行XML验证的最佳方法吗

谢谢

我找到了答案

我在欢笑中把它转换成Javascript

var schemaFile = new Packages.java.io.File("C:\\schema.xsd");
var url = new Packages.java.net.URL("file:C:\\input.xml");
var xmlFile = new Packages.javax.xml.transform.stream.StreamSource(url);
var schemaFactory = Packages.javax.xml.validation.SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
var schema = schemaFactory.newSchema(schemaFile);

var validator = schema.newValidator();

try {
    validator.validate(xmlFile);
    logger.info('valid');
} catch (err) {
    logger.error(err.toString());
}
您需要从下载JAXP(用于XML处理的JavaAPI)

我希望它能帮助其他人

作为一个离题主题,“非正式的Mirth Connect v3.0开发者指南”(可在mirthconnect.isarp.com上获得)描述了XML模式和schematron验证。除此之外,您还可以阅读“HL7v3基础知识非官方开发人员指南”(hl7.isarp.com),了解这些工具可以达到何种验证级别。