I have an xml schema using UTF-8 encoding. When I using it in the "CREATE XML SCHEMA COLLECTION" statement, I got the following error message:
.Net SqlClient Data Provider: Msg 9402, Level 16, State 1, Line 1
XML parsing: line 1, character 38, unable to switch the encoding
I understand the SQL Server 2005 us UTF-16 for xml data. Does it mean I need to convert the schema to use UTF-16 manually?
The XML schema is being treated as UTF-16, hence the mismatch in the encoding.You can do one of the following:
1) Send the XML schema as a System.Data.SqlTypes.SqlXml type from the .NET client to the server
2) Send the XML schema as a binary type from the .NET client to the server.
The server's XML parser will use UTF-8 encoding while parsing the XML schema.
A third alternative is to remove the XML declaration, convert the rest of the XML schema into UTF-16 encoding at the client, and send the resulting string to the server.
Hope this helps.
Thank you,
Shankar
Program Manager
Microsoft SQL Server|||
I am having the same issue. Unfortunately I am a DBA and am not familiar with the .NET client. Can you put this solution in a format that I can implement with the SQL Server 2005 tools?
Thanks,
Eileen Torrens
|||Assuming you have a stored proc parameter @.xsc of type varbinary(max) or type xml, you just say:
create xml schema collection sc as @.xsc
how are you planning on passing the values to the database then?
Best regards
Michael
|||Hi, there.
I don't know whether this has been resolved or not, but for completeness, here is an answer:
CREATE XML SCHEMA COLLECTION [AnXmlSchemaName] AS
N'<doc />'
Is it right?
ym
No comments:
Post a Comment