Consultar XML criando nomes de campo sem saber nomes de nós

Se eu tiver uma tabela SQL SERVER 2012 contendo um tipo de campo XML. Os registros que ele pode conter são os seguintes.

Eu simplifiquei o meu problema para o seguinte.

Registro 1:

ID_FIELD='nn1'

XML_FIELD=
<KNOWN_NAME_1>
    <UNKNOWN_NAME1>Some value</UNKNOWN_NAME1>
    <UNKNOWN_NAME2>Some value</UNKNOWN_NAME2>
  ... Maybe more ...
</KNOWN_NAME_1>

Registro 2:

ID_FIELD='nn2'

XML_FIELD=
<KNOWN_NAME_2>
  <UNKNOWN_NAME1>Some value</UNKNOWN_NAME1>
  <UNKNOWN_NAME2>Some value</UNKNOWN_NAME2>
  ... Maybe more unknown fields ...
</KNOWN_NAME_2>

Eu quero saída não xml:

UNKNOWN_NAME1 | UNKNOWN_NAME2 | ETC
-----------------------------------
Some Value      Some value

Para um valor de raiz conhecido (por exemplo, KNOWN_NAME_1)

Ou seja Se eu novo os valores do nó (o que eu não) eu poderia

SELECT
  XMLData.Node.value('UNKNOWN_NAME1[1]', 'varchar(100)') ,
  XMLData.Node.value('UNKNOWN_NAME2[1],  'varchar(100)')
FROM FooTable
  CROSS APPLY MyXmlField.nodes('//KNOWN_NAME_1') XMLData(Node)
  -- WHERE SOME ID value = 'NN1' (all XML records have a separate id)

Tudo é bom, porém eu quero fazer isso para todos os nós (quantidade desconhecida) sem saber os nomes dos nós. A raiz conterá apenas nós que não serão mais profundos.

Isso é possível no SQL?

Eu olhei para isso, mas duvido que eu possa ter direitos suficientes para implementá-lo.

http://architectshack.com/ClrXmlShredder.ashx

questionAnswers(1)

yourAnswerToTheQuestion