Unlike XML, SGML is configurable. I.e. you can have different sorts of DTD grammars (and the default does NOT work with XML) . So when you configure your SGML application (see Create an SGML application), you tell the SGML parser to be as XML compatible as you can figure;) Here is what I did:
e.g. cp /unige/frame_6.0/fminit/usenglish/sgml/docbook/app/sgmldcl StepbyStep-sgmldcl
Edit this file according to the next step. Or better , just use file "Stepbystep-sgmldcl" that comes with this tutorial (made by J. Hartog and not myself). Later you will have to reference this file from an SGML declaration, but for now move on.
This will allow you to read an XML DTD, else you will have to come up with a "standard" SGML DTD instead (sorry don't know what and if there is a default/standard way for defining DTDs in SGML, but I call it that way). Make sure that you have at least:
MINIMIZE DATATAG NO OMITTAG NO RANK NO SHORTTAG YES
NAMECASE GENERAL NO ENTITY NO
Your really must do this. E.g. if you don't make sure that "NAMECASE GENERAL NO", FrameMaker will Capitalize elements when it builds an EDD file from a DTD, and of course when later you export a DTD or an XML file you are stuck with Capitalized elements and your original XML DTD won't fit anymore.