From www@deja.com Fri Jan 5 14:35:45 2001 Message-ID: <935hae$bda$1@nnrp1.deja.com> From: oleg@pobox.com Subject: Re: XEXPR needs Schemers' help Date: Fri, 05 Jan 2001 22:20:06 GMT Reply-To: oleg@pobox.com Newsgroups: comp.lang.scheme Organization: Deja.com References: X-Article-Creation-Date: Fri Jan 05 22:20:06 2001 GMT X-Http-User-Agent: Mozilla/4.72 [en] (X11; I; FreeBSD 4.0-RELEASE i386; Nav) Status: OR > > I think you meant #CDATA, not #PCDATA (just in case anyone is > > learning about XML/SGML here). > > Actually, I do mean #PCDATA, since there would be embedded XML tags > that must conform to XML syntax. You write CDATA to define the type of an _attribute_: a string type (XML Recommendation, production [55]). There is no '#' before CDATA. You write #PCDATA to define a mixed content model of an _element_ (XML Recommendation, production [51]). CDATA and #PCDATA can't be used in the same sentence, so to speak. For example: defines elements like arbitrary char data Note that #PCDATA as an element content model means "character data". These character data must not contain '<' characters. Therefore, elements char data char char <data/> char satisfy the (#PCDATA) content model constraint, but char char does not. You cannot define C as as the C element above will be invalid: see validity constraint "Element Valid" attached to production [39] of the XML Recommendation. You should define C as If you don't want to specify in advance which elements may appear in C's content, you'd write > since there would be embedded XML tags that must conform to XML > syntax. "Embedded tags" always must conform to XML syntax. In particular, any character '<' that occurs outside of a comment or a CDATA section must be paired with a '>' character, and the text in-between must parse as a markup. (Section 2.4 of the Recommendation).