MarkLogic cts: иерархия узлов поиска

Я пытаюсь решить проблему, когда у меня есть набор документов в MarkLogic, и я хотел бы найти конкретный узел в определенной точке иерархии. Я хотел бы использовать что-то вроде cts: element-value-query, но похоже, что у него нет возможности указать уровень иерархии или что-то подобное.

Причина, по которой я хотел бы это сделать, заключается в том, что в другом месте иерархии есть узлы с одинаковым пространством имен / именами, которые я хотел бы игнорировать для цели этого конкретного запроса.

Примером может быть что-то вроде этого:

<rootNode xmlns="myNamespace">
    <someBooleanValue>true</someBooleanValue>
    <someSubNode> 
        <someBooleanValue>false</someBooleanValue>
    </someSubNode>
</rootNode>

где я хотел бы, например, rootNodes, где someBooleanValue был истинным прямым потомком корня. Я знаю, как запросить конкретно дочерний элемент someBooleanValue для someSubNode, но я пытаюсь понять, как это сделать специально для дочернего элемента rootNode.

В связи с этим вопросом предположим, что изменить структуру / пространства имен XML непросто. Это специально для MarkLogic 5.x.

Спасибо!


person Bruce L    schedule 23.10.2012    source источник


Ответы (1)


Вы можете заключить свой запрос в cts: element-query, но это похоже на проверку предка или самопроверки, а не обязательно только на проверку родителей. Если вы используете такие общие имена, этого, вероятно, будет недостаточно.

Лучше всего рассмотреть вопрос об обновлении до ML 6, где они вводят индексы путей, где вам разрешено указывать конкретные пути к элементам. Может быть, оно того стоит ..

HTH!

person grtjn    schedule 23.10.2012
comment
Спасибо! ML 6 находится на нашем пути вперед, поэтому мы будем планировать это. - person Bruce L; 23.10.2012