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

Reply via email to