- From: Stuart Ballard <sballard@netreach.com>
- Date: Wed, 21 Aug 2002 11:04:24 -0400
- To: Kynn Bartlett <kynn@idyllmtn.com>
- CC: Svgdeveloper@aol.com, tbray@textuality.com, www-style@w3.org, www-tag@w3.org
Kynn Bartlett wrote: > > 2. Another idea might be to require that XML documents be sent > with an appropriate style sheet if the XML is intended for > display to users (and not merely computer-to-computer > communication). > > 3. Here's yet another idea -- develop some sort of meta-language > which can be used to assign meaning to particular elements in > arbitrary XML, thereby telling the user agent what the language > means. Seems to me that by combining these two ideas, the problem can be solved *today* (at least if you're willing to disregard all but the very newest browsers - in the near-ish future, at least, if you aren't). My thought is that the best way to "assign meaning to particular elements in arbitrary XML" is to use XSLT to transform those elements to another language which already carries such meaning. Such as (gasp) XHTML! In other words, send generic XML by all means, and put as much (domain-specific and therefore unknowable to the browser) semantic content in it as possible. But accompany it with an XSLT stylesheet that transforms it into XHTML using XHTML's slightly lower-level semantics. For example, your XSLT could transform this: <singer> <name>Madonna</name> <album name="Ray Of Light"> <song name="Ray Of Light" released="true"> <release date="2001-xx-xx" /> <lyrics> <verse>...</verse> <chorus>...</chorus> </lyrics> </song> </album> </singer> Into this: <h1 class="singer">Madonna</h1> <h2 class="album">Ray of Light</h2> <h3 class="song">Ray of Light</h3> <p class="released-on">Released on <span class="date">xx Xxxxx 2001</span></p> <h4 class="subhead">Lyrics</h4> <blockquote class="verse">...</blockquote> <blockquote class="chorus">...</blockquote> (along with the <html><head>... stuff of course). Now the higher-level semantics "this is a singer" are not lost, and a smart client (eg an MP3 player?) can read the original XML directly. But a "dumb" client like a web browser still gets access to the lower-level semantics "this is a headline, this is a lower-level headline, this is a longish quoted section of something". Further, the XHTML can include its own CSS stylesheet to indicate a suggested rendition for traditional graphical browsers, without compromising the capability of accessibility-browsers to ignore the stylesheet and render headings in a way that's useful for that specific device. If the author is particularly interested in certain accessibility markets, CSS stylesheets for aural and/or braille representation can also be included, but these aren't necessary because the aural or braille browser has default stylesheets for XHTML that will do the job (contrast to the "require all arbitrary XML to be sent with a CSS stylesheet" position, where all arbitrary XML must include stylesheets for *all* media if it is to be accessible). In the future, it's possible that XML vocabularies with higher levels of well-understood semantics will become widely distributed, so that you can say "this is a credit card number, this is a date, this is a name" etc. When that happens, the same trick can be used - use XSLT to transform from the domain-specific semantics to the lower-level publically-understood semantics. And for legacy browsers, XSLT can also further translate these down to the still-lower level of semantics implicit in XHTML. Stuart. -- Stuart Ballard, Programmer NetReach - Internet Solutions (215) 283-2300, ext. 126 http://www.netreach.com/
Received on Wednesday, 21 August 2002 11:04:32 UTC