Докажите, что 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. Нарушения ограничений правильной формы являются фатальными ошибками.]

Другие вопросы по тегам