Докажите, что XML хорошо сформирован на Nifi
Я пытаюсь доказать, что мой XML хорошо сформирован на Nifi.
Я уже проверяю его по какой-то схеме, но иногда у меня нет схемы, и поэтому хочу просто подтвердить, что она правильно сформирована. Однако все процессоры XML, похоже, требуют схемы или чего-то подобного, а не просто показывают, что она правильно сформирована.
Кто-нибудь может воспользоваться какой-нибудь помощью? Большое спасибо
2 ответа
Чтобы добавить к ответу kjhughes (специфично для NiFi), если вы всегда знаете корневой тег (назовем его "root"), вы можете использовать XSD, упомянутый в этом сообщении SO, с процессором ValidateXml.
Если вы не знаете корневой тег, вы можете использовать ExecuteGroovyScript со свойством "Стратегия сбоя", для которого установлено "переход к ошибке", а для "Тела скрипта" задан следующий скрипт:
def flowFile = session.get()
if(!flowFile) return
InputStream i = flowFile.read()
new XmlSlurper().parse(i)
i.close()
REL_SUCCESS << flowFile
Просто попытайтесь разобрать его, используя любой совместимый XML-парсер.
Если он анализируется успешно, то есть без фатальных ошибок, то он правильно сформирован:
ограничение правильной формы
[Определение: правило, которое применяется ко всем правильно оформленным документам XML. Нарушения ограничений правильной формы являются фатальными ошибками.]