<?xml version='1.0' encoding='ISO-8859-1' standalone='no'?>
<!DOCTYPE interface-description SYSTEM 'file:///usr/pkgsrc/lang/oo2c/work.macaroon/oo2c_32-2.0.11/rsrc/OOC/xml/interface-description.dtd'>
<interface-description name='XML:EntityResolver' id=''>
  <import-decl name='Msg' id='Msg' export='no' module='Msg'/>
  <import-decl name='URI' id='URI' export='no' module='URI'/>
  <import-decl name='DTD' id='DTD' export='no' module='XML:DTD'/>
  <procedure name='NormalizeURI' id='NormalizeURI' export='yes'>
    <oberon-doc>
      <summary>Normalizes an Unicode string representing a URI to a legal URI.</summary>
      <p pad-after='yes' no-indent='yes'>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, <samp>#</samp>, or <samp>%</samp> are replaced with URI escape sequences.  In particular, all non-ASCII bytes are escaped.</p>
    </oberon-doc>
    <formal-parameters>
      <parameter-decl name='uri' id='NormalizeURI.uri' export='no' variable-parameter='no'>
        <type>
          <type-name module='DTD' name='String' href='XML:DTD#String'/>
        </type>
      </parameter-decl>
      <result-type>
        <type-name module='DTD' name='StringURI' href='XML:DTD#StringURI'/>
      </result-type>
    </formal-parameters>
  </procedure>
  <import-decl name='-RT0' id='-RT0' export='no' module='RT0'/>
  <import-decl name='-Object' id='-Object' export='no' module='Object'/>
  <import-decl name='-Exception' id='-Exception' export='no' module='Exception'/>
  <class name='Resolver'>
    <type-decl name='Resolver' id='Resolver' export='yes'>
      <type>
        <pointer>
          <pointer-base>
            <type-name name='ResolverDesc' href='#ResolverDesc'/>
          </pointer-base>
        </pointer>
      </type>
    </type-decl>
    <type-decl name='ResolverDesc' id='ResolverDesc' export='yes'>
      <type>
        <record/>
      </type>
    </type-decl>
    <procedure name='GetURI' id='ResolverDesc.GetURI' export='yes'>
      <oberon-doc>
        <summary>Interprets the public or system identifier of an external entity and constructs an URI for it.</summary>
        <p pad-after='yes' no-indent='yes'>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 <oberon-param href='#ResolverDesc.GetURI.uri'>uri</oberon-param>, and <code>NIL</code> in <oberon-param href='#ResolverDesc.GetURI.res'>res</oberon-param>.  On failure, <oberon-param href='#ResolverDesc.GetURI.res'>res</oberon-param> holds an error message.</p>
        <p pad-after='yes' no-indent='no'>The default implementation ignores the public identifier and uses the URI in <oberon-param href='#ResolverDesc.GetURI.system'>system</oberon-param>.  An relative system identifier is expanded relative to <oberon-param href='#ResolverDesc.GetURI.baseURI'>baseURI</oberon-param>.  Both <oberon-param href='#ResolverDesc.GetURI.uri'>uri</oberon-param> and <oberon-param href='#ResolverDesc.GetURI.res'>res</oberon-param> are set to <code>NIL</code> if no system identifier is present, which is permitted for notation declarations.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='r' id='ResolverDesc.GetURI.r' export='no' variable-parameter='no'>
          <type>
            <type-name name='Resolver' href='#Resolver'/>
          </type>
        </receiver-decl>
        <parameter-decl name='public' id='ResolverDesc.GetURI.public' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='String' href='XML:DTD#String'/>
          </type>
        </parameter-decl>
        <parameter-decl name='system' id='ResolverDesc.GetURI.system' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='String' href='XML:DTD#String'/>
          </type>
        </parameter-decl>
        <parameter-decl name='baseURI' id='ResolverDesc.GetURI.baseURI' export='no' variable-parameter='no'>
          <type>
            <type-name module='URI' name='URI' href='URI#URI'/>
          </type>
        </parameter-decl>
        <parameter-decl name='uri' id='ResolverDesc.GetURI.uri' export='no' variable-parameter='yes'>
          <type>
            <type-name module='URI' name='URI' href='URI#URI'/>
          </type>
        </parameter-decl>
        <parameter-decl name='res' id='ResolverDesc.GetURI.res' export='no' variable-parameter='yes'>
          <type>
            <type-name module='Msg' name='Msg' href='Msg#Msg'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='New' id='New' export='yes'>
      <formal-parameters>
        <result-type>
          <type-name name='Resolver' href='#Resolver'/>
        </result-type>
      </formal-parameters>
    </procedure>
  </class>
  <module-ref name='Msg'>
    <ref-target type='html' relative-uri='../Msg.html'/>
  </module-ref>
  <module-ref name='URI'>
    <ref-target type='html' relative-uri='../URI.html'/>
  </module-ref>
  <module-ref name='XML:DTD'>
    <ref-target type='html' relative-uri='DTD.html'/>
  </module-ref>
</interface-description>
