Subject: Re: New XML section for documentation

From: Bruce Momjian <[email-masked]>
Date: Wed, 6 Sep 2006 20:06:08 -0400 (EDT)

I have added a modified version of this to the SGML documentation,
under data types.

---------------------------------------------------------------------------

bruce wrote:
> Here is an new XML section for our SGML documentation.  It explains the
> various XML capabilities, if we support them, and how to use them.
> 
> Comments?
> 
> ---------------------------------------------------------------------------
> 
> 
> XML Document Support
> ====================
> XML support is not one capability, but a variety of features supported
> by a database.  These capabilities include storage, import/export,
> validation, indexing, efficiency of modification,  searching,
> transformating, and XML to SQL mapping.  PostgreSQL supports some but
> not all of these XML capabilities.  Future releases of PostgreSQL will
> continue to improve XML support.
> 
> Storage
> -------
> PostgreSQL stores XML documents as ordinary text documents.  It does not
> split apart XML documents into its component parts and store each
> element separately.  You can use middle-ware solutions to do that, but
> once done, the data becomes relational and has to be processed
> accordingly.
> 
> Import/Export
> -------------
> Because XML documents are stored as normal text documents, they can be
> imported/exported with little complexity.  A simple TEXT field can hold
> up to 1 gigabyte of text, and large objects are available for larger
> documents.
> 
> Validation
> ----------
> /contrib/xml2 has a function called xml_valid() that can be used in
> a CHECK constraint to enforce that a field contains valid XML.  It
> does not support validation against a specific XML schema.  A
> server-side language with XML capabilities could be used to do
> schema-specific XML checks.
> 
> Indexing
> --------
> Because XML documents are stored as text, full-text indexing tool
> /contrib/tsearch2 can be used to index XML documents.  Of course, the
> searches are text searches, with no XML awareness, but tsearch2 can be
> used with other XML capabilities to dramatically reduce the amount of
> data processed at the XML level.
> 
> Modification
> ------------ 
> If an UPDATE does not modify an XML field, the XML data is shared
> between the old and new rows.  However, if the UPDATE modifies a XML
> field, a full modified copy of the XML field must be created internally.
> 
> Searching
> ---------
> XPath searches are implemented using /contrib/xml2.  It processes XML
> text documents and returns results based on the requested query.
> 
> Transforming
> ------------
> /contrib/xml2 supports XSL transformations.
> 
> XML to SQL Mapping
> -------------------
> This involves converting XML data to and from relational structures. 
> PostgreSQL has no internal support for such mapping, and relies on
> external tools to do such conversions.
> 
> Missing Features
> ----------------
> 	o  XQuery
> 	o  SQL/XML syntax (ISO/IEC 9075-14)
> 	o  XML data type optimized for XML storage
> 
> See also http://www.rpbourret.com/xml/XMLAndDatabases.htm
> 
> -- 
>   Bruce Momjian   [email-masked]
>   EnterpriseDB    http://www.enterprisedb.com
> 
>   + If your life is a hard drive, Christ can be your backup. +

-- 
  Bruce Momjian   [email-masked]
  EnterpriseDB    http://www.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +