Forum » Programiranje » [t-sql] for XML EXPLICIT
[t-sql] for XML EXPLICIT

borchi ::
direktno v t-sql bi rad generiral xml.
problem imam, ker shema xml-ja zahteva complexType s sekvenco, torej moram posortirat elemente po točno določenem vrstnem redu. kar je problem. bolj kot razmišljam kako deluje to, manj se mi zdi, da je sploh možno gnezdit elemente in hkrati upoštevat zapovedan sequence.
npr. z:
dobim:
rabim pa:
je kdo že delal kdaj kaj takega? sej vem, da se z napačnim orodjem spravljam k stvari, samo bi mi v bodoče prihranilo goro dela, če bi lahko vse naredil že kar v sql-u...
problem imam, ker shema xml-ja zahteva complexType s sekvenco, torej moram posortirat elemente po točno določenem vrstnem redu. kar je problem. bolj kot razmišljam kako deluje to, manj se mi zdi, da je sploh možno gnezdit elemente in hkrati upoštevat zapovedan sequence.
npr. z:
declare @krneki table (Ident int identity, krneki1 varchar(10), krneki2 varchar(10), krneki3 varchar(10)) insert into @krneki (krneki1, krneki2, krneki3) select 'krneki1_1' as krneki1, 'krneki2_1' as krneki2, 'krneki3_1' as krneki3 union all select 'krneki1_2', 'krneki2_2', 'krneki3_2' select 10 as Tag, null as Parent, null as [Prvi!10!], null as [Drugi!20!D!hide], null as [Drugi!20!krneki1!element], null as [Tretji!30!T!hide], null as [Tretji!30!krneki3!element], null as [Drugi!20!krneki2!element] union all select 20, 10, null, Ident, krneki1, null, null, krneki2 from @krneki union all select 30, 20, null, Ident, null, Ident, krneki3, null from @krneki order by [Drugi!20!D!hide], [Tretji!30!T!hide] for XML EXPLICIT
dobim:
<Prvi> <Drugi> <krneki1>krneki1_1</krneki1> <krneki2>krneki2_1</krneki2> <Tretji> <krneki3>krneki3_1</krneki3> </Tretji> </Drugi> <Drugi> <krneki1>krneki1_2</krneki1> <krneki2>krneki2_2</krneki2> <Tretji> <krneki3>krneki3_2</krneki3> </Tretji> </Drugi> </Prvi>
rabim pa:
<Prvi> <Drugi> <krneki1>krneki1_1</krneki1> <Tretji> <krneki3>krneki3_1</krneki3> </Tretji> <krneki2>krneki2_1</krneki2> </Drugi> <Drugi> <krneki1>krneki1_2</krneki1> <Tretji> <krneki3>krneki3_2</krneki3> </Tretji> <krneki2>krneki2_2</krneki2> </Drugi> </Prvi>
je kdo že delal kdaj kaj takega? sej vem, da se z napačnim orodjem spravljam k stvari, samo bi mi v bodoče prihranilo goro dela, če bi lahko vse naredil že kar v sql-u...
l'jga

borchi ::
sem vedu, da se je treba samo naspat, pol bo pa šlo...
rešitev:
rešitev:
select 10 as Tag, null as Parent, null as [Prvi!10!], null as [Drugi!20!D!hide], null as [krneki1!21!], null as [Tretji!30!T!hide], null as [Tretji!30!krneki3!element], null as [krneki2!31!] union all select 20, 10, null, Ident, null, null, null, null from @krneki union all select 21, 20, null, Ident, krneki1, null, null, null from @krneki union all select 30, 20, null, Ident, null, Ident, krneki3, null from @krneki union all select 31, 20, null, Ident, null, null, null, krneki2 from @krneki order by [Drugi!20!D!hide], Tag for XML EXPLICIT
l'jga
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | TSQL rekurzivnoOddelek: Programiranje | 941 (680) | hamez66 |
» | MySQL podatki iz več tabelOddelek: Programiranje | 917 (707) | smacker |
» | Sql poizvedbaOddelek: Programiranje | 1494 (998) | zgubar |
» | mysql, insert, values, selectOddelek: Programiranje | 1887 (1714) | slosi |
» | MySQL join problemOddelek: Programiranje | 1573 (1471) | Poldi112 |