java - src-解析 : Cannot resolve the name 'ST' to a(n) 'type definition' component in HL7

标签 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 我写了一些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)“类型定义”组件。” PFA:屏幕截图enter image description here 我正在寻找 XSD 文件,该文件对 XSD 文件的引用包含“ST”定义。 如果我错了请纠正我。

最佳答案

数据类型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 消息的内容。段和字段的解释取决于另一个软件层,其中确定哪些消息是好的、哪些消息是坏的限制集是可配置的

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

关于java - src-解析 : Cannot resolve the name 'ST' to a(n) 'type definition' component in HL7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25379260/

相关文章:

java - "an Arbitrary Object of a Particular Type"在 Java 8 中意味着什么?

java - Gradle 构建失败

c# - 如何调用 XML api

xml - 如何在 XSD 中为多个元素重用复杂类型?

java - 将二维字符串数组保存在 .text 文件中并从中加载

java - 已编译的 JSP Java (*__jsp.java) 文件在哪里?

java - 不同的加密 Android 与纯 Java - RSA/ECB/OAEPWithMD5AndMGF1Padding

xml - 为什么微软匹配一个XSD xs :integer to a string when importing WSDL?

xml - XSD 1.1 xs :alternative/xs:assert

基于属性值的XML验证(不同的子标签)