1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.xml-set-external-entity-ref-handler" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>xml_set_external_entity_ref_handler</refname>
<refpurpose>Set up external entity reference handler</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>true</type><methodname>xml_set_external_entity_ref_handler</methodname>
<methodparam><type>XMLParser</type><parameter>parser</parameter></methodparam>
<methodparam><type class="union"><type>callable</type><type>string</type><type>null</type></type><parameter>handler</parameter></methodparam>
</methodsynopsis>
<para>
Sets the external entity reference handler function for the XML parser
<parameter>parser</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
&xml.parser.param;
<varlistentry>
<term><parameter>handler</parameter></term>
<listitem>
&xml.handler.description;
<para>
The signature of the handler must be:
<methodsynopsis>
<type>bool</type><methodname><replaceable>handler</replaceable></methodname>
<methodparam><type>XMLParser</type><parameter>parser</parameter></methodparam>
<methodparam><type>string</type><parameter>open_entity_names</parameter></methodparam>
<methodparam><type class="union"><type>string</type><type>false</type></type><parameter>base</parameter></methodparam>
<methodparam><type>string</type><parameter>system_id</parameter></methodparam>
<methodparam><type class="union"><type>string</type><type>false</type></type><parameter>public_id</parameter></methodparam>
</methodsynopsis>
<variablelist>
&xml.handler.parser.param;
<varlistentry>
<term><parameter>open_entity_names</parameter></term>
<listitem>
<simpara>
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).
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>base</parameter></term>
<listitem>
<simpara>
This is the base for resolving the system identifier
(<parameter>system_id</parameter>) of the external entity.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>system_id</parameter></term>
<listitem>
<simpara>
The system identifier as specified in the entity declaration.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>public_id</parameter></term>
<listitem>
<simpara>
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.
</simpara>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
The handler should return &true; if the entity was handled,
&false; otherwise.
When returning &false; the XML parser will stop parsing and
<function>xml_get_error_code</function> will return
<constant>XML_ERROR_EXTERNAL_ENTITY_HANDLING</constant>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.true.always;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
&xml.changelog.handler-param;
&xml.changelog.parser-param;
<row>
<entry>7.3.0</entry>
<entry>
The return value of the <parameter>handler</parameter> is no longer
ignored if the extension has been built against libxml. Formerly, the return
value has been ignored, and parsing did never stop.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
|