Verhindern Sie selbstständige Tags in XML-Produkten von SQL Sever

Mit dem folgenden SQL:

DECLARE @xml XML= ( SELECT N'' AS [content1/\*] , N'' AS [content2/\*] FOR XML PATH('Rows') ) SELECT @xml 

Ich bekomme selbst schließende Tags wie:

 <Rows> <content1 /> <content2 /> </Rows> 

Ist es möglich, dies zu bekommen, um in HTML zu verwenden?

 <Rows> <content1></content1> <content2></content2> </Rows> 

Auch ist das folgende möglich, dh ohne den Wurzelknoten?

 <content1></content1> <content2></content2> 

Sie können TYPE Direktive verwenden , um implizite Umwandlung in String und zurück zu XML zu vermeiden:

 DECLARE @xml XML= (SELECT N'' as [content1], N'' as [content2] FOR XML PATH('Rows'), TYPE); SELECT @xml; 

LiveDemo

Ausgabe:

 <Rows><content1></content1><content2></content2></Rows> 

und wenn es möglich ist

 <content1></content1> <content2></content2> 

bedeutet ohne Wurzelknoten.

 DECLARE @xml XML= (SELECT N'' as [content1], N'' as [content2] FOR XML PATH(''), TYPE); SELECT @xml; 

LiveDemo2

Ausgabe:

 <content1></content1><content2></content2> 
 SELECT '' as content1 , '' as content2 FOR XML PATH('Rows') 

und

 SELECT '' as content1 , '' as content2 FOR XML PATH('')