Проблема с устареванием функции xml_is_well_formed модуля XML2 postgresql - PullRequest
1 голос
/ 28 июня 2010

Нам необходимо широко использовать функцию 'xml_is_well_formed', предоставляемую модулем XML2.

Тем не менее, в документации сказано, что модуль xml2 устарел, поскольку "проверка синтаксиса XML и запросы XPath" обеспечивается функциональностью, связанной с XML, на основе стандарта SQL / XML на главном сервере, начиная с PostgreSQL 8.3 и далее.

Однако основная функция XMLPARSE не обеспечивает эквивалентную функциональность, поскольку, когда она обнаруживает недопустимый документ XML, он выдает ошибку, а не возвращает значение истинности (это то, что нам нужно и в настоящее время есть с помощью функции 'xml_is_well_formed').

Например:

select xml_is_well_formed('<br></br2>');
 xml_is_well_formed
--------------------
 f
(1 row)

select XMLPARSE( DOCUMENT '<br></br2>' );
ERROR:  invalid XML document
DETAIL:  Entity: line 1: parser error : expected '>'
<br></br2>
        ^
Entity: line 1: parser error : Extra content at the end of the document
<br></br2>
        ^

Есть ли какой-нибудь способ использовать новую, базовую XML-функциональность, чтобы просто вернуть значение истинности так, как нам нужно?

Спасибо, - Майк Берроу

1 Ответ

1 голос
/ 02 апреля 2011

Спросив об этом в списке электронной почты pgsql-hackers, я с радостью сообщаю, что ребята согласились, что это все еще нужно, и теперь они перенесли эту функцию в ядро.

См.: http://web.archiveorange.com/archive/v/alpsnGpFlZa76Oz8DjLs и http://postgresql.1045698.n5.nabble.com/review-xml-is-well-formed-td2258322.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...