xml_set_external_entity_ref_handler

Set up external entity reference handler

&reftitle.description; `true` `xml_set_external_entity_ref_handler` `XMLParser` `parser` `callable` `handler`

Sets the external entity reference handler function for the XML parser `parser`.

&reftitle.parameters;

&xml.parser.param;

`handler`

- &xml.handler.description;

  The signature of the handler must be: `bool```handler`` `XMLParser` `parser` `string` `open_entity_names` ``string``false```base` `string` `system_id` ``string``false```public_id`

  &xml.handler.parser.param;

  `open_entity_names`

- A space-separated list of the names of the entities that are open for the parse of this entity (including the name of the referenced entity).

`base`

- This is the base for resolving the system identifier (`system_id`) of the external entity.

`system_id`

- The system identifier as specified in the entity declaration.

`public_id`

- The public identifier as specified in the entity declaration, or an empty string if none was specified; the whitespace in the public identifier will have been normalized as required by the XML spec.

The handler should return &true; if the entity was handled, &false; otherwise. When returning &false; the XML parser will stop parsing and `xml_get_error_code` will return `XML_ERROR_EXTERNAL_ENTITY_HANDLING`.

&reftitle.returnvalues;

&return.true.always;

&reftitle.changelog;

&Version; | &Description;
&xml.changelog.parser-param;
7.3.0 | The return value of the `handler` is no longer ignored if the extension has been built against libxml. Formerly, the return value has been ignored, and parsing did never stop.