> (1) Do XML files have to have the suffix ".xml", or is it just convention?
Convention, but IMHO it would be rather pointless to use something else.
Servers can of course be configured to serve out files labelled text/xml
or application/xml for any given set of filetypes.
> Do DTD files have to have the suffix ".dtd", or is it also just
> (2) Suppose that you want to define in a DTD an element that contains
> string data (i.e., #PCDATA) followed by a single element. It is my
> understanding that the following is INCORRECT:
> <!ELEMENT elem1 (#PCDATA, elem2)>
> Is my understanding correct, i.e., that it is incorrect?
Yes, there's nothing wrong with that, syntactically, except you need
to be very careful of pernicious mixed content, eg
<elem1>foo bar <elem2>blort</elem2>
is invalid because the newline after the end of elem2 is regarded as
more character data and your content model forbids it.
> It is my understanding that this is the way to do it:
> <!ELEMENT elem1 (#PCDATA | elem2)*>
That allows arbitrary intermixing of character data and ELEM2s,
as many as you want.
> Is there a way to specify that you want PCDATA followed by an element?
You did it, but I'd be interested to know what it's needed for :-)
> (3) Can you have an entity for an element, i.e.,
> <!ENTITY conv "Conversation">
> <&conv;>Oh, by the way, did you see ...</&conv;>