src-resolve:无法解析名称' ST'到(n)'类型定义' HL7中的组件

时间:2014-08-19 08:52:22

标签: java xsd xsd-validation hl7

我正在使用 HL7版本2.7.1 。 我从hl7网站下载了相应的XSD(总共197个XSD号码)。 链接:http://www.hl7.org/documentcenter/private/standards/V271/HL7-xml%20v2.7.1.zip 我写了一些试图将模式分配给Schema对象的java代码,模式给了我错误。 错误是: src-resolve:无法解析名称' ST'到(n)'类型定义'成分

        /**
 * Validating XML with XSD
 * @param inputXml
 * @param schemaLocation
 * @return returns validation true/false 
 * @throws SAXException
 */
public boolean isValidXML(String inputXml, String schemaLocation)
        throws SAXException {
    // build the schema
    SchemaFactory factory = SchemaFactory
            .newInstance("http://www.w3.org/2001/XMLSchema");
    File schemaFile = new File(schemaLocation);
    Schema schema = null;
    Validator validator = null;
    try {
        //TODO: Failed in this line. schema = factory.newSchema(schemaFile);
        schema = factory.newSchema(schemaFile);
        validator = schema.newValidator();

之后我在oXygen XML Editor上检查架构并得到相同的错误。 " src-resolve:无法解析名称' ST'到(n)'类型定义' 。组分#&34; PFA:屏幕截图enter image description here 我正在寻找XSD文件,该文件引用XSD文件包含' ST'定义。 如果我错了,请纠正我。

1 个答案:

答案 0 :(得分:0)

数据类型 ST 是“字符串”。您可以在所有HL7规范中找到它的定义(供您使用),例如:在Health Level Seven, Version 2.3.1 © 1999 (online PDF)

中的“2.8数据类型”一章中

在XSD文档中,所有数据类型定义都应该在文件datatypes.xsd

我记得架构中存在一些错误,并且我还尝试使用Version 2 v2.xml XML Schemas for HL7 Version 2.5 and earlier (Sun_HL7v2xsd.zip),其中错误较少,但只有2.5.1版本的定义

我不确定您的用例究竟是什么,您需要做什么,需要与哪些系统进行交互以及您已经拥有的代码库等等,因为即使您的其他HL7也看不到它问题 - 但是......

..在我们的系统中,我们终于确定了

  • 不使用模式强制执行的强类型语法,因为我们连接的几个系统并不完全遵循它们
  • 流经我们系统的大多数消息都在HL7 v2.3,v2.3.1中,在HL7 v2.5中很少(同时支持所有必须
  • 我们使用简单的通用解析器,它可以解析几乎任何看起来像二进制HL7消息的东西。段和字段的解释取决于另一个软件层,其中一组限制确定哪些消息是好的以及哪些消息是坏的 - 是可配置的

如果我实施对其他协议或其他协议版本的支持,我会遵循类似的方法。加载一堆XSD并生成另一组可以在内存中表示它们的类,只是为了在代码编辑器中启用IntelliSense - 这不是我喜欢的实现决策