mirror of
https://github.com/postgres/postgres.git
synced 2025-05-31 00:01:57 -04:00
Rename xml_valid() to xml_is_well_formed(), but provide a temporary
alias with the old name for backwards compatibility. Per discussion, the old name is actively wrong because validity and well-formedness have different meanings in XML.
This commit is contained in:
parent
801cbe3310
commit
1246d797e4
@ -21,17 +21,24 @@ you can place it in a different directory in a PostgreSQL tree).
|
|||||||
Before you begin, just check the Makefile, and then just 'make' and
|
Before you begin, just check the Makefile, and then just 'make' and
|
||||||
'make install'.
|
'make install'.
|
||||||
|
|
||||||
This code requires libxml to be previously installed.
|
By default, this module requires both libxml2 and libxslt to be installed
|
||||||
|
on your system. If you do not have libxslt or do not want to use XSLT
|
||||||
|
functions, you must edit the Makefile to not build the XSLT functions,
|
||||||
|
as directed in its comments; and edit pgxml.sql.in to remove the XSLT
|
||||||
|
function declarations, as directed in its comments.
|
||||||
|
|
||||||
Description of functions
|
Description of functions
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
The first set of functions are straightforward XML parsing and XPath queries:
|
The first set of functions are straightforward XML parsing and XPath queries:
|
||||||
|
|
||||||
xml_valid(document) RETURNS bool
|
xml_is_well_formed(document) RETURNS bool
|
||||||
|
|
||||||
This parses the document text in its parameter and returns true if the
|
This parses the document text in its parameter and returns true if the
|
||||||
document is well-formed XML.
|
document is well-formed XML. (Note: before PostgreSQL 8.2, this function
|
||||||
|
was called xml_valid(). That is the wrong name since validity and
|
||||||
|
well-formedness have different meanings in XML. The old name is still
|
||||||
|
available, but is deprecated and will be removed in 8.3.)
|
||||||
|
|
||||||
xpath_string(document,query) RETURNS text
|
xpath_string(document,query) RETURNS text
|
||||||
xpath_number(document,query) RETURNS float4
|
xpath_number(document,query) RETURNS float4
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
--SQL for XML parser
|
--SQL for XML parser
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION xml_valid(text) RETURNS bool
|
CREATE OR REPLACE FUNCTION xml_is_well_formed(text) RETURNS bool
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C STRICT IMMUTABLE;
|
AS 'MODULE_PATHNAME' LANGUAGE C STRICT IMMUTABLE;
|
||||||
|
|
||||||
|
-- deprecated old name for xml_is_well_formed
|
||||||
|
CREATE OR REPLACE FUNCTION xml_valid(text) RETURNS bool
|
||||||
|
AS 'MODULE_PATHNAME', 'xml_is_well_formed' LANGUAGE C STRICT IMMUTABLE;
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION xml_encode_special_chars(text) RETURNS text
|
CREATE OR REPLACE FUNCTION xml_encode_special_chars(text) RETURNS text
|
||||||
AS 'MODULE_PATHNAME' LANGUAGE C STRICT IMMUTABLE;
|
AS 'MODULE_PATHNAME' LANGUAGE C STRICT IMMUTABLE;
|
||||||
|
|
||||||
|
@ -24,4 +24,7 @@ DROP FUNCTION xpath_string(text,text);
|
|||||||
|
|
||||||
DROP FUNCTION xml_encode_special_chars(text);
|
DROP FUNCTION xml_encode_special_chars(text);
|
||||||
|
|
||||||
|
-- deprecated old name for xml_is_well_formed
|
||||||
DROP FUNCTION xml_valid(text);
|
DROP FUNCTION xml_valid(text);
|
||||||
|
|
||||||
|
DROP FUNCTION xml_is_well_formed(text);
|
||||||
|
@ -42,7 +42,7 @@ xmlChar *pgxml_texttoxmlchar(text *textstring);
|
|||||||
static xmlXPathObjectPtr pgxml_xpath(text *document, xmlChar * xpath);
|
static xmlXPathObjectPtr pgxml_xpath(text *document, xmlChar * xpath);
|
||||||
|
|
||||||
|
|
||||||
Datum xml_valid(PG_FUNCTION_ARGS);
|
Datum xml_is_well_formed(PG_FUNCTION_ARGS);
|
||||||
Datum xml_encode_special_chars(PG_FUNCTION_ARGS);
|
Datum xml_encode_special_chars(PG_FUNCTION_ARGS);
|
||||||
Datum xpath_nodeset(PG_FUNCTION_ARGS);
|
Datum xpath_nodeset(PG_FUNCTION_ARGS);
|
||||||
Datum xpath_string(PG_FUNCTION_ARGS);
|
Datum xpath_string(PG_FUNCTION_ARGS);
|
||||||
@ -166,12 +166,12 @@ pgxml_parser_init()
|
|||||||
|
|
||||||
/* Returns true if document is well-formed */
|
/* Returns true if document is well-formed */
|
||||||
|
|
||||||
PG_FUNCTION_INFO_V1(xml_valid);
|
PG_FUNCTION_INFO_V1(xml_is_well_formed);
|
||||||
|
|
||||||
Datum
|
Datum
|
||||||
xml_valid(PG_FUNCTION_ARGS)
|
xml_is_well_formed(PG_FUNCTION_ARGS)
|
||||||
{
|
{
|
||||||
/* called as xml_valid(document) */
|
/* called as xml_is_well_formed(document) */
|
||||||
xmlDocPtr doctree;
|
xmlDocPtr doctree;
|
||||||
text *t = PG_GETARG_TEXT_P(0); /* document buffer */
|
text *t = PG_GETARG_TEXT_P(0); /* document buffer */
|
||||||
int32 docsize = VARSIZE(t) - VARHDRSZ;
|
int32 docsize = VARSIZE(t) - VARHDRSZ;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/datatype.sgml,v 1.174 2006/09/16 00:30:12 momjian Exp $ -->
|
<!-- $PostgreSQL: pgsql/doc/src/sgml/datatype.sgml,v 1.175 2006/09/16 16:18:11 tgl Exp $ -->
|
||||||
|
|
||||||
<chapter id="datatype">
|
<chapter id="datatype">
|
||||||
<title id="datatype-title">Data Types</title>
|
<title id="datatype-title">Data Types</title>
|
||||||
@ -3345,8 +3345,8 @@ SELECT * FROM pg_attribute
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
<filename>/contrib/xml2</> has a function called
|
<filename>/contrib/xml2</> has a function called
|
||||||
<function>xml_valid()</> that can be used in a <literal>CHECK</>
|
<function>xml_is_well_formed()</> that can be used in a <literal>CHECK</>
|
||||||
constraint to enforce that a field contains valid <acronym>XML</>.
|
constraint to enforce that a field contains well-formed <acronym>XML</>.
|
||||||
It does not support validation against a specific <acronym>XML</>
|
It does not support validation against a specific <acronym>XML</>
|
||||||
schema. A server-side language with <acronym>XML</> capabilities
|
schema. A server-side language with <acronym>XML</> capabilities
|
||||||
could be used to do schema-specific <acronym>XML</> checks.
|
could be used to do schema-specific <acronym>XML</> checks.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user