patternsqlMajor
SQL server changes XML structure when inserted
Viewed 0 times
sqlxmlinsertedchangesstructurewhenserver
Problem
I'm inserting some XML data to an XML column in SQL server but after the data has been inserted it has been changed by sql server.
Here is the data I insert
When I read it back, it looks like this
Pay attention to the second line. This is a problem because it changes how the XSLT transformation output will be. The first example will create a space between given and family name, while the second will not create any space, so it will be like JohnJohnsen, while the first one will be like John Johnsen.
Is there some way to solve this?
Here is the data I insert
When I read it back, it looks like this
Pay attention to the second line. This is a problem because it changes how the XSLT transformation output will be. The first example will create a space between given and family name, while the second will not create any space, so it will be like JohnJohnsen, while the first one will be like John Johnsen.
Is there some way to solve this?
Solution
You can use
For one node
Result:
Entire document:
Result:
Another options for the entire document is to use convert with style 1.
Preserve insignificant white space. This style setting sets the
default xml:space handling to match the behavior of
xml:space="preserve".
xml:space = "preserve" on the nodes where you want to keep the space. Using xml:space is "only a signal of intent" but SQL server is kind to us here.For one node
declare @X xml =
'
'
select @X;
Result:
Entire document:
declare @X xml =
'
'
select @X;
Result:
Another options for the entire document is to use convert with style 1.
Preserve insignificant white space. This style setting sets the
default xml:space handling to match the behavior of
xml:space="preserve".
declare @X xml = convert(xml,
'
', 1)
select @X;Code Snippets
declare @X xml = convert(xml,
'<root>
<element> </element>
<element> </element>
</root>', 1)
select @X;Context
StackExchange Database Administrators Q#223496, answer score: 26
Revisions (0)
No revisions yet.