- From: Chris Lilley <chris@w3.org>
- Date: Thu, 10 Jan 2008 22:31:52 +0100
- To: Erik Dahlström <ed@opera.com>
- Cc: "www-svg@w3.org" <www-svg@w3.org>
On Tuesday, January 8, 2008, 3:54:27 PM, Erik wrote:
(Your mail is responded to in a differnet order than how you wrote it)
ED> Spec[1] says: "The contentScriptType attribute on the 'svg' element
ED> specifies the default scripting language for the given document fragment."
ED> which seems to be in conflict with "Identifies the default scripting
ED> language for the given document."
ED> [1] http://www.w3.org/TR/SVG11/script.html#ScriptElement
ED> [2] http://www.w3.org/TR/SVGMobile12/script.html#ScriptElement
Its not in conflict. The wording in 1.2T is correct:
contentScriptType = "content-type"
Identifies the default scripting language for the given document.
This attribute sets the default scripting language for all the
instances of script in the document fragment. This language must
be used for all scripts that do not specify their own scripting
language. The value content-type specifies a media type, per
Multipurpose Internet Mail Extensions (MIME) PartTwo [RFC2046].
The default value is "application/ecmascript".
Animatable: no.
The wording in 1.1 differs in two details, firstly it assigns a
default of text/ecmascript to identify ECMAScript (while in practice
that language was subsequently registered as application/ecmascript)
and secondly the description fails to cover the case where there is
more than one SVG document fragment in the document.
SVGT 1.2 has a more precise definition of a conforming document
fragment.
So in this document
<foo xmlns="http://foobar.com/baz">
<svg contentScriptType="foo/bar"
xmlns="http://www.w3.org/2000/svg">
<script>
Hello, World
</script>
</svg>
<svg contentScriptType="application/ecmascript"
xmlns="http://www.w3.org/2000/svg">
<script>
Goodbye, World
</script>
</svg>
<svg
xmlns="http://www.w3.org/2000/svg">
<script>
Goodbye, cruel World
</script>
<script type="foo/bar">
Hello again, World!
</script>
</svg>
</foo>
There are three SVG document fragments; in two of them the default
script language is ECMAScript. Of the four script elements, the ones
with Hello are in foo/bar and the ones with Goodbye are ECMAScript.
ED> Reading the SVG 1.1 and 1.2T specs on how 'type' works on 'script'
ED> elements leads me to a couple of questions:
ED> 1. Given the markup below should the script element with id="s1" run?
No, because there is no script element in the SVG document fragment
(either for 1.1 or 1.2T)
ED> <svg contentScriptType="foo/bar"
ED> xmlns="http://www.w3.org/2000/svg"><foo
ED> xmlns="http://foobar.com/baz"><script id="s1"
ED> xmlns="http://www.w3.org/2000/svg"> alert('whee'); </script></foo></svg>
ED> The script element has to move across the unknown markup to get the
ED> default scripttype, and if it gets that it shouldn't be executed unless it
ED> understands "foo/bar". Otherwise, one could see it such that it defaults
ED> to "text/ecmascript" even though it lacks a direct 'svg' parent. The
ED> script is executed in ASV3, Safari 3, Firefox 3, Opera 9.x and Batik 1.7.
ED> I guess this can mean that either 'contentScriptType' is not supported, or
ED> that all viewers assume ecmascript always or that the namespace border
ED> isn't crossed and that it assumes that it is ecmascript.
Several of those reasons may be true; a simpler test will determine
whether contentScriptType and/or type are implemented. If they are
not, then the more complex test is not useful. if they both are
implemented, then your test demonstrates failure to conform to the
definition of an SVG document fragment.
ED> The spec isn't
ED> very clear on how it should work, if you are allowed to cross namespace
ED> boundaries in search of an 'svg' parent element, or what happens if there
ED> is none (although it is a required attribute in 1.1 none of the viewers
ED> seemed to respect that).
That should be an erratum for 1.1 since it can't be both required and
also have a default value :)
ED> 2. Does 'contentScriptType' work on document fragments or on documents?
Document fragments.
ED> That is does nesting 'svg' elements mean that you use the innermost or
ED> outermost 'svg' element when getting 'contentScriptType'?
Innermost.
--
Chris Lilley mailto:chris@w3.org
Interaction Domain Leader
Co-Chair, W3C SVG Working Group
W3C Graphics Activity Lead
Co-Chair, W3C Hypertext CG
Received on Thursday, 10 January 2008 21:32:01 UTC