Note: this message has been forwarded to both the xerces-dev and
xerces-dev-c mailing lists
Using Xerces C, DocumentImpl.cpp Revision 1.11 2000/03/02
Both of the DocumentImpl constructors assign DocumentImpl::docType to NULL
which, in turn, means that DocumentImpl::getDoctype() always returns NULL.
I'm suspicious of the following constructor, in which a DocumentTypeImpl*
object is passed in [note: I have slightly modified the following fragment
for clarity]:
//DOM Level 2
DocumentImpl::DocumentImpl(
const DOMString &fNamespaceURI,
const DOMString &qualifiedName,
DocumentTypeImpl *doctype)
: NodeImpl(null, DStringPool::getStaticString("#document", &nam),
DOM_Node::DOCUMENT_NODE, false, null)
{
if (doctype != null && doctype->getOwnerDocument() != null)
throw DOM_DOMException( //one doctype can belong to only one
DocumentImpl
DOM_DOMException::WRONG_DOCUMENT_ERR, null
);
docType=null;
if (doctype != null) {
doctype -> setOwnerDocument(this);
appendChild(doctype);
doctype -> referenced();
// ??? docType = doctype; ???? Shouldn't this be assigned here?
}
[snipped to save space]
}
Shouldn't SVGDocumentImpl::docType be assigned doctype in this code block
where indicated by the ??? comment above? There doesn't seem to be any
other way to assign to DocumentImpl::docType.
S.