[dba-SQLServer] FOR XML EXPLICIT

Haslett, Andrew andrew.haslett at ilc.gov.au
Fri Aug 12 18:14:58 CDT 2005


Wow - two FOR XML EXPLICIT questions in 2 weeks!

Had the same problem - basically you want to add the surrounding empty
elements of <wsorder> and <wsorderitems>?

The root one isn't too hard to do.  The other one seems a bit tricker
but according to those who helped me in the below post, should be doable
by adding another UNION statement as you mentioned:
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=53050

Post back if these don't help you out.

Cheers,
Andrew

-----Original Message-----
From: dba-sqlserver-bounces at databaseadvisors.com
[mailto:dba-sqlserver-bounces at databaseadvisors.com] On Behalf Of
Francisco Tapia
Sent: Saturday, 13 August 2005 2:33 AM
To: SQL Server 2k List; dba-sqlserver at databaseadvisors.com
Subject: [dba-SQLServer] FOR XML EXPLICIT

Happy Friday to all,
This is not really that long, but I've included code to help simplfy
what I'm talking about...

I have the following FOR XML Select, it produces the a valid XML object.

SELECT Top 1
1 as TAG,
0 AS Parent,
PONUM [Header!1!PONUM!element],
RRDate [Header!1!RRDate!element],
NULL [OrderItems!2!CPN!element],
NULL [OrderItems!2!AddedDate!element]
FROM tbl_RR WHERE PONUM = '50803-01HB'

UNION ALL

SELECT 2 AS TAG,
1 AS Parent,
R.PONUM [OrderItems!2!PONUM!element],
NULL,
CPN [OrderItems!2!CPN!element],
AddedDate [OrderItems!2!AddedDate!element] FROM tbl_RR R INNER JOIN
tbl_RRLineItems RL ON R.RRID = RL.RRID WHERE R.PONUM = '50803-01HB'
FOR XML EXPLICIT

The XML object looks like this:
<Header>
	<PONUM>5080301HB</PONUM>
	<RRDate>20050810T07:51:40.633</RRDate>
	<OrderItems>
		<CPN>925</CPN>
		<AddedDate>20050810T07:51:40.680</AddedDate>
	</OrderItems>
</Header>

This is almost where I need this, the xml that I'm trying to match is
formated in this manner:
<WSOrder>
	<Header>
		<PONUM>5080301HB</PONUM>
		<RRDate>20050810T07:51:40.633</RRDate>
	</Header>
	<OrderItems>
		<WSOrderItem>
			<CPN>925</CPN>
			<AddedDate>20050810T07:51:40.680</AddedDate>
		</WSOrderItem>
	</OrderItems>
</WSOrder>

Since I'm almost there, I'm sure I just need to modify my Select (For
XML) with maybe 2 more union alls, but I was wondering if anyone has
done it this way before and could lend a pointer in the right direction
:)

Thanks,
--
-Francisco
http://pcthis.blogspot.com |PC news with out the jargon!
http://sqlthis.blogspot.com | Tsql and More...
_______________________________________________
dba-SQLServer mailing list
dba-SQLServer at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-sqlserver
http://www.databaseadvisors.com



IMPORTANT - PLEASE READ *** This email any any files transmitted with it are confidential and may contain information protected by law from disclosure. If you have received this message in error, please notify the sender immediately and delete this email from your system. No warranty is given that this email or files, if attached to this email, are free from computer viruses or other defects. They are provided on the basis the user assumes all responsibility for loss, damage or consequence resulting directly or indirectly from their use, whether caused by the negligence of the sender or not.



More information about the dba-SQLServer mailing list