This looks like an implementation error. FC caches all the grammars it uses for validation, but the Xerces XML parser does not allow an internal DTD subset when a cached grammar is in use. Grammars are cached for performance reasons.
I've only ever seen one epub in the wild use an internal subset, so I postponed dealing with this. Bottom line: yes, this is an FC error. On the other hand, I'd suggest avoiding internal DTD subsets completely. They're not well supported on Reading Systems. AFAIK, only ADE handled them correctly back when I was testing the XML parsers of the various RS's (although this was more than a year ago). Other RS's were touch-and-go.
|