2009-07-14 9 views
1

Ich muss eine Reihe von eingehenden XML-Dokumente analysieren, sie alle haben die gleiche DTD. Ich möchte nicht, dass der Sax Parser die DTD jedes Mal lädt, wenn ein neues XML-Dokument analysiert werden muss. Kann ich eine DTD trotzdem in den Parser laden und bei nachfolgenden Parser-Aufrufen wiederverwenden?Load DTD in SAX-Parser in Java

Antwort

3

Ich bin mir nicht sicher, ob es Ihr Anliegen ist, die DTD von einer entfernten URL jedes Mal zu laden, wenn Sie ein Dokument laden.

Wenn ja, können Sie eine EntityResolver definieren und eine lokale Kopie der DTD angeben. Dadurch wird jedes Mal, wenn der SAX-Parser ein Dokument analysiert, eine Referenz auf die lokale Instanz der DTD bereitgestellt.

Ich glaube nicht, dass es eine Möglichkeit gibt, eine DTD vorzuladen/vorzuspeichern, leider.

+0

Ich möchte jeden Aufwand eliminieren, der mit dem Laden von redundanten DTD-Objekten zusammen verbunden ist. Ich werde viele XML-Dokumente in schneller Folge erhalten und muss sie schnell verarbeiten. – anio

+0

Ich denke, der einzige Overhead, den Sie beseitigen können, ist das Remote-Laden. –