Re-framing content with XFrames (2/2) - exploring XML
Re-framing content with XFrames
Populating a Frameset
An XFrames document is referenced by a URI of the form
frameelement within the document with an
idattribute with that value. Each associated URI is then assigned to that frame. If there is no frame with that
id, the URI is ignored. If a frame within the document is not populated (because it has no
idattribute, or because there is no parameter that uses its id), and it has a
sourceattribute, the URI in that attribute is used instead. If an unpopulated frame has no
sourceattribute, the frame is left blank. Relative parameter URIs are interpreted relative to the XFrames document, taking into account any
xml:basevalue on the
<frames>element. Having associated URIs to the frames, the XFrames document is displayed accordingly.
This process avoids most of the problems outlined at the beginning of the article
by including the URLs of the sub-documents in the frameset URL.
For example, in a document
home.xfm, describing the following
------- | a | | |---| c | | b | | -------
and populated as follows
the frames would be populated by assigning
1.xhtml to the
2.xhtml to the frame with
3.xhtml to the frame with
------- | 1 | | |---| 3 | | 2 | | -------
Populated as follows:
the frame with
id="c" would be populated with
Populated as follows
the frame with
id="b" would additionally be left blank.
Populated as follows:
the frames with
id="b"would be blank, and the frame with
id="c"would be associated with
nav.xmlwould be ignored).
Links and Targets
If a document assigned to a frame contains hyperlinks, and one of these is activated, then the URI of that hyperlink is normally assigned to the frame instead, and the XFrames document is redisplayed.This changes the URI associated with the frameset, by adding or replacing an association between the frame and the URI for the frame document; this would normally be visible to the user. If the frame containing the document does not have an id attribute, so that such an association is not possible, the entire frameset is replaced by the linked-to document.
If the hyperlink is in some way targetted (for instance by being
associated with a target attribute in XHTML 1.0
), then in the
containing frameset a frame with an
id equal to the target is
located, and the URI is associated with that frame instead. If the current
frameset contains no such
id, but the frameset is associated with a
frame in another frameset, then the process continues with that frameset, and so
on. If no matching
id is found, then the targetted resource is
processed in an entirely new environment (for instance, a visual browser might
open a new window).
Again, this process ensures that the frameset's URL contains all the sub-URLs to reconstruct all frames correctly.
Sizing, Styling and Rendering of Frames
All styling, positioning, and sizing of frames is done using a style sheet in
CSS or some other suitable styling language. This means that there is nothing
normative in the names
except a suggestion on how they should be rendered, and a default presentation
in the absence of a stylesheet. If the
<frame> elements (and no
<column> elements), the default
is to render them as tabbed or overlapping panes.
In the absence of height and width information from a style sheet, rows and columns are divided equally over the space available to them without regards to their content. Note that the stylesheet in an XFrames document has no effect on the contents of any frame.
XFrames tries to fix the problems associated with the frameset specification in HTML. We will have to wait and see at what rate the browser manufacturers will absorb all the innovations coming out of W3C, such as XFrames, XHTML 2.0 and XHTML+MathML+SVG profiles. After all, specifications are only as useful as the number of successful implementations they spark. For more details review the original XFrames specification, from which this document is derived.
Produced by Michael Claßen
Created: Sep 02, 2002
Revised: Sep 02, 2002