javascript - Mirth Connect 和 HL7 v3 消息验证

标签 javascript xml mirth hl7-v3

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

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

所以,我正在尝试对 xsd 文件实现验证。搜索 mirth 论坛,其中一位管理员发布了 link到用于 xml 验证的 java 库。

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

谢谢

最佳答案

我找到了this回答

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

您需要从here下载JAXP(用于XML处理的Java API)

希望对其他人有帮助

关于javascript - Mirth Connect 和 HL7 v3 消息验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17319342/

相关文章:

shortcut - 如何在 Mirth 中加载静态数据,避免多次往返数据库

javascript - 用 ng-show 改变突然的 Angular

javascript - 如何在 Puppeteer 的 `await page.evaluate(indexTotal => {` 中使用我现有的函数 global.parseData(id, name, url)?

java - 在 Android 应用程序中每分钟重复启动动画

response - 如何在 mirth 中从另一个 channel 获得 Response

tcp - 无法收到 Mirth 的 Ack

javascript - 我可以只在一页上使用 jQuery replaceWith 吗?

javascript - 调用函数一次,然后 setInterval

android - 如何在样式 xml 中包含工具命名空间

java - 无法使用 jaxb 将 XML 持久保存到数据库