[X3D-Public] X3D and HTML 5
Joe D Williams
joedwil at earthlink.net
Thu Apr 23 12:11:59 PDT 2009
Since HTML 5 is becoming a hot topic and many X3D authors are
interested in publishing X3D as part of an html or xhtml web page, I
thought I would see what we think about it.
Of the elements described in
"HTML 5 A vocabulary and associated APIs for HTML and XHTML"
the important entries for X3D are:
4.8.5 The object element
"an external resource ... either be treated as an image, as a nested
browsing context, or as an external resource to be processed by a
4.8.6 The param element
name-value pairs passed to the plug-in when the plugin starts running
of is connected to the host DOM.
Together, these elements provide the structure for defining the mime
type, thus the plugin to be used, and running the content. The param
elements are used only as children of the object element and provide a
means to pass runtime information between the host DOM and the plugin.
Not of immediate interest are:
4.8.2 The img element
"non-interactive, optionally animated, image resource that is neither
paged nor scripted."
4.8.3 The iframe element
" ... a nested browsing context ... "
4.8.4 The embed element
" ... an integration point for an external (typically non-HTML)
application or interactive content ..."
Of these, the img element is entirely passive with respect to its
container and although it may be an somthing like an animated gif, the
important point is that it is a static element that cannot contain
internally or externaly scripted live content. The iframe element is a
container of potentialy active and navigable content, but X3D would
more likely use an iframe to contain an object element. The embed
element might be use as a container for an X3D scene, but I think the
standard wording and general intent shows that embed is included for
legacy reasons and has a narrower scope than the object element.
Thus, to focus on the object element and its contained param elements,
the general idea is that the host browser looks at the mime type and
if there is a plugin available the plugin is started, then the
attributes and parms are passed to the plugin; everything runs as
expected and all is cool.
HTML 5 adds a detailed algorithm for getting the plugin running and
retrieving content for the plugin including the concepts of sandboxing
and of the nested browsing context.
Thanks and Best Regards,
More information about the X3D-Public