мне нужно создать компонент, который будет принимать несколько XML-документов на входе и проверить следующие виды правил:Интерпретировать правила применения нескольких запросов XPath на нескольких документах XML
XML1:/bookstore/book[price>35.00] != null
and (XML2:/city/name = 'Montreal'
or XML3://customer[@language] contains 'en')
В основном мой компонент должен быть в состоянии чтобы:
- заменить XML-маркеры с соответствующим документом XML (до двоеточия)
- применять XPath запрос на этот XML-документ
- че ck выход xpath по отношению к ожидаемому результату («=», «! =», «содержит»)
- следуйте основному синтаксису («и», «или» и скобки)
- сообщите, верно ли правило или false
Вы знаете какую-либо библиотеку, которая могла бы мне помочь? возможно, JavaCC?
Благодаря
Для части xpath я рассматривал использование API JDK. В соответствии со следующим эталоном это кажется быстрее, чем в других библиотеках, и в любом случае у меня нет ограничений производительности: http://www.asciiarmor.com/post/33736620/java-xpath-1-0-engine-comparison-performance Мой вопрос больше связан с тем, как интерпретировать правило и соответствующим образом проводить парсинг. Я должен был уточнить, извините. – Damien
Я думаю, что если вы хотите использовать имена файлов с XPath, тогда вы должны посмотреть на xquery. Существует еще одна библиотека XPath, которую вы, возможно, захотите исследовать, называется VTD-XML (из которой я являюсь соавтором) –
Спасибо, я видел, что схемат должен работать с xquery вместо xpath, но, к сожалению , реализация java (probatron) поддерживает только xpath. Я собираюсь оценить все это, а также посмотреть VTD-XML, чтобы построить мое решение. – Damien