W3C home > Mailing lists > Public > public-html-xml@w3.org > January 2011

Re: The interpretation of script

From: John Cowan <cowan@mercury.ccil.org>
Date: Tue, 18 Jan 2011 00:23:07 -0500
To: Noah Mendelsohn <nrm@arcanedomain.com>
Cc: Norman Walsh <ndw@nwalsh.com>, public-html-xml@w3.org
Message-ID: <20110118052306.GB24186@mercury.ccil.org>
Noah Mendelsohn scripsit:

> Really? Consider:
> <script type="application/xml">
>   <newlang:program xmlns:newlang="...URI for the language...">
>        ...program in XML syntax goes here...
>        ...this should execute, just as javascript does...
>   </newlang:program>
> </script>

Assuming the surrounding document is text/html, then this is not XML
at all, but plain text, so "<newlang:program xmlns:newlang="...URI
for the language..."> has no meaning yet.  What does have meaning is
script/@type, which says this is application/xml, i.e. data.  If you
want it to be executed as a newlang program, script/@type should be
application/newlang+xml, or whatever its registered type is.

> How in general does a browser know whether something is >intended< as 
> code or data, if we authorize use of <script> for both?

Browsers recognize certain media types as representing code they know
how to execute, and execute them.  JavaScript code likewise recognize
certain media types as code *it* knows how to execute, and it executes it.
Whatever nobody recognizes is either data or junk DNA.  *Intent* doesn't
enter into it; intention is known only to the human author.

> AFAIK today, there is a risk that my browser won't support the language  
> used for the script, but there's no ambiguity that there >is< an 
> executable script, and that the intention is that it be run.  Once 
> <script> gets overloaded for data, you lose that distinction.

Application/xquery already blurs this distinction: it is data to the browser,
code to the xqib library.  This is really no big deal: the Lisp world has
gotten along fine without any such behavioral tagging for half a century.

> As I proposed on the phone, something like:
> <script type="application/xml" norun="true">
>   <data:items xmlns:data="...URI for the data model...">
>        ...please don't even try to execute data...
>   </data:items>
> </script>
> is crufty, but at least it disambiguates the cases.

It solves a problem that doesn't need solving.  

You know, you haven't stopped talking           John Cowan
since I came here. You must have been           http://www.ccil.org/~cowan
vaccinated with a phonograph needle.            cowan@ccil.org
        --Rufus T. Firefly
Received on Tuesday, 18 January 2011 05:23:35 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 19:58:27 UTC