Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


Re: [xml-dev] json v. xml

From: "David Megginson" <david.megginson@-----.--->
To: xml-dev@-----.---.---
Date: 1/6/2007 3:49:00 AM
On 05/01/07, noah_mendelsohn@u... <noah_mendelsohn@u...>

> I've heard it alleged
> that among the other attractions of JSON is that typical browser security
> policies allow one to do cross-site retrieval of JavaScript in
> circumstances where XML retrieval would be disallowed.  Two questions:
>
> 1. Is this true?

No, that's not accurate -- there was a misunderstanding in some blogs,
but I think it's been cleared up now.  We're talking about two
separate issues:

1. It's possible to work around the cross-site limitations of
XMLHTTPRequest using iFrames or the On-Demand JavaScript pattern.

2. JSON is the data-representation format most commonly used with the
on-demand pattern, because it is the most convenient.

That's *not* the same as saying that JSON allows cross-domain
retrieval.  While it will be less convenient, you can use XML, CSV, or
any other text-based format with the on-demand pattern (which involves
splicing an external script with inline data declarations onto your
document's own DOM tree so that it looks like it came from your
domain), just as you can use JSON or CSV instead of XML with
XMLHTTPRequest.

> 2. If so, am I the only one who thinks this is bizarre?  Whatever the
> history of these policies, we have a situation in which information
> transmitted in the form of an executable Turing-complete programming
> language (JavaScript) are allowed, but in which information in the form of
> a declarative markup language are blocked as a security risk?

Not so.  Both JSON and XML are blocked if you're using XMLHttpRequest,
and both are possible (by accident rather than by design) if you use
the On-Demand JavaScript pattern.

Note also that like XML, JSON is purely declarative and (thus) not
Turing-complete -- to make JSON executable, you have to wrap it with
JavaScript, just as you would have to wrap XML to make it executable.
It just happens that the wrapping is more convenient with JSON.

I strongly recommend that everyone read the very short JSON spec and
grammar productions at www.json.org to understand what JSON is (and
isn't).


All the best,


David


transparent
Print
Mail
Like It
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent