How to select the value of the xsi:type attribute in SQL Server?

Posted by kralizek on Stack Overflow See other posts from Stack Overflow or by kralizek
Published on 2010-03-19T12:35:23Z Indexed on 2010/03/19 12:41 UTC
Read the original article Hit count: 325

Considering this xml document:

DECLARE @X XML (DOCUMENT search.SearchParameters)  = '< parameters xmlns="http://www.educations.com/Search/Parameters.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  < parameter  xsi:type="category" categoryID="38" />
< /parameters>';

I'd like to access the value of the attribute "type".

According to this blog post, the xsi:type attribute is special and can't be accessed by usal keywords/functions.

How can I do it?

PS: I tried with

    WITH XMLNAMESPACES (
 'http://www.educations.com/Search/Parameters.xsd' as p,
 'http://www.w3.org/2001/XMLSchema-instance' as xsi
    )
    SELECT @X.value('(/p:parameters/p:parameter/@xsi:type)[1]','nvarchar(max)')

but it didn't work.

© Stack Overflow or respective owner

Related posts about xml-schema

Related posts about Xml