Hallo zusammen,

ich möchte gerne aus einer XML mit diesem Aufbau:

Code:
<Gruppe>
    <Gruppennummer>5 <Gruppennummer>
    <Angestellte>
           <Namen>
             <Vorname>Max <Vorname>
             <Name>Mustermann <Name>
          <Namen>

           <Namen>
              <Vorname>Max <Vorname>
              <Name>Mustermann <Name>
          <Namen> 
    
<Gruppe>


eine Liste mit Gruppennummer, Name und Vorname erhalten.
Es kann allerdings unendlich viele Elemente "Namen" geben.

Mein erster Versuch war:

Code:
       select Name, Vorname, Gruppennummer
       from (values(xmlparse(document
       get_xml_file(trim('//Beispiele/1.xml'))))) as xmlfile(BSP1),   
       xmltable('$BSP1/*:ExportFile/*:Gruppe'
       passing xmlfile.BSP1 as "BSP1"
       columns
       Vorname varchar(64) default ''
       path'*:Angestellte/*:Namen/*:Vorname',
       Name varchar(64) default ''
       path'*:Angestellte/*:Namen/*:Name',
       Gruppe integer default 0 path'../Gruppennummer'



       ) as BSP1
leider wirft mir das
[SQ16003] Ein Ausdruck des Datentyps ( item(), item()+) kann nicht verwendet werden, wenn der Datentyp item() für den Kontext verwendet wird.

Nun dachte ich, ich könne einfach den Pfad eine Ebene tiefer ziehen:

Code:
       select Name, Vorname, Gruppennummer
       from (values(xmlparse(document
       get_xml_file(trim('//Beispiele/1.xml'))))) as xmlfile(BSP1),   
       xmltable('$BSP1/*:ExportFile/*:Gruppe/*:Angestellte/*:Namen'
       passing xmlfile.BSP1 as "BSP1"
       columns
       Vorname varchar(64) default ''
       path'*:Vorname',
       Name varchar(64) default ''
       path'*:Name',
       Gruppe integer default 0 path'../Gruppennummer'



       ) as BSP1
Diese Abfrage funktioniert für die Namen, ich erhalte jedoch leider keine Gruppennummer.

Kennt sich jemand damit aus? Habe schon eine Weile vergeblich gesucht und getestet.

Viele Grüße und besten Dank!