2013-06-26 33 views
1

我正在使用欢乐连接(稳定版本)为HL7v3创建接口。我创建了一个接口来接收PRPA_IN201305UV02消息。欢乐连接和HL7 v3消息验证

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

所以,我想实现对xsd文件的验证。搜索欢乐论坛之一的管理员发布link到一个Java库进行xml验证。

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

谢谢

+0

作为一个脱离主题,“_Unofficial Mirth Connect v3.0开发人员指南_”(可在mirthconnect.isarp.com上查到)描述了XML模式和schematron验证。除此之外,您可以参考“_ HL7v3基础知识_非官方开发指南”(hl7.isarp.com),了解您可以通过这些工具实现的验证级别。 – Shamil

回答

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)

我希望它可以帮助别人