我正在使用 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/