DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24634>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24634

DOMWriter fails to write SYSTEM identifier

           Summary: DOMWriter fails to write SYSTEM identifier
           Product: Xerces-C++
           Version: 2.1.0
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: DOM
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


Recently moved from version 2.0.1 Xerces to 2.1.0. In order to show exactly the 
error I have, I have modified CreateDomDocument sample and pasted the most 
important parts here for your inspection. In 2.0.1, it writes an xml file 
called test.xml with the following header:
<?xml version="1.0" encoding="UTF-16" standalone="no" ?><!DOCTYPE company 
SYSTEM "company.dtd">

In 2.1.0 version, the SYSTEM "company.dtd" is left out as follows:
<?xml version="1.0" encoding="UTF-16" standalone="no" ?><!DOCTYPE company>

Here is the modified code to use to show. The SYSTEM dtd no longer gets gets 
written out. I hope this is enough info. Thanks!!!!!!!

      XMLCh *buffer;
      xmlout.open("test.xml",ios::out | ios::app | 0666 );

        DOMImplementation* impl =  
DOMImplementationRegistry::getDOMImplementation(X("Core"));

        DOMWriter *theSerializer = ((DOMImplementationLS *)impl)-
>createDOMWriter();

        DOMDocumentType *docType = impl->createDocumentType(X("company"),0,X
("company.dtd"));

        DOMDocument* doc = impl->createDocument(
                    0,                    // root element namespace URI.
                    X("company"),         // root element name
                    docType);                   // document type object (DTD)

        XMLFormatTarget *myFormTarget = new LocalFileFormatTarget("test.xml");

        DOMElement* rootElem = doc->getDocumentElement();

        DOMElement*  prodElem = doc->createElement(X("product"));
        rootElem->appendChild(prodElem);

        DOMText*    prodDataVal = doc->createTextNode(X("Xerces-C"));
        prodElem->appendChild(prodDataVal);

        DOMElement*  catElem = doc->createElement(X("category"));
        rootElem->appendChild(catElem);

        catElem->setAttribute(X("idea"), X("great"));

        DOMText*    catDataVal = doc->createTextNode(X("XML Parsing Tools"));
        catElem->appendChild(catDataVal);

        DOMElement*  devByElem = doc->createElement(X("developedBy"));
        rootElem->appendChild(devByElem);

        DOMText*    devByDataVal = doc->createTextNode(X("Apache Software 
Foundation"));
        devByElem->appendChild(devByDataVal);

        //
        // Now count the number of elements in the above DOM tree.
        //

        buffer = theSerializer->writeToString(*doc);
        xmlout<<XMLString::transcode(buffer)<<endl;
        xmlout.close();
        unsigned int elementCount = doc->getElementsByTagName(X("*"))->getLength
();
        cout << "The tree just created contains: " << elementCount
             << " elements." << endl;

        doc->release();

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to