Нет ничего особенного в том, как BizTalk использует Xpath, чем, например, .Net
или Java
синтаксические анализаторы - как только в документе xml используются пространства имен, вам нужно будет указывать пространство имен (или псевдоним) при создании ссылочных элементов.
Biztalk обходит необходимость в XmlNamespaceManager , используя независимый от пространства имен xpath , который, как вы заметили, довольно многословен (но опять же, он генерируется и обычно скрыт зрение).
Если вы уверены, что имена элементов уникальны в вашем xml, вы можете удалить бит namespace-uri()
из ваших путей, т.е.
string(/*[local-name()='Provide']/*[local-name()='providerRequest']
/*[local-name()='Parameters'][1]/*[local-name()='Parameter']
/*[local-name()='Name'])
И если вы действительно уверены относительно уникальности имен ваших элементов, вы можете замкнуть путь:
string(//*[local-name()='SomeUniqueElementName']
Но будьте осторожны - для больших XML-документов я столкнулся с проблемами производительности при использовании двойной косой навигации xpath.