src-resolve: не удается преобразовать имя «ST» в компонент «определение типа» (n) в HL7.

Я работаю с HL7 версии 2.7.1. Я скачал соответствующие XSD (всего 197 номеров XSD) с сайта hl7. Ссылка: 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();

После этого я проверяю схему в XML-редакторе oXygen и получаю ту же ошибку. «src-resolve: не удается преобразовать имя «ST» в компонент «определение типа» (n)». PFA: снимок экранавведите здесь описание изображенияЯ ищу файл XSD, ссылка на файл XSD которого содержит 'ST ' определение. Если я ошибаюсь, поправьте меня.


person user1321939    schedule 19.08.2014    source источник


Ответы (1)


Тип данных ST — "строка". Вы можете найти его определение (для вашего использования) во всех спецификациях HL7, например. в главе «2.8 ТИПЫ ДАННЫХ» в Health Level Seven, Version 2.3.1 © 1999 (онлайн PDF)< /а>

В документах XSD все определения типов данных должны находиться в файле datatypes.xsd

Я помню, что в схеме были некоторые ошибки, и я также пытался использовать Версия 2 v2.xml XML-схемы для HL7 версии 2.5 и более ранних версий (Sun_HL7v2xsd.zip), где было меньше ошибок, но только определения до версии 2.5.1

Я не уверен, каков именно ваш вариант использования, что именно вам нужно уметь делать, с какими системами вам нужно взаимодействовать, какая кодовая база у вас уже есть и т. д., поскольку это не видно даже из других ваших вопросов HL7, но ..

..в нашей системе мы окончательно остановились на

  • не использовать строго типизированную грамматику, навязываемую схемами, поскольку несколько систем, с которыми мы взаимодействуем, не совсем им следуют
  • большинство сообщений, проходящих через наши системы, относятся к HL7 v2.3, v2.3.1 и очень немногие — к HL7 v2.5 (все они ДОЛЖНЫ поддерживаться одновременно)
  • мы используем простой общий синтаксический анализатор, который может анализировать почти все, что выглядит как двоичное сообщение HL7. Интерпретация сегментов и полей зависит от другого уровня программного обеспечения, где можно настроить набор ограничений, определяющих, какие сообщения являются хорошими, а какие плохими.

Если бы я реализовал поддержку другого протокола или другой версии протокола, я бы придерживался аналогичного подхода. Загрузка набора XSD и создание другого набора классов, которые могут представлять их в памяти, только для включения IntelliSense в редакторе кода - не было бы моим предпочтительным решением реализации

person xmojmr    schedule 21.08.2014
comment
Большое спасибо. Я пытаюсь преобразовать сообщение HL7 v2.7.1 в XML с помощью кода Java, я могу преобразовать их в XML. После преобразования для проверки нужны соответствующие XSD для проверки XML. Для других версий (до 2.6 с использованием того же подхода, о котором вы упоминали), но этот парсер не поддерживает версию 2.7.1. - person user1321939; 21.08.2014
comment
@ user1321939 Извините, у меня нет для вас лучшего ответа. Мне пришлось бы искать лучший ответ с помощью Google (например, это :) Неужели надо поддерживать HL7 v2.7.1 и обрабатывать их в формате XML? Вы не можете сразу перейти к HL7 v3? Его должно быть намного проще обрабатывать, проверять и т. д. (Ключевые различия между HL7 V2 и V3) - person xmojmr; 21.08.2014