vCard DTD

Chris Maden crism at
Tue Jan 27 01:08:25 GMT 1998

[Jason R. Cupp]
> Chris Maden wrote:
> > [Jason R. Cupp]
> > >       <!ELEMENT name (#PCDATA,firstname,surname,other?,suffix?,prefix?)>
> > 
> > This content model is not legal.  Any mixed content must be of the
> > forms:
> > 
> > (#PCDATA)
> > (#PCDATA | element1 | element2 | ... | elementN)*
> Do the content models in XML and SGML differ here? I've seen the
> first example around somewhere.

Yes.  Your example is legal SGML, but not XML.  It's what's called
"pernicious mixed content", and though legal, is a very bad idea.[1]
XML left banned it intentionally.

> Vcards offer two items: formatted name for looks and a structured
> name.

Then I think I'd recommend two different kinds of names, one with
content model (#PCDATA) and the other with (firstname,surname,...).
Then use (struct-name|free-name) in the parent content model.


[1] If you really want to know why, search comp.text.sgml on DejaNews
or e-mail me.
<!ENTITY crism PUBLIC "-//O'Reilly//NONSGML Christopher R. Maden//EN"
"<URL> <TEL>+1.617.499.7487
<USMAIL>90 Sherman Street, Cambridge, MA 02140 USA" NDATA SGML.Geek>

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list