Я пишу библиотеку, которая генерирует сложные выражения XQuery, которые нацеливают документы из двух разных пространств имен. Однако, когда я генерирую запрос, я не знаю конкретного пространства имен для каждого элемента, который я должен запросить, поэтому я в настоящее время генерирую дизъюнкцию двух возможных комбинаций:XQuery, нацеленный на несколько пространств имен
// * [ns1: foo/ns1: bar = "some condition" или ns2: foo/ns2: bar = "some condition"]
Есть ли способ генерировать это выражение более красиво и более оптимально с точки зрения производительности?
Одно из возможных решений я нашел использовать:
объявлять элемент по умолчанию пространство имен "*"
в этом случае я мог бы просто произвести:
// * [Foo/бар = «некоторые condition "]
, но похоже, что это может привести к дополнительным служебным нагрузкам, поскольку я не могу перечислить два возможных пространства имен и вместо этого использовать подстановочный знак.
бы что-то по строки '// * [local-name() = 'foo']/bar [* condition here *]' достаточно? – JWiley