Después de dar unas cuantas vueltas, apremiado para resolver un store procedure que tenía que procesar un campo xml (usando sp_preparedocument y OpenXML) que podía tener distintos namespaces en distintos registros, es que me puse a buscar la forma de recuperar el namespace predeterminado de un xml y encontré que la forma es la siguiente.
Esto por ejemplo puede regresar:
Otro ejemplo:
Donde tenemos que:
Read More...
Select CampoXML.value('namespace-uri(/*[1])','VARCHAR(100)')
u obviamente
Select @variableXML.value('namespace-uri(/*[1])','VARCHAR(100)')
urn:proyecto-version-numero-1.1
SELECT CampoXML.value('local-name(/*[1])', 'varchar(100)'), CampoXML.value('namespace-uri(/*[1])','VARCHAR(100)') from tabla
local-name devuelve el nombre del elemento raiz
y
namespace-uri devuelve el namespace predeterminado.
Hugo Román Bernachea
Mail de contacto: SQLServer777@gmail.com
Microsoft Certified DBA
Microsoft Certified Trainer
Twitter: @bernachea