Im trying to write an sql query which generates xml and im nearly there but i need to be able to stop it from repeating the tags.
This is the query i am currently using
select DISTINCT
objecttype.Type
, object.text
, objectelement.Value
, objectlanguage.CultureInfo
, isnull(objectelementtext.ElementText, objectelement.Value)
from [object] object
inner join [objecttype] objecttype
on object.ObjectTypeID = objecttype.ObjectTypeID
inner join [ObjectElement] objectelement
on object.ObjectID = objectelement.ObjectID
outer APPLY
(
select objectlanguage.ObjectLanguageID, objectlanguage.CultureInfo
from [ObjectLanguage] objectlanguage
where active = 1
) objectlanguage
left join [ObjectElementText] objectelementtext
on objectelementtext.ObjectElementID = objectelement.ObjectElementID
and objectlanguage.ObjectLanguageID = objectelementtext.ObjectLanguageID
FOR XML AUTO, ELEMENTS, ROOT('Translations')
So this generates the XML but it looks like the following.
<Translations>
<objecttype>
<Type>Report</Type>
<object>
<text>TrayList</text>
<objectelement>
<Value>***** For Information Only *****</Value>
<objectlanguage>
<CultureInfo>en-gb</CultureInfo>***** For Information Only *****</objectlanguage>
<objectlanguage>
<CultureInfo>en-tt</CultureInfo>******** For Information Only *****</objectlanguage>
<objectlanguage>
<CultureInfo>en-us</CultureInfo>***** For Information Only *****</objectlanguage>
<objectlanguage>
<CultureInfo>it-it</CultureInfo>***** Solo Per Informazione *****</objectlanguage>
<objectlanguage>
<CultureInfo>zh-cn</CultureInfo>***** For Information Only *****</objectlanguage>
</objectelement>
What im trying to do is stop it from repeating the opening tags, so for example
<objectlanguage>
<CultureInfo ci="en-gb" text ="***** For Information Only*****"/>
<CultureInfo ci="en-it" text ="***** For Information Only*****"/>
<CultureInfo ci="en-us" text ="***** For Information Only*****"/>
<CultureInfo ci="zn-cn" text ="***** For Information Only*****"/>
<CultureInfo ci="it-tt" text ="***** For Information Only*****"/>
</objectlanguage>
Any help with this would be very much appreciated please, i think i am on the right lines but i need to tweak my query some how to tell it to not repeat them but i am unsure how.