Monday, February 11, 2013

what is main difference between xml and json

Data typesDoes not provide any notion of data types. One must rely on XML Schema for adding type information.Provides scalar data types and the ability to express structured data through arrays and objects.
Support for arraysArrays have to be expressed by conventions, for example through the use of an outer placeholder element that models the arrays contents as inner elements. Typically, the outer element uses the plural form of the name used for inner elements.Native array support.
Support for objectsObjects have to be expressed by conventions, often through a mixed use of attributes and elements.Native object support.
Null supportRequires use of xsi:nil on elements in an XML instance document plus an import of the corresponding namespace.Natively recognizes the null value.
CommentsNative support and usually available through APIs.Not supported.
NamespacesSupports namespaces, which eliminates the risk of name collisions when combining documents. Namespaces also allow existing XML-based standards to be safely extended.No concept of namespaces. Naming collisions are usually avoided by nesting objects or using a prefix in an object member name (the former is preferred in practice).
Formatting decisionsComplex. Requires a greater effort to decide how to map application types to XML elements and attributes. Can create heated debates whether an element-centric or attribute-centric approach is better.Simple. Provides a much more direct mapping for application data. The only exception may be the absence of date/time literal.
SizeDocuments tend to be lengthy in size, especially when an element-centric approach to formatting is used.Syntax is very terse and yields formatted text where most of the space is consumed (rightly so) by the represented data.
Parsing in JavaScriptRequires an XML DOM implementation and additional application code to map text back into JavaScript objects.No additional application code required to parse text; can use JavaScript's eval function.
Learning curveGenerally tends to require use of several technologies in concert: XPath, XML Schema, XSLT,XML Namespaces, the DOM, and so on.Very simple technology stack that is already familiar to developers with a background in JavaScript or other dynamic programming languages.

No comments:

Post a Comment