Solved

SQL Server XML Output

Posted on 2008-10-13
6
1,024 Views
Last Modified: 2008-10-16
In my attached code...everything is pulling correctly, but I need the VERY first line to be

<?xml version="1.0" encoding="iso-8859-1" ?>

How do I modify my attached stored procedure
ALTER PROCEDURE [dbo].[XML_Reports]
 

AS

BEGIN

DECLARE @title XML 

SET @title = N'<?xml version="1.0" encoding="UTF-16" ?>'
 

DECLARE @link XML 

SET @link = N'<?xml version = "1.0" encoding = "UTF-16"?><link>http://www.mydomain.com</link>'
 

DECLARE @description XML 

SET @description = N'<?xml version = "1.0" encoding = "UTF-16"?><description>Current Real Estate Listings from My Domain Properties</description>'
 

DECLARE @lastBuildDate XML 

SET @lastBuildDate = N'<?xml version = "1.0" encoding = "UTF-16"?><feedPublishDate>' + CONVERT (Varchar(10), getdate(), 101) + '</feedPublishDate>'
 

DECLARE @language XML 

SET @language = N'<?xml version = "1.0" encoding = "UTF-16"?><language>en-us</language>'
 

select

--Non-Recurring header Section

(Select @title),

(Select @link),

(Select @description),

(Select @lastBuildDate),

(Select @language),

--Recurring Properties Section

(select [listing_id] as 'Listing_ID',

[property_type_id] as 'Property_Type_ID',

[newspaper_id] as 'Newspaper_ID',

null as 'House_Number',

[House_Street] as 'House_Street',

[Display_Address] as 'Display_Address',

[ZIP] as 'ZIP',

[rental_or_sale] as 'rental_or_Sale',

[price] as 'Price',

[Bedrooms_ID] as 'Bedrooms_ID',

[Agent_ID],

[Agent_Contact_1],

[Agent_Phone_1],

[Agent_Email_1],

[Agent_Picture_1],

[Comments],

[Full_baths],

[Acres],

[Listing_Photo_1],

[Listing_Photo_2],

[Listing_Photo_3],

[Listing_Photo_4],

[Listing_Photo_5],

[Listing_Photo_6],

[Listing_Photo_7]

from dbo.myView for xml path('ad'), type, elements

) 

FOR XML path('export')

END

Open in new window

0
Comment
Question by:lrbrister
  • 3
  • 3
6 Comments
 
LVL 77

Expert Comment

by:arnold
ID: 22703033
I suspect the issue is not with the stored procedure, but with the table/server definition of the character encoding. Make sure it is set to UTF rather then Latin1.
0
 

Author Comment

by:lrbrister
ID: 22703121
When I change the @titole to
SET @title = N'<?xml version="1.0" encoding="iso-8859-1" ?>'

I get this error on execute
Msg 9402, Level 16, State 1, Procedure XML_RSSOutRobbReports, Line 14
XML parsing: line 1, character 44, unable to switch the encoding
0
 

Author Comment

by:lrbrister
ID: 22703145
arnold:

How would I change that and what would it affect?
0
Control application downtime with dependency maps

Visualize the interdependencies between application components better with Applications Manager's automated application discovery and dependency mapping feature. Resolve performance issues faster by quickly isolating problematic components.

 
LVL 77

Expert Comment

by:arnold
ID: 22703539
Misread what you wanted to achieve.

Is line 14:
SET @language = N'<?xml version = "1.0" encoding = "UTF-16"?><language>en-us</language>'

Check the encoding on the database/table?  I.e. what is the character set?  
Could you repost the SP after the changes are made?
0
 

Author Comment

by:lrbrister
ID: 22710429
arnold:
Where do I check that at?
0
 
LVL 77

Accepted Solution

by:
arnold earned 500 total points
ID: 22712200
Properties of the database have the collation settings.  In your case however, I think the issue is with the directive.  If the line 14 noted in the error message is the language line, While you defined the content as ISO-8859-1 (LATIN1) you are trying to redefine the language to en-us which might be no be required or the Language directive is unnecessary.

Since it seems obvious I am trying to make sure that you altered all the <?XML references to use the ISO-8859-1 rather than just altering the title directive.
ALTER PROCEDURE [dbo].[XML_Reports]

 

AS

BEGIN

DECLARE @title XML 

SET @title = N'<?xml version="1.0" encoding="iso-8859-1" ?>'

 

DECLARE @link XML 

SET @link = N'<?xml version="1.0" encoding="iso-8859-1" ?><link>http://www.mydomain.com</link>'

 

DECLARE @description XML 

SET @description = N'<?xml version="1.0" encoding="iso-8859-1" ?><description>Current Real Estate Listings from My Domain Properties</description>'

 

DECLARE @lastBuildDate XML 

SET @lastBuildDate = N'<?xml version="1.0" encoding="iso-8859-1" ?><feedPublishDate>' + CONVERT (Varchar(10), getdate(), 101) + '</feedPublishDate>'

 

DECLARE @language XML 

SET @language = N'<?xml version="1.0" encoding="iso-8859-1"?><language>en-us</language>'

 

select

--Non-Recurring header Section

(Select @title),

(Select @link),

(Select @description),

(Select @lastBuildDate),

(Select @language),

--Recurring Properties Section

(select [listing_id] as 'Listing_ID',

[property_type_id] as 'Property_Type_ID',

[newspaper_id] as 'Newspaper_ID',

null as 'House_Number',

[House_Street] as 'House_Street',

[Display_Address] as 'Display_Address',

[ZIP] as 'ZIP',

[rental_or_sale] as 'rental_or_Sale',

[price] as 'Price',

[Bedrooms_ID] as 'Bedrooms_ID',

[Agent_ID],

[Agent_Contact_1],

[Agent_Phone_1],

[Agent_Email_1],

[Agent_Picture_1],

[Comments],

[Full_baths],

[Acres],

[Listing_Photo_1],

[Listing_Photo_2],

[Listing_Photo_3],

[Listing_Photo_4],

[Listing_Photo_5],

[Listing_Photo_6],

[Listing_Photo_7]

from dbo.myView for xml path('ad'), type, elements

) 

FOR XML path('export')

END

Open in new window

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article will provide a solution for an error that might occur installing a new SQL 2005 64-bit cluster. This article will assume that you are fully prepared to complete the installation and describes the error as it occurred durin…
So every once in a while at work I am asked to export data from one table and insert it into another on a different server.  I hate doing this.  There's so many different tables and data types.  Some column data needs quoted and some doesn't.  What …
This tutorial demonstrates a quick way of adding group price to multiple Magento products.
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

919 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now