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/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml