У меня есть кусок xml, который содержит необязательные неперечислимые элементы, поэтому проверка схемы не вызывает недопустимых значений. Однако после проверки этот xml преобразуется в другой формат и затем передается системе, которая пытается сохранить информацию в базе данных. На данный момент некоторые из значений, которые были факультативными в предыдущем формате, теперь являются закодированными значениями в базе данных, которые будут вызывать исключение ограничения внешнего ключа, если мы попытаемся их сохранить. Итак, мне нужно создать процесс в приложении J2EE, который будет проверять набор значений xpaths на набор значений, которые допустимы в этих местах, и если они недействительны, либо удаляют их, либо заменяют/удаляют их, и их родителей в зависимости от по ограничениям схемы.Удаление дополнительных элементов из XML при недопустимости
У меня есть пара вариантов, которые будут работать, но ни один из них не кажется очень элегантным/интуитивным решением.
Вариант № 1 будет включать выполнение работы в xslt 1.0. Прежде чем отправлять xml через xslt, запрашивать приемлемые значения и отправлять списки в качестве параметров. Затем поместите тесты в соответствующие места в xml, который сравнивает входящее значение с приемлемыми и генерирует xml соответственно.
Этот вариант не кажется многоразовым, но его можно было бы быстро реализовать.
Вариант № 2 будет включать Java-код и конфигурационный файл xml. Файл конфигурации xml будет отображать xpaths необходимых тестов, допустимые значения, значения по умолчанию (если применимо) и что вынимать из документа, если тесты терпят неудачу.
Этот вариант гораздо более многоразовый, но, вероятно, удвоит время, необходимое для его создания.
Итак, какой из них вы бы выбрали? Или у вас есть другая идея? Я открыт для всех предложений и хотел бы услышать, как вы справитесь с этим.
Что не «многоразового использования» в # 1 по сравнению с №2?Это будет фактически означать, что XSLT-файл _is_ ваш конфиг и конфигурации на основе скриптов всегда более гибкие. –