Параметр XML сервера SQL с атрибутом пространства имен - PullRequest
0 голосов
/ 08 июня 2011

Я передаю данные XML в хранимую процедуру. если xml содержит атрибуты xmlns, он не работает. Когда я удаляю xmlns, он работает нормально. Как я могу удалить xmlns, прежде чем перейти к хранимой процедуре. Я использую SQL Server 2008.

1 Ответ

2 голосов
/ 08 июня 2011

Не пытайтесь их избегать - используйте их!

Самый простой способ сделать это, используя конструкцию WITH XMLNAMESPACES - что-то вроде:

;WITH XMLNAMESPACES(DEFAULT 'http://your.name.space.here/2011/June')
(
   -- your XQuery/XPath code here - it will by default use the namespace given
)

Вы также можете легко иметь несколько пространств имен - и также можете назначать им префиксы (и использовать их в выражениях XPath):

;WITH XMLNAMESPACES('http://your.name.space.here/2011/June' AS ns)
(
   -- your XQuery/XPath code here - it will by default use the namespace given
   ....... xmlcolumn.value('(/ns:root/ns:subelement......)[1]', 'int'). .....
)

См. Документы MSDN о добавлении пространств имен XML для получения более подробной информации и объяснений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...