Suppose one could then write
<TAG1 ATTR ATTR2 ; TAG2 ATTRSF SDF SDF>instead of
<TAG1 ATTR ATTR2> <TAG2 ATTRSF SDF SDF>Try this with your average DTD and see how clean it looks! The result looks like (what it should be) a computing language with text as parameters.
<SECTION LEVEL=2> <STITLE ID=ABC>What Next? </STITLE> <IDX> <FIG X=7 y=67 CAP="The solution"> Hello </FRE> </IDX>would come out like
SECTION LEVEL=2; STITLE ID=ABC >What Next?< /STITLE; IDX; FIG X=7 y=67 CAP="The solution" >Hello< /FIG; /IDX;It makes so much more sense to quote the text instead of the markup when there is much more markup than text. This way it can look like language with embedded text or text with embedded markup depending on which is predominant.
SECTION LEVEL=2; STITLE ID=ABC >What Next?< /STITLE; IDX; FIG X=7 y=67 CAP=>The solution< >Hello< /FIG; /IDX;Now we have only one form of quoting and we can easily distinguish between markup and text because one is inside and the other outside the quotes.
If you run Dynatext, for example, all you have to do is tell it which elements are empty and it can do a good job without any DTD. It should really be possible to see the structure at a low level. So I would suggest some kind of opening symbol which was mandatory on all element opening tags. maybe a trailing / for symetry with the leading / of the closing tag. For example:
SECTION/ LEVEL=2; STITLE/ ID=ABC >What Next?< /STITLE; IDX/; FIG/ X=7 y=67 CAP=>The solution< >Hello< /FIG; / IDX;Now I can parse that and see that I am missing a section end.
Of course real language people might want use a different concrete syntax:
{ section(level=2) { stitle(id=abc) "What's Next?" } stitle { idx { fig (x=7, y=67, cap="The solution") "Hello" } fig } idxbut we wouldn't like SGML not to look like SGML, would we? :-)
Tim BL