Если вы не можете добавить индексы пути, но важен весь путь (поэтому вы не можете просто использовать просто a cts:element-value-query(xs:QName('TESTID'), "10")
), тогда вы можете использовать стек запросов элементов, подобный этому
let $query :=
cts:element-query(xs:QName('tXML'),
cts:element-query(xs:QName('Message'),
cts:element-query(xs:QName('TEST'),
cts:element-query(xs:QName('TEST1'),
cts:element-value-query(xs:QName('TESTID'), "10")))))
В соответствии с документами об элементах , вы захотите включить индексы "позиция слова" и "позиция слова элемента".
Обработка результатов поиска ничем не отличается.
for $document in cts:search(collection(), $query)
return (
if(fn:not(fn:empty($document/tXML/Message/TEST/TESTID))) then $document/tXML/Message/TEST/TESTID else "NULL",
if(fn:not(fn:empty($document/tXML/Message/TEST/TESTType))) then $document/tXML/Message/TEST/TESTType else "NULL",
if(fn:not(fn:empty($document/tXML/Message/TEST/TESTStatus))) then $document/tXML/Message/TEST/TESTStatus else "NULL"
)