Subject: XSL-optimized DTDs (Was: Re: Mixed content: selecting current context w/out child) From: "John E. Simpson" <simpson@xxxxxxxxxxx> Date: Sun, 14 Mar 1999 15:10:28 -0500 |
>>[I wrote]: >> <name>Candace Hilligoss<role>Mary Henry</role></name> At 01:29 PM 3/14/99 +0800, James Tauber pointed out: >...I don't think the above is particularly wise markup. Of course, >there is nothing illegal about it as far as XML goes (which is why I use the >term _wise_). What you are marking up as a "name" isn't a name. It's a >matching of two names and it will (as you've discovered) give you potential >problems later on if it isn't marked up as such. O indeed. This is the sort of reason why my 6-month-old DTD is already up to version 3.0 :). I think I'm learning that mixed-content models can be, well, rather perfidious, although they're handy for simplifying things to a structured-data-naive audience. Except in the case of paragraph-style elements where you can foresee a need for in-line content of the HTML <br>, <a> and <em> varieties, as well as exotica like IDREF pointers to other content in the document -- with those exceptions, mixed content really does seem to induce logical difficulties downstream. Similarly, it's beginning to seem a mistake to define first-level children which may occur multiple times, *without* enclosing them in their own container/wrapper parents, at least when the data are intended for XSL transformations to rendering. For instance, consider a scheduling application whose root is a calendar element: <!ELEMENT calendar (year)+ > <!ELEMENT year (month)+ > If left this way, when you actually have to transform a document instance into (say) HTML, you've got to do all sorts of first-of-type and not(first-of-type) exception processing for the for-each loops that build tables, lists, and so on. The XSL will be much cleaner if you can use this sort of structure instead: <!ELEMENT calendar (years) > <!ELEMENT years (year)+ > <!-- "wrapper" for multiple years --> <!ELEMENT year (months) > <!ELEMENT months (month)+ > <!-- "wrapper" for multiple months --> Then you just construct the "wrapper" HTML to correspond to the "wrapper" HTML. (I know, not that I need to tell *you* this. :) Just recounting the kind of thunderbolt to the consciousness that makes trying to grok all this on one's own so worthwhile.) ========================================================== John E. Simpson | The secret of eternal youth simpson@xxxxxxxxxxx | is arrested development. http://www.flixml.org | -- Alice Roosevelt Longworth XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: Mixed content: selecting curren, James Tauber | Thread | Re: XSL-optimized DTDs (Was: Re: Mi, John E. Simpson |
Intra-document transclusion in IE5, Rick Geimer | Date | Re: XSL-optimized DTDs (Was: Re: Mi, John E. Simpson |
Month |