我正在使用 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:屏幕截图 我正在寻找XSD文件,该文件引用XSD文件包含' ST'定义。 如果我错了,请纠正我。
答案 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也看不到它问题 - 但是......
..在我们的系统中,我们终于确定了
如果我实施对其他协议或其他协议版本的支持,我会遵循类似的方法。加载一堆XSD并生成另一组可以在内存中表示它们的类,只是为了在代码编辑器中启用IntelliSense - 这不是我喜欢的实现决策