# XML:EntityResolver

### Import List

        Msg
        URI
        XML:DTD

Class List
Resolver |

Class Summary: Resolver [Detail]

      +--XML:EntityResolver.Resolver

Constructor Summary
New(): Resolver
Method Summary
GetURI(String, String, URI, VAR URI, VAR Msg) Interprets the public or system identifier of an external entity and constructs an URI for it.

Procedure Summary
NormalizeURI(String): StringURI Normalizes an Unicode string representing a URI to a legal URI.

Class Detail: Resolver

Constructor Detail

### New

    PROCEDURE New(): Resolver

Method Detail

### GetURI

    PROCEDURE (r: Resolver) GetURI(public: String;
                     system: String;
                     baseURI: URI;
                     VAR uri: URI;
                     VAR res: Msg)

> Interprets the public or system identifier of an external entity and constructs an URI for it. On success, the URI of the document is returned in uri, and NIL in res. On failure, res holds an error message.

> The default implementation ignores the public identifier and uses the URI in system. An relative system identifier is expanded relative to baseURI. Both uri and res are set to NIL if no system identifier is present, which is permitted for notation declarations.

Procedure Detail

### NormalizeURI

    PROCEDURE NormalizeURI(uri: String): StringURI

> Normalizes an Unicode string representing a URI to a legal URI. First, t the Unicode string is encoded into a UTF-8 byte sequence. Then, any resulting bytes that are not reserved, unreserved, ``#`', or ``%`' are replaced with URI escape sequences. In particular, all non-ASCII bytes are escaped.