Mirth Connect和HL7 v3消息验证

时间:2013-06-26 11:56:37

标签: javascript xml mirth hl7-v3

我正在使用Mirth Connect(稳定版)为HL7v3创建接口。我已经创建了一个接收PRPA_IN201305UV02消息的接口。

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

所以,我试图对xsd文件实施验证。搜索了一个欢乐论坛,其中一位管理员将一个link发布到了一个用于xml验证的java库。

在我的频道源变换器中,我根据该链接编写了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验证的最佳方式吗?

谢谢

1 个答案:

答案 0 :(得分:0)

我找到了this回答

我将其转换为欢乐中的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());
}

您需要从here

下载JAXP(用于XML处理的Java API)

我希望它有助于其他人