On 26/08/2008, Daniel Veillard <[EMAIL PROTECTED]> wrote: > On Mon, Aug 25, 2008 at 08:12:49PM +0100, Martin (gzlist) wrote: > > On 25/08/2008, Boz <[EMAIL PROTECTED]> wrote: > > > 2008/8/25 Steven 黄 <[EMAIL PROTECTED]>: > > > > > > > I am a xml beginnner, and I am using libxml2 to edit some data for a > system > > > > configuration file which doesn't contain <?xml version="1.0">(all > elements > > > > in this xml are quite standard). Even Though adding this tag to the > file has > > > > no effect on anything, I still don't like to add it. > > > > > > > > > As per http://xmlsoft.org/html/libxml-xmlsave.html#xmlSaveOption > > > > > > You can pass XML_SAVE_NO_DECL to prevent the xml declaration being > output > > > > This is what I was going to say too, but also note you should only use > > unicode encodings (like the default, UTF-8) if you do this, as the > > encoding declaration goes in the XML prologue as well, and libxml2 > > will happily omit it if instructed - even in cases where it's required > > for a well-formed document. > > > There are reasons for this: > - first the environment can provide an encoding so even if > you save to an non UTF-8 or non UTF-16 encoding, it is possible > to parse it back, assuming the environment (like an HTTP header > or filesystem metadata) provides it and it's given as an argument > to the parser (see appendix F) > - it's needed if you want to embbed a document fragment in another > because an XMLDecl found in the middle of a document is a > well-formedness error. > - it's also needed for XSLT, because <xsl:output> requires that > capability (not mandatory but everyone expects it)
Ah, sorry, yes there certainly are cases where this is exactly what you want. (There are even times when you want even finer control over serialisation details, like omitting the terminal newline.) Was just pointing out a potential gotcha as the op was under the impression it "has no effect on anything". Martin _______________________________________________ xml mailing list, project page http://xmlsoft.org/ [email protected] http://mail.gnome.org/mailman/listinfo/xml
