Is there a way to obtain the name of the DTD file using the SAX
implementation. I tried to override the docTypeDecl() interface with no
success.

Kiran

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Tuesday, April 04, 2000 2:09 PM
To: [EMAIL PROTECTED]
Cc: [email protected]
Subject: Re(2): DocumentImpl::docType



>docType is initialized to null first and later assigned the value of
>doctype
>within DocumentImpl::appendChild(doctype).  Note that
>DocumentImpl::appendChild() is resolved to NodeImpl::appendChild() which
>in
>turn calls DocumentImpl::insertBefore() to check if docType already exists
>then do the assignment.

Okay, this makes sense.  If I create a document programmatically and add a
DOM_DocumentType to it, DOM_Document::getDoctype() returns the appropriate
DOM_DocumentType object.  However, DOM_Document::getDoctype() _always_
returns null for a document created by a parser.  For example, given the
following document personal.xml:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE personnel SYSTEM "personal.dtd">
<personnel>
....
</personnel>

and the following sequence of calls:
...
DOMParser parser;
parser.setDoValidation(true);
parser.parse(personal.xml);
DOM_Document doc = parser.getDocument();
DOM_DocumentType doctype = doc.getDocumentType();
...

doctype is null (or rather, the underlying implementation is null).  Is
this the expected behaviour?  If so, how can I access DocumentType?  Note:
the same behaviour occurs if I substitute SYSTEM with PUBLIC in the
DOCTYPE declaration.  Personal.xml and personal.dtd are both processed
properly, their elements and attributes are correct and the DOM tree can
be  manipulated as expected, apart from the
DOM_Document::getDocumentType() call.

S.
 

Reply via email to