У меня был успех в анализе некоторых XML-файлов и обработке рассматриваемого пространства имен. Однако я пришел к некоторым XML-адресам из другого источника, и все работает не так!Проблемы с пространствами имен XML в T-SQL
Вот мой XML (упрощенный)
<ConnectionExport xmlns="http://www.sap.com/IS/Connection" version="14.2.4.732">
<Connection>
<technical_name>mytechname</technical_name>
</Connection>
<Connection>
<technical_name>mytechname</technical_name>
</Connection>
</ConnectionExport>
и мой код для разбора
SELECT
T.c.query('.')
,T.c.value('(@version)','nvarchar(250)')as [version]
,CN.c.query('.') as [connection]
FROM
@xml.nodes('
declare namespace cnn="http://www.sap.com/IS/Connection";
(cnn:ConnectionExport)
') T(c)
outer apply
T.c.nodes('
Connection
') as CN(c)
Первые 2 колонки вернуть все, как и ожидалось, полный текст XML, и значение [версия] , Однако CN.c.query ('.') Просто NULL.
Я знаю, что это как-то связано с пространством имен, потому что он отлично работает, я разделяю все проблемы пространства имен из файла XML и SQL.
В Googled много ... но все еще пытается понять концепцию того, что не так.