- From: Arnold, Curt <Curt.Arnold@hyprotech.com>
- Date: Fri, 2 Mar 2001 17:59:58 -0500 (EST)
- To: "'xml-dev@lists.xml.org'" <xml-dev@lists.xml.org>
- Cc: "'xsl-editors@w3.org'" <xsl-editors@w3.org>, "'www-svg@w3.org'" <www-svg@w3.org>
XSLT 1.1, SVG 1.0 and HTML 4.01 define a <script> element, however their current forms are not coordinated. XSLT 1.1 (http://www.w3.org/TR/xslt11/#define-extension-functions) <!-- Category: top-level-element --> <xsl:script implements-prefix = ncname language = "ecmascript" | "javascript" | "java" | qname-but-not-ncname src = uri-reference archive = uri-references> <!-- Content: #PCDATA --> </xsl:script> HTML 4.01 http://www.w3.org/TR/1999/REC-html401-19991224/interact/scripts.html#h-18.2.1 <!ELEMENT SCRIPT - - %Script; -- script statements --> <!ATTLIST SCRIPT charset %Charset; #IMPLIED -- char encoding of linked resource -- type %ContentType; #REQUIRED -- content type of script language -- src %URI; #IMPLIED -- URI for an external script -- defer (defer) #IMPLIED -- UA may defer execution of script -- event CDATA #IMPLIED -- reserved for possible future use -- for %URI; #IMPLIED -- reserved for possible future use -- > SVG 1.0 http://www.w3.org/TR/SVG/script.html <!ELEMENT script (#PCDATA) > <!ATTLIST script %stdAttrs; %xlinkRefAttrs; xlink:href %URI; #IMPLIED externalResourcesRequired %Boolean; #IMPLIED type %ContentType; #REQUIRED > -------------- Both HTML 4.01 and SVG 1.0 depend on a required type attribute containting a MIME type that indicates the type of script ("text/ecmascript" for example). XSLT 1.1 proposes a language attribute with a qname/enumeration union type. HTML 4.01 deprecates a "language" attribute in preference to the "type" attribute. Changing XSLT 1.1 to use a type attribute contain a MIME type would seem to be the best approach. I haven't found a MIME registry equivalent to the URI schema registry at http://www.w3.org/Addressing and if someone knows of one please let me know. However, I assume that you could use "text/java" or "text/cpp" for Java or C++ source and "application/java" or something similar for Java bytecode or JAR's. It would seem that the "archive" attribute would be unnecessary if there were distinct MIME types for a Java .jar or Win32 library. Both HTML 4.01 and XSLT 1.1 use a src attribute if the script is contained in an external resource, SVG uses xlink:href. Either SVG should be changed to use "src" or XSLT 1.1 should be changed to use xlink:href. XSLT 1.1 has the requirement that redundant implementations of the same behavior can be specified so that one stylesheet could be executed as long as one of the script types were supported. This is accomplished by only loading one script element that has a particular implements-prefix value. It would be useful if SVG could identify specific script elements as being redundant implementations. If you attempted to cover all your bases providing <script> elements in ECMAScript, VBScript and Java, a processor that implemented multiple scripting languages would run them all. The idea of associating a script element with a specific URI (ala XSLT) is probably the right approach. However, namespace prefixes are too fragile to use to use in SVG. Possibly, an implements attribute that has a URI value would work both for XSLT and SVG. In both SVG and XSLT, if there are multiple <script> elements with the same value for implements, only one would be loaded. In SVG, the implements attribute would be optional and all script elements without an implements attribute would be executed. A <script type="application/java"> in SVG might be implemented by invoking a constructor of the specific class that takes a SVGScriptElement as an argument. Any public properties or methods of the class would be added to the environment.
Received on Monday, 5 March 2001 10:11:23 UTC