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) Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ [EMAIL PROTECTED] | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ _______________________________________________ xml mailing list, project page http://xmlsoft.org/ xml@gnome.org http://mail.gnome.org/mailman/listinfo/xml