MCPcopy Create free account
hub / github.com/apache/cloudberry / xml_is_well_formed

Function xml_is_well_formed

contrib/xml2/xpath.c:95–126  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

93PG_FUNCTION_INFO_V1(xml_is_well_formed);
94
95Datum
96xml_is_well_formed(PG_FUNCTION_ARGS)
97{
98 text *t = PG_GETARG_TEXT_PP(0); /* document buffer */
99 bool result = false;
100 int32 docsize = VARSIZE_ANY_EXHDR(t);
101 xmlDocPtr doctree;
102 PgXmlErrorContext *xmlerrcxt;
103
104 xmlerrcxt = pgxml_parser_init(PG_XML_STRICTNESS_LEGACY);
105
106 PG_TRY();
107 {
108 doctree = xmlParseMemory((char *) VARDATA_ANY(t), docsize);
109
110 result = (doctree != NULL);
111
112 if (doctree != NULL)
113 xmlFreeDoc(doctree);
114 }
115 PG_CATCH();
116 {
117 pg_xml_done(xmlerrcxt, true);
118
119 PG_RE_THROW();
120 }
121 PG_END_TRY();
122
123 pg_xml_done(xmlerrcxt, false);
124
125 PG_RETURN_BOOL(result);
126}
127
128
129/* Encodes special characters (<, >, &, " and \r) as XML entities */

Callers

nothing calls this directly

Calls 2

pgxml_parser_initFunction · 0.85
pg_xml_doneFunction · 0.85

Tested by

no test coverage detected