1

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

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

因此,我正在尝试针对 xsd 文件实施验证。搜索 mirth 论坛,其中一位管理员发布了一个指向用于 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 验证的最佳方式吗?

谢谢

4

1 回答 1

0

我找到了这个答案

我在 Mirth 中将其转换为 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 处理的 Java API)

我希望它可以帮助别人

于 2013-07-30T11:38:42.583 回答