Anna85: XML Datei zeigt nicht das richtige Ergebnis

Beitrag lesen

Hallo und guten Morgen, ich baue grade eine xml, die Daten kommen aus mssql Server. Ich bekomme zwar Ergebnis, aber nicht so wie gewünscht. Meine fertige xml Datei soll so aussehen:

 <v1:farbe id="11" type="l">
    <v1:artikels>
      <v1:artikel>A bis Z</v1:artikel>
    </v1:artikels>
    
    <zusaetze>
      <zusatz xmlns:v1="test.de" xmlns:commons="v3.test" logicalName="gruppe" key="050" />
      
      
    </zusaetze>
  </v1:farbe>

aber es sieht so aus:

 <v1:farbe id="11" type="l">
    <v1:artikels>
      <v1:artikel>A bis Z</v1:artikel>
    </v1:artikels>
    
    <zusaetze>
      <zusatz xmlns:v1="test.de" xmlns:commons="v3.test" logicalName="gruppe" key="050" />
      <zusatz xmlns:v1="test.de" xmlns:commons="v3.test" logicalName="gruppe" key="030" />
     <zusatz xmlns:v1="test.de" xmlns:commons="v3.test" logicalName="gruppe" key="020" />
      
    </zusaetze>
  </v1:farbe>

Meine Abfrage ist so:

WITH XMLNAMESPACES (
'xmlns:v1="test.de"' as commons,
'xmlns:commons="v3.test" ' as v1)


 Select tab.id as '@id',
	'zusatz' as '@type',
	        titel1 as 'v1:zusaetze/v1:zusatz',
			
		 
  
  ,(
   Select 
    'DDC_Sachgruppen' as '@logicalName'
    ,gruppe as '@key' 
	
     from tab
	 	 order by tab.id
			 offset 0 rows
			 fetch next 3 row only

		FOR XML PATH('zusatz'), TYPE
  ) as zusaetze
 FROM [zdb_import2]

 order by tab.id
 offset 0 rows
 fetch next 3 
 row only

 FOR XML PATH('v1:farbe'), ROOT('v1:farben')

Ich möchte einfach nur erste 3 Datensätze holen aus der Datenbank. An sich holt mir die Abfrage 3 Datensätze, aber jedes mal mit 3 gleichen Zusätze, was falsch ist. Zu jede Datensatz ist ein Zusatz. Wie kann ich meine Abfrage korrigieren?

Vielen Dank im Voraus für jede Antwort!