What are the benefits of storing XML in SQL Server over storing JSON in a varchar field?
Any tutorial available for how to use the XML data type effectively?
Do I need to provide the dtd / xml schema somehow? I’ve heard it is optional, right?
Thank you.
UPDATE: here’s the answer to the last part of the Q.
XML schema information is used in
storage and query optimizations. Typed
XML instances contain typed values in
the internal, binary representation as
well as in XML indexes. This provides
efficient processing of typed XML
data.
quoted from: http://msdn.microsoft.com/en-us/library/ms345117(SQL.90).aspx
XML in SQL Server 2005 and up allows you to directly manipulate the XML stored inside the database table using XQuery – you can’t really do that with JSON in a VARCHAR field.
Check out XML Support in Microsoft SQL Server 2005 and Fundamentals of the XML Datatype in SQL Server 2005 for more info and more background.
Also, the XML stored in a XML column in SQL Server is “tokenized” and pre-parsed – it’s not just stored as plain text. And you can even put indices on your XML – on its nodes, its values – whatever you need.