CREATE TABLE xmltest (
    id int,
    data xml
);
INSERT INTO xmltest VALUES (1, '<value>one</value>');
ERROR:  unsupported XML feature
LINE 1: INSERT INTO xmltest VALUES (1, '<value>one</value>');
                                       ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
INSERT INTO xmltest VALUES (2, '<value>two</value>');
ERROR:  unsupported XML feature
LINE 1: INSERT INTO xmltest VALUES (2, '<value>two</value>');
                                       ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
INSERT INTO xmltest VALUES (3, '<wrong');
ERROR:  unsupported XML feature
LINE 1: INSERT INTO xmltest VALUES (3, '<wrong');
                                       ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT * FROM xmltest;
 id | data 
----+------
(0 rows)

SELECT xmlcomment('test');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlcomment('-test');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlcomment('test-');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlcomment('--test');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlcomment('te st');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlconcat(xmlcomment('hello'),
                 xmlelement(NAME qux, 'foo'),
                 xmlcomment('world'));
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlconcat('hello', 'you');
ERROR:  unsupported XML feature
LINE 1: SELECT xmlconcat('hello', 'you');
                         ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlconcat(1, 2);
ERROR:  argument of XMLCONCAT must be type xml, not type integer
LINE 1: SELECT xmlconcat(1, 2);
                         ^
SELECT xmlconcat('bad', '<syntax');
ERROR:  unsupported XML feature
LINE 1: SELECT xmlconcat('bad', '<syntax');
                         ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlconcat('<foo/>', NULL, '<?xml version="1.1" standalone="no"?><bar/>');
ERROR:  unsupported XML feature
LINE 1: SELECT xmlconcat('<foo/>', NULL, '<?xml version="1.1" standa...
                         ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlconcat('<?xml version="1.1"?><foo/>', NULL, '<?xml version="1.1" standalone="no"?><bar/>');
ERROR:  unsupported XML feature
LINE 1: SELECT xmlconcat('<?xml version="1.1"?><foo/>', NULL, '<?xml...
                         ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlconcat(NULL);
 xmlconcat 
-----------
 
(1 row)

SELECT xmlconcat(NULL, NULL);
 xmlconcat 
-----------
 
(1 row)

SELECT xmlelement(name element,
                  xmlattributes (1 as one, 'deuce' as two),
                  'content');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlelement(name element,
                  xmlattributes ('unnamed and wrong'));
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlelement(name element, xmlelement(name nested, 'stuff'));
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlelement(name employee, xmlforest(name, age, salary as pay)) FROM emp;
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlelement(name duplicate, xmlattributes(1 as a, 2 as b, 3 as a));
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlelement(name num, 37);
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlelement(name foo, text 'bar');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlelement(name foo, xml 'bar');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlelement(name foo, text 'b<a/>r');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlelement(name foo, xml 'b<a/>r');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlelement(name foo, array[1, 2, 3]);
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SET xmlbinary TO base64;
SELECT xmlelement(name foo, bytea 'bar');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SET xmlbinary TO hex;
SELECT xmlelement(name foo, bytea 'bar');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlelement(name foo, xmlattributes(true as bar));
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlelement(name foo, xmlattributes('2009-04-09 00:24:37'::timestamp as bar));
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlelement(name foo, xmlattributes('infinity'::timestamp as bar));
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlelement(name foo, xmlattributes('<>&"''' as funny, xml 'b<a/>r' as funnier));
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlparse(content 'abc');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlparse(content '<abc>x</abc>');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlparse(document 'abc');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlparse(document '<abc>x</abc>');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlpi(name foo);
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlpi(name xml);
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlpi(name xmlstuff);
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlpi(name foo, 'bar');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlpi(name foo, 'in?>valid');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlpi(name foo, null);
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlpi(name xml, null);
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlpi(name xmlstuff, null);
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlpi(name "xml-stylesheet", 'href="mystyle.css" type="text/css"');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlpi(name foo, '   bar');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlroot(xml '<foo/>', version no value, standalone no value);
ERROR:  unsupported XML feature
LINE 1: SELECT xmlroot(xml '<foo/>', version no value, standalone no...
                           ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlroot(xml '<foo/>', version '2.0');
ERROR:  unsupported XML feature
LINE 1: SELECT xmlroot(xml '<foo/>', version '2.0');
                           ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlroot(xml '<foo/>', version no value, standalone yes);
ERROR:  unsupported XML feature
LINE 1: SELECT xmlroot(xml '<foo/>', version no value, standalone ye...
                           ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlroot(xml '<?xml version="1.1"?><foo/>', version no value, standalone yes);
ERROR:  unsupported XML feature
LINE 1: SELECT xmlroot(xml '<?xml version="1.1"?><foo/>', version no...
                           ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlroot(xmlroot(xml '<foo/>', version '1.0'), version '1.1', standalone no);
ERROR:  unsupported XML feature
LINE 1: SELECT xmlroot(xmlroot(xml '<foo/>', version '1.0'), version...
                                   ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlroot('<?xml version="1.1" standalone="yes"?><foo/>', version no value, standalone no);
ERROR:  unsupported XML feature
LINE 1: SELECT xmlroot('<?xml version="1.1" standalone="yes"?><foo/>...
                       ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlroot('<?xml version="1.1" standalone="yes"?><foo/>', version no value, standalone no value);
ERROR:  unsupported XML feature
LINE 1: SELECT xmlroot('<?xml version="1.1" standalone="yes"?><foo/>...
                       ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlroot('<?xml version="1.1" standalone="yes"?><foo/>', version no value);
ERROR:  unsupported XML feature
LINE 1: SELECT xmlroot('<?xml version="1.1" standalone="yes"?><foo/>...
                       ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlroot (
  xmlelement (
    name gazonk,
    xmlattributes (
      'val' AS name,
      1 + 1 AS num
    ),
    xmlelement (
      NAME qux,
      'foo'
    )
  ),
  version '1.0',
  standalone yes
);
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlserialize(content data as character varying(20)) FROM xmltest;
 xmlserialize 
--------------
(0 rows)

SELECT xmlserialize(content 'good' as char(10));
ERROR:  unsupported XML feature
LINE 1: SELECT xmlserialize(content 'good' as char(10));
                                    ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlserialize(document 'bad' as text);
ERROR:  unsupported XML feature
LINE 1: SELECT xmlserialize(document 'bad' as text);
                                     ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xml '<foo>bar</foo>' IS DOCUMENT;
ERROR:  unsupported XML feature
LINE 1: SELECT xml '<foo>bar</foo>' IS DOCUMENT;
                   ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xml '<foo>bar</foo><bar>foo</bar>' IS DOCUMENT;
ERROR:  unsupported XML feature
LINE 1: SELECT xml '<foo>bar</foo><bar>foo</bar>' IS DOCUMENT;
                   ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xml '<abc/>' IS NOT DOCUMENT;
ERROR:  unsupported XML feature
LINE 1: SELECT xml '<abc/>' IS NOT DOCUMENT;
                   ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xml 'abc' IS NOT DOCUMENT;
ERROR:  unsupported XML feature
LINE 1: SELECT xml 'abc' IS NOT DOCUMENT;
                   ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT '<>' IS NOT DOCUMENT;
ERROR:  unsupported XML feature
LINE 1: SELECT '<>' IS NOT DOCUMENT;
               ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlagg(data) FROM xmltest;
 xmlagg 
--------
 
(1 row)

SELECT xmlagg(data) FROM xmltest WHERE id > 10;
 xmlagg 
--------
 
(1 row)

SELECT xmlelement(name employees, xmlagg(xmlelement(name name, name))) FROM emp;
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
-- Check mapping SQL identifier to XML name
SELECT xmlpi(name ":::_xml_abc135.%-&_");
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xmlpi(name "123");
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
PREPARE foo (xml) AS SELECT xmlconcat('<foo/>', $1);
ERROR:  unsupported XML feature
LINE 1: PREPARE foo (xml) AS SELECT xmlconcat('<foo/>', $1);
                                              ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SET XML OPTION DOCUMENT;
EXECUTE foo ('<bar/>');
ERROR:  prepared statement "foo" does not exist
EXECUTE foo ('bad');
ERROR:  prepared statement "foo" does not exist
SET XML OPTION CONTENT;
EXECUTE foo ('<bar/>');
ERROR:  prepared statement "foo" does not exist
EXECUTE foo ('good');
ERROR:  prepared statement "foo" does not exist
-- Test backwards parsing
CREATE VIEW xmlview1 AS SELECT xmlcomment('test');
CREATE VIEW xmlview2 AS SELECT xmlconcat('hello', 'you');
ERROR:  unsupported XML feature
LINE 1: CREATE VIEW xmlview2 AS SELECT xmlconcat('hello', 'you');
                                                 ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
CREATE VIEW xmlview3 AS SELECT xmlelement(name element, xmlattributes (1 as ":one:", 'deuce' as two), 'content&');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
CREATE VIEW xmlview4 AS SELECT xmlelement(name employee, xmlforest(name, age, salary as pay)) FROM emp;
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
CREATE VIEW xmlview5 AS SELECT xmlparse(content '<abc>x</abc>');
CREATE VIEW xmlview6 AS SELECT xmlpi(name foo, 'bar');
ERROR:  unsupported XML feature
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
CREATE VIEW xmlview7 AS SELECT xmlroot(xml '<foo/>', version no value, standalone yes);
ERROR:  unsupported XML feature
LINE 1: CREATE VIEW xmlview7 AS SELECT xmlroot(xml '<foo/>', version...
                                                   ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
CREATE VIEW xmlview8 AS SELECT xmlserialize(content 'good' as char(10));
ERROR:  unsupported XML feature
LINE 1: ...EATE VIEW xmlview8 AS SELECT xmlserialize(content 'good' as ...
                                                             ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
CREATE VIEW xmlview9 AS SELECT xmlserialize(content 'good' as text);
ERROR:  unsupported XML feature
LINE 1: ...EATE VIEW xmlview9 AS SELECT xmlserialize(content 'good' as ...
                                                             ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT table_name, view_definition FROM information_schema.views
  WHERE table_name LIKE 'xmlview%' ORDER BY 1;
 table_name |                                view_definition                                
------------+-------------------------------------------------------------------------------
 xmlview1   | SELECT xmlcomment('test'::text) AS xmlcomment;
 xmlview5   | SELECT XMLPARSE(CONTENT '<abc>x</abc>'::text STRIP WHITESPACE) AS "xmlparse";
(2 rows)

-- Text XPath expressions evaluation
SELECT xpath('/value', data) FROM xmltest;
 xpath 
-------
(0 rows)

SELECT xpath(NULL, NULL) IS NULL FROM xmltest;
 ?column? 
----------
(0 rows)

SELECT xpath('', '<!-- error -->');
ERROR:  unsupported XML feature
LINE 1: SELECT xpath('', '<!-- error -->');
                         ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xpath('//text()', '<local:data xmlns:local="http://127.0.0.1"><local:piece id="1">number one</local:piece><local:piece id="2" /></local:data>');
ERROR:  unsupported XML feature
LINE 1: SELECT xpath('//text()', '<local:data xmlns:local="http://12...
                                 ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xpath('//loc:piece/@id', '<local:data xmlns:local="http://127.0.0.1"><local:piece id="1">number one</local:piece><local:piece id="2" /></local:data>', ARRAY[ARRAY['loc', 'http://127.0.0.1']]);
ERROR:  unsupported XML feature
LINE 1: SELECT xpath('//loc:piece/@id', '<local:data xmlns:local="ht...
                                        ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
SELECT xpath('//b', '<a>one <b>two</b> three <b>etc</b></a>');
ERROR:  unsupported XML feature
LINE 1: SELECT xpath('//b', '<a>one <b>two</b> three <b>etc</b></a>'...
                            ^
DETAIL:  This functionality requires the server to be built with libxml support.
HINT:  You need to rebuild PostgreSQL using --with-libxml.
