There is nothing unusual in the way BizTalk uses Xpath than, for example. .Net or Java - as soon as an XML document uses namespaces, you need to specify a namespace (or an alias) when creating link elements.
Biztalk circumvents the need for an XmlNamespaceManager by using the xpath agnostic namespace , which, as you noted, is pretty verbose (but again, it is generated and usually hidden from view).
If you are sure that the element names are unique in your xml, you can clear the namespace-uri() bit from your paths, i.e.
string(/*[local-name()='Provide']/*[local-name()='providerRequest'] /*[local-name()='Parameters'][1]/*[local-name()='Parameter'] /*[local-name()='Name'])
And if you are really sure of the uniqueness of the names of your elements, you can short-circuit the path:
string(//*[local-name()='SomeUniqueElementName']
But be careful - for large xml documents, I ran into performance issues with bidirectional xpath navigation.
source share