You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xerces.apache.org by "Hellmann Peter (ext) ICM RDC IS VDR RD" <Pe...@mch.siemens.de> on 2002/04/05 12:42:39 UTC

doctype is retained

Dave,

it's only good that you find the code snippet useful, sometimes i wonder why
such elementary things
are not available in FAQs or HOW-TO docs, because in this case i believe
that many wants to serialize
a DOM tree back to an XML string after manipulation. Yes, that code does the
job just fine.

Yes, i just found out today that when i do an oformat.setDoctype(null,
"cheers"); it does not set the
doctype to "cheers", the original is used instead. I have no idea about this
effect, i bet it is a bug
because usually one believes that a Set() function works properly.

cheers,

Peter

> -----Ursprüngliche Nachricht-----
> Von: Dave Barfield [mailto:dave_barfield@uk.ibm.com]
> Gesendet: Freitag, 5. April 2002 12:04
> An: xerces-j-user@xml.apache.org
> Betreff: Re: AW: Setting a DOCTYPE Declaration through 
> DocumentType for
> a bran d ne w document
> 
> 
> 
> Peter,
> 
> Thank you for that code I found it very useful.  One thing I 
> noticed which
> I can't find documented anywhere ...
> 
> 
> >>   oformat.setDoctype(null, document.getDoctype().getSystemId());
> 
> I modified the line above to say
> 
> 
> oformat.setDoctype(null, "file:/c:/temp/new.dtd");
> 
> It seems that if the document had no doctyope already defined 
> this works
> okay BUT if it does then using the setDoctype does get used 
> (the original
> DTD is retained).  Can't find any note to this effect in the Javadoc.
> 
> Do you know why this is or better still a way to override the 
> existing DTD
> with the specified one?
> 
> Cheers ... Dave
> 
> P.S. I am using XML4J 3.0.1 based on Xerces 1.2.0
> 
> Dave Barfield
> e-Business Integration Technology
> IBM Hursley, MP 188, Hursley Park, Winchester, SO21 2JN, England
> Phone: Internal 7-245131, external 44-1962-815131
> E-mail: dave_barfield@uk.ibm.com
> 
> 
>                                                               
>                                                               
>               
>                       "Hellmann Peter                         
>                                                               
>               
>                       (ext) ICM RDC IS VDR        To:       
> "'xerces-j-user@xml.apache.org'" 
> <xe...@xml.apache.org>               
>                       RD"                         cc:         
>                                                               
>               
>                       <Peter.Hellmann@mch.        Subject:  
> AW: Setting a DOCTYPE Declaration through DocumentType for a 
> bran       d ne  
>                       siemens.de>                  w document 
>                                                               
>               
>                                                               
>                                                               
>               
>                       04/04/2002 14:59                        
>                                                               
>               
>                       Please respond to                       
>                                                               
>               
>                       xerces-j-user                           
>                                                               
>               
>                                                               
>                                                               
>               
>                                                               
>                                                               
>               
> 
> 
> 
> setDoctype() does the job !
> 
> 
> /**
>    * Gets the xml
>    *
>    * @return          the xml or "no valid document"
>    * @exception       Standard exception "Exception" will be thrown
>    *
>    */
> 
>   public String GetXml()
>   {
> 
>     if (null == document)
>        {
>        return "no valid document, cannot serialize DOM tree";
>        }
> 
>     OutputFormat oformat = new OutputFormat(document);
> 
>     oformat.setDoctype(null, document.getDoctype().getSystemId());
>     oformat.setLineWidth(80);
>     oformat.setIndent(2);
>     oformat.setLineSeparator("\r\n");
>     oformat.setPreserveSpace(false);
>     oformat.setOmitComments(false);
>     oformat.setOmitDocumentType(false);
>     oformat.setOmitXMLDeclaration(false);
>     oformat.setEncoding(encType);
>     oformat.setVersion("1.0");
>     oformat.setStandalone(true);
>     oformat.setIndenting(true);
>     oformat.setPreserveEmptyAttributes(true);
> 
>     StringWriter stringOut = new StringWriter();
> 
>     try
>     {
> 
>       XMLSerializer serial = new XMLSerializer(stringOut, oformat);
>       serial.asDOMSerializer();
> 
>       serial.serialize(document);
> 
>     }
>     catch (Exception e)
>     {
>       e.printStackTrace(System.err);
>     }
> 
>     return stringOut.toString();
>   }
> 
> > -----Ursprüngliche Nachricht-----
> > Von: Hand, Brian [mailto:b.hand@TriCorInd.com]
> > Gesendet: Mittwoch, 3. April 2002 23:45
> > An: 'xerces-j-user@xml.apache.org'
> > Betreff: Setting a DOCTYPE Declaration through DocumentType
> > for a brand
> > ne w document
> >
> >
> > Hi all,
> >
> > Being somewhat a newbie to Xerces I would like a create a
> > document (via a
> > save function) and I would like to set the <!DOCTYPE ....
> > statement in the
> > document to be saved.  I see that there are no setters in the
> > DocumentType
> > interface and was just wondering if someone could offer a
> > quick snippet of
> > code on how to set the <!DOCTYPE into the generated document.
> >
> > BTW I am using the DOM API.
> >
> > Thanks
> > Brian
> >
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
> > For additional commands, e-mail: xerces-j-user-help@xml.apache.org
> >
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
> For additional commands, e-mail: xerces-j-user-help@xml.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org