Bug #3402

internal dtds are not handled

Added by Chad Berkley about 14 years ago. Updated almost 9 years ago.

In Progress
Target version:
Start date:
Due date:
% Done:


Estimated time:


XML documents with internal DTDs are not handled by metacat. The internal dtd entity callback in the sax parser is blank and doesn't do anything when presented with an internal dtd.


#1 Updated by Chad Berkley about 14 years ago

I have fixed this problem in the SMS branch so that any file that is uploaded via the insertMultipart action can be read from disk instead of from the database. This allows the xml document to retain any internal DTD declarations it has. It works because the multipart upload method already writes any multipart files to disk so when a read request comes in, metacat now checks to see if the document exists on disk as well as in the database. If it exists on disk and the qformat is xml, it reads the document off of disk instead of from the database.

Note that this will only work for files that are uploaded using the multipartInsert action. We may want to enable this type of caching for the other upload methods as well.

I'm going to leave this bug open to track this issue, but for the SMS needs, this issue is essentially fixed.

#2 Updated by Redmine Admin over 9 years ago

Original Bugzilla ID was 3402

#3 Updated by ben leinfelder about 9 years ago

  • Target version changed from Unspecified to 2.1.0
  • Assignee changed from Chad Berkley to ben leinfelder

We are saving the XML doc (both inserted and uploaded) to disk now - not sure if this problem persists.

#4 Updated by ben leinfelder almost 9 years ago

  • Target version changed from 2.1.0 to 2.x.y

Also available in: Atom PDF