Вы можете использовать функции in-scope-prefixes()
и namespace-uri-for-prefix()
для получения префикса namespace-prefix и namespace-uri для внутренних пространств имен, связанных с элементом..
for $element in $doc//*
return
for $prefix in fn:in-scope-prefixes($element)
return string-join( (name($element), $prefix,fn:namespace-uri-for-prefix($prefix, $element) ), "|")
Обратите внимание, что пространство имен XML http://www.w3.org/XML/1998/namespace
будет включено с префиксом xml
.Вы можете исключить его с помощью фильтра предикатов:
for $element in $doc//*:plus[2]
return
for $prefix in fn:in-scope-prefixes($element)[not(. eq 'xml')]
return string-join((name($element), $prefix,fn:namespace-uri-for-prefix($prefix, $element)), "|")