<?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:Parser' id=''>
  <import-decl name='Msg' id='Msg' export='no' module='Msg'/>
  <import-decl name='IO' id='IO' export='no' module='IO'/>
  <import-decl name='URI' id='URI' export='no' module='URI'/>
  <import-decl name='Codec' id='Codec' export='no' module='XML:UnicodeCodec'/>
  <import-decl name='Locator' id='Locator' export='no' module='XML:Locator'/>
  <import-decl name='EntityResolver' id='EntityResolver' export='no' module='XML:EntityResolver'/>
  <import-decl name='UTF8' id='UTF8' export='no' module='XML:UnicodeCodec:UTF8'/>
  <import-decl name='Buffer' id='Buffer' export='no' module='XML:UnicodeBuffer'/>
  <import-decl name='Error' id='Error' export='no' module='XML:Error'/>
  <import-decl name='DTD' id='DTD' export='no' module='XML:DTD'/>
  <import-decl name='Builder' id='Builder' export='no' module='XML:Builder'/>
  <type-decl name='PEInfo' id='PEInfo' export='no'>
    <type>
      <record/>
    </type>
  </type-decl>
  <type-decl name='NameList' id='NameList' export='no'>
    <type>
      <pointer>
        <pointer-base>
          <array>
            <element-type>
              <type-name module='DTD' name='String' href='XML:DTD#String'/>
            </element-type>
          </array>
        </pointer-base>
      </pointer>
    </type>
  </type-decl>
  <type-decl name='PEInfoList' id='PEInfoList' export='no'>
    <type>
      <pointer>
        <pointer-base>
          <array>
            <element-type>
              <type-name name='PEInfo' href='#PEInfo'/>
            </element-type>
          </array>
        </pointer-base>
      </pointer>
    </type>
  </type-decl>
  <procedure name='IsNameChar' id='IsNameChar' export='yes'>
    <formal-parameters>
      <parameter-decl name='ch' id='IsNameChar.ch' export='no' variable-parameter='no'>
        <type>
          <type-name module='Buffer' name='Char' href='XML:UnicodeBuffer#Char'/>
        </type>
      </parameter-decl>
      <result-type>
        <type-name module='#predef' name='BOOLEAN'/>
      </result-type>
    </formal-parameters>
  </procedure>
  <procedure name='IsNameChar0' id='IsNameChar0' export='yes'>
    <formal-parameters>
      <parameter-decl name='ch' id='IsNameChar0.ch' export='no' variable-parameter='no'>
        <type>
          <type-name module='Buffer' name='Char' href='XML:UnicodeBuffer#Char'/>
        </type>
      </parameter-decl>
      <result-type>
        <type-name module='#predef' name='BOOLEAN'/>
      </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='Parser'>
    <type-decl name='Parser' id='Parser' export='yes'>
      <type>
        <pointer>
          <pointer-base>
            <type-name name='ParserDesc' href='#ParserDesc'/>
          </pointer-base>
        </pointer>
      </type>
    </type-decl>
    <type-decl name='ParserDesc' id='ParserDesc' export='no'>
      <type>
        <record>
          <field-decl name='errList' id='ParserDesc.errList' export='read-only'>
            <oberon-doc>
              <summary>Holds all error messages related to the currently parsed XML document.</summary>
              <p pad-after='yes' no-indent='yes'>Holds all error messages related to the currently parsed XML document.  After an error occured, <samp>errList.msgCount</samp> is no longer zero.</p>
            </oberon-doc>
            <type>
              <type-name module='Error' name='List' href='XML:Error#List'/>
            </type>
          </field-decl>
          <field-decl name='followExternalRef' id='ParserDesc.followExternalRef' export='yes'>
            <oberon-doc>
              <summary>If <code>TRUE</code>, then the parser should try to follow external references (references to the external DTD subset or to an external parameter entity).</summary>
              <p pad-after='yes' no-indent='yes'>If <code>TRUE</code>, then the parser should try to follow external references (references to the external DTD subset or to an external parameter entity).  It is an error if the external entity cannot be read.  The default value is <code>TRUE</code>.</p>
            </oberon-doc>
            <type>
              <type-name module='#predef' name='BOOLEAN'/>
            </type>
          </field-decl>
          <field-decl name='enforceQNames' id='ParserDesc.enforceQNames' export='yes'>
            <oberon-doc>
              <summary>If <code>TRUE</code>, then the parser checks that element and attribute names also match the production <samp>QName</samp>, and that entity names, PI targets, and notation names contain no colon.</summary>
              <p pad-after='yes' no-indent='yes'>If <code>TRUE</code>, then the parser checks that element and attribute names also match the production <samp>QName</samp>, and that entity names, PI targets, and notation names contain no colon.  This enables parts of the checks required from namespace aware parsers.  The default is <code>FALSE</code>.</p>
            </oberon-doc>
            <type>
              <type-name module='#predef' name='BOOLEAN'/>
            </type>
          </field-decl>
          <field-decl name='validating' id='ParserDesc.validating' export='yes'>
            <oberon-doc>
              <summary>If <code>TRUE</code>, then the parser checks that</summary>
              <p pad-after='yes' no-indent='yes'>If <code>TRUE</code>, then the parser checks that</p>
              <itemize pad-after='yes'>
                <itemize-mark><bullet/></itemize-mark>
                <item pad-after='yes'>
                  <p pad-after='no' no-indent='yes'>parameter entity references are expanded,</p>
                </item>
                <item pad-after='yes'>
                  <p pad-after='no' no-indent='yes'>parameter entity references do not violate the nesting requirements imposed by the various validity constraints,</p>
                </item>
                <item pad-after='no'>
                  <p pad-after='no' no-indent='yes'>required attributes are present in an element's attribute list,</p>
                </item>
              </itemize>
              <p pad-after='yes' no-indent='no'>The default value of this field is <code>FALSE</code>.  Only use this setting in conjunction with a builder of type <oberon-type href='XML:Builder:Validator#Builder'>XML:Builder:Validator.Builder</oberon-type>.</p>
            </oberon-doc>
            <type>
              <type-name module='#predef' name='BOOLEAN'/>
            </type>
          </field-decl>
        </record>
      </type>
    </type-decl>
    <procedure name='ParseDocument' id='ParserDesc.ParseDocument' export='yes'>
      <oberon-doc>
        <summary>Parses the document, issuing callbacks to <oberon-type href='XML:Builder#Builder'>Builder.Builder</oberon-type> as it goes along.</summary>
        <p pad-after='yes' no-indent='yes'>Parses the document, issuing callbacks to <oberon-type href='XML:Builder#Builder'>Builder.Builder</oberon-type> as it goes along.  After completion, any errors are reported in <oberon-field href='#ParserDesc.errList'>p.errList</oberon-field>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='p' id='ParserDesc.ParseDocument.p' export='no' variable-parameter='no'>
          <type>
            <type-name name='Parser' href='#Parser'/>
          </type>
        </receiver-decl>
        <exceptions>
          <type-name module='IO' name='Error' href='IO#Error'/>
        </exceptions>
      </formal-parameters>
    </procedure>
    <procedure name='NewChannel' id='NewChannel' export='yes'>
      <oberon-doc>
        <summary>Creates a new parser for the input channel <oberon-param href='#NewChannel.ch'>ch</oberon-param>.</summary>
        <p pad-after='yes' no-indent='yes'>Creates a new parser for the input channel <oberon-param href='#NewChannel.ch'>ch</oberon-param>.  <oberon-param href='#NewChannel.baseURI'>baseURI</oberon-param> is the absolute URI of the document entity, as computed by the method of RFC 2396, if that is known.  If this value is <code>NIL</code>, or refers to an opaque URI, then relative URIs in the document cannot be resolved.</p>
        <p pad-after='yes' no-indent='no'><oberon-param href='#NewChannel.codecFactory'>codecFactory</oberon-param> designates the decoder that should be used to read the byte stream from <oberon-param href='#NewChannel.ch'>ch</oberon-param>.  If this is <code>NIL</code>, then autodetection is done on the input encoding.  If everything fails, the decoder defaults to <oberon-var href='XML:UnicodeCodec:UTF8#factory'>UTF8.factory</oberon-var>.</p>
        <p pad-after='yes' no-indent='no'>The entity resolver <oberon-param href='#NewChannel.entityResolver'>entityResolver</oberon-param> is used to map public and system identifiers of the document to absolute URIs.  If it is <code>NIL</code>, entities are exclusively resolved through their system identifier.</p>
        <p pad-after='yes' no-indent='no'>The interface to the application is the builder instance <oberon-param href='#NewChannel.builder'>builder</oberon-param>.  During parsing, the parser will call the methods of this object.</p>
      </oberon-doc>
      <formal-parameters>
        <parameter-decl name='ch' id='NewChannel.ch' export='no' variable-parameter='no'>
          <type>
            <type-name module='IO' name='ByteChannel' href='IO#ByteChannel'/>
          </type>
        </parameter-decl>
        <parameter-decl name='baseURI' id='NewChannel.baseURI' export='no' variable-parameter='no'>
          <type>
            <type-name module='URI' name='URI' href='URI#URI'/>
          </type>
        </parameter-decl>
        <parameter-decl name='codecFactory' id='NewChannel.codecFactory' export='no' variable-parameter='no'>
          <type>
            <type-name module='Codec' name='Factory' href='XML:UnicodeCodec#Factory'/>
          </type>
        </parameter-decl>
        <parameter-decl name='entityResolver' id='NewChannel.entityResolver' export='no' variable-parameter='no'>
          <type>
            <type-name module='EntityResolver' name='Resolver' href='XML:EntityResolver#Resolver'/>
          </type>
        </parameter-decl>
        <parameter-decl name='builder' id='NewChannel.builder' export='no' variable-parameter='no'>
          <type>
            <type-name module='Builder' name='Builder' href='XML:Builder#Builder'/>
          </type>
        </parameter-decl>
        <result-type>
          <type-name name='Parser' href='#Parser'/>
        </result-type>
        <exceptions>
          <type-name module='IO' name='Error' href='IO#Error'/>
        </exceptions>
      </formal-parameters>
    </procedure>
    <procedure name='NewURI' id='NewURI' export='yes'>
      <oberon-doc>
        <summary>Like <oberon-proc href='#NewChannel'>NewChannel</oberon-proc>, but opens the channel on the URI <oberon-param href='#NewURI.uri'>uri</oberon-param>.</summary>
        <p pad-after='yes' no-indent='yes'>Like <oberon-proc href='#NewChannel'>NewChannel</oberon-proc>, but opens the channel on the URI <oberon-param href='#NewURI.uri'>uri</oberon-param>.</p>
      </oberon-doc>
      <formal-parameters>
        <parameter-decl name='uri' id='NewURI.uri' export='no' variable-parameter='no'>
          <type>
            <type-name module='URI' name='URI' href='URI#URI'/>
          </type>
        </parameter-decl>
        <parameter-decl name='baseURI' id='NewURI.baseURI' export='no' variable-parameter='no'>
          <type>
            <type-name module='URI' name='URI' href='URI#URI'/>
          </type>
        </parameter-decl>
        <parameter-decl name='codecFactory' id='NewURI.codecFactory' export='no' variable-parameter='no'>
          <type>
            <type-name module='Codec' name='Factory' href='XML:UnicodeCodec#Factory'/>
          </type>
        </parameter-decl>
        <parameter-decl name='entityResolver' id='NewURI.entityResolver' export='no' variable-parameter='no'>
          <type>
            <type-name module='EntityResolver' name='Resolver' href='XML:EntityResolver#Resolver'/>
          </type>
        </parameter-decl>
        <parameter-decl name='builder' id='NewURI.builder' export='no' variable-parameter='no'>
          <type>
            <type-name module='Builder' name='Builder' href='XML:Builder#Builder'/>
          </type>
        </parameter-decl>
        <result-type>
          <type-name name='Parser' href='#Parser'/>
        </result-type>
        <exceptions>
          <type-name module='IO' name='Error' href='IO#Error'/>
        </exceptions>
      </formal-parameters>
    </procedure>
    <procedure name='NewFile' id='NewFile' export='yes'>
      <oberon-doc>
        <summary>Like <oberon-proc href='#NewURI'>NewURI</oberon-proc>, using the file <oberon-param href='#NewFile.filePath'>filePath</oberon-param>.</summary>
        <p pad-after='yes' no-indent='yes'>Like <oberon-proc href='#NewURI'>NewURI</oberon-proc>, using the file <oberon-param href='#NewFile.filePath'>filePath</oberon-param>.</p>
      </oberon-doc>
      <formal-parameters>
        <parameter-decl name='filePath' id='NewFile.filePath' export='no' variable-parameter='no'>
          <type>
            <array>
              <element-type>
                <type-name module='#predef' name='CHAR'/>
              </element-type>
            </array>
          </type>
        </parameter-decl>
        <parameter-decl name='baseURI' id='NewFile.baseURI' export='no' variable-parameter='no'>
          <type>
            <type-name module='URI' name='URI' href='URI#URI'/>
          </type>
        </parameter-decl>
        <parameter-decl name='codecFactory' id='NewFile.codecFactory' export='no' variable-parameter='no'>
          <type>
            <type-name module='Codec' name='Factory' href='XML:UnicodeCodec#Factory'/>
          </type>
        </parameter-decl>
        <parameter-decl name='entityResolver' id='NewFile.entityResolver' export='no' variable-parameter='no'>
          <type>
            <type-name module='EntityResolver' name='Resolver' href='XML:EntityResolver#Resolver'/>
          </type>
        </parameter-decl>
        <parameter-decl name='builder' id='NewFile.builder' export='no' variable-parameter='no'>
          <type>
            <type-name module='Builder' name='Builder' href='XML:Builder#Builder'/>
          </type>
        </parameter-decl>
        <result-type>
          <type-name name='Parser' href='#Parser'/>
        </result-type>
        <exceptions>
          <type-name module='IO' name='Error' href='IO#Error'/>
        </exceptions>
      </formal-parameters>
    </procedure>
    <procedure name='NewExternalID' id='NewExternalID' export='yes'>
      <oberon-doc>
        <summary>Like <oberon-proc href='#NewURI'>NewURI</oberon-proc>, using the given public or system identifier.</summary>
        <p pad-after='yes' no-indent='yes'>Like <oberon-proc href='#NewURI'>NewURI</oberon-proc>, using the given public or system identifier.  The external identifiers are mapped to an absolute URI using <oberon-param href='#NewExternalID.entityResolver'>entityResolver</oberon-param>.</p>
      </oberon-doc>
      <formal-parameters>
        <parameter-decl name='public' id='NewExternalID.public' export='no' variable-parameter='no'>
          <type>
            <array>
              <element-type>
                <type-name module='DTD' name='Char' href='XML:DTD#Char'/>
              </element-type>
            </array>
          </type>
        </parameter-decl>
        <parameter-decl name='system' id='NewExternalID.system' export='no' variable-parameter='no'>
          <type>
            <array>
              <element-type>
                <type-name module='DTD' name='Char' href='XML:DTD#Char'/>
              </element-type>
            </array>
          </type>
        </parameter-decl>
        <parameter-decl name='systemBaseURI' id='NewExternalID.systemBaseURI' export='no' variable-parameter='no'>
          <type>
            <type-name module='URI' name='URI' href='URI#URI'/>
          </type>
        </parameter-decl>
        <parameter-decl name='codecFactory' id='NewExternalID.codecFactory' export='no' variable-parameter='no'>
          <type>
            <type-name module='Codec' name='Factory' href='XML:UnicodeCodec#Factory'/>
          </type>
        </parameter-decl>
        <parameter-decl name='entityResolver' id='NewExternalID.entityResolver' export='no' variable-parameter='no'>
          <type>
            <type-name module='EntityResolver' name='Resolver' href='XML:EntityResolver#Resolver'/>
          </type>
        </parameter-decl>
        <parameter-decl name='builder' id='NewExternalID.builder' export='no' variable-parameter='no'>
          <type>
            <type-name module='Builder' name='Builder' href='XML:Builder#Builder'/>
          </type>
        </parameter-decl>
        <parameter-decl name='res' id='NewExternalID.res' export='no' variable-parameter='yes'>
          <type>
            <type-name module='Msg' name='Msg' href='Msg#Msg'/>
          </type>
        </parameter-decl>
        <result-type>
          <type-name name='Parser' href='#Parser'/>
        </result-type>
        <exceptions>
          <type-name module='IO' name='Error' href='IO#Error'/>
        </exceptions>
      </formal-parameters>
    </procedure>
  </class>
  <class name='ErrorListener'>
    <type-decl name='ErrorListener' id='ErrorListener' export='no'>
      <type>
        <pointer>
          <pointer-base>
            <type-name name='ErrorListenerDesc' href='#ErrorListenerDesc'/>
          </pointer-base>
        </pointer>
      </type>
    </type-decl>
    <type-decl name='ErrorListenerDesc' id='ErrorListenerDesc' export='no'>
      <type>
        <record/>
      </type>
    </type-decl>
    <procedure name='Error' id='ErrorListenerDesc.Error' export='yes'>
      <doc-inherited-from module='XML:Locator' name='Error' class='ErrorListener' href='XML:Locator#ErrorListenerDesc.Error'/>
      <oberon-doc>
        <summary>Adds a new error message to the parser error list.</summary>
        <p pad-after='yes' no-indent='yes'>Adds a new error message to the parser error list.  <oberon-param href='#ErrorListenerDesc.Error.context'>context</oberon-param> and <oberon-param href='#ErrorListenerDesc.Error.code'>code</oberon-param> determine the message text.  If <oberon-param href='#ErrorListenerDesc.Error.fatalError'>fatalError</oberon-param> is <code>TRUE</code>, then the parser should stop reporting any events to the application.  <oberon-param href='#ErrorListenerDesc.Error.pos'>pos</oberon-param> indicates the position of the error.  It should be taken from a locator.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='el' id='ErrorListenerDesc.Error.el' export='no' variable-parameter='no'>
          <type>
            <type-name name='ErrorListener' href='#ErrorListener'/>
          </type>
        </receiver-decl>
        <parameter-decl name='context' id='ErrorListenerDesc.Error.context' export='no' variable-parameter='no'>
          <type>
            <type-name module='Error' name='Context' href='XML:Error#Context'/>
          </type>
        </parameter-decl>
        <parameter-decl name='code' id='ErrorListenerDesc.Error.code' export='no' variable-parameter='no'>
          <type>
            <type-name module='Error' name='Code' href='XML:Error#Code'/>
          </type>
        </parameter-decl>
        <parameter-decl name='fatalError' id='ErrorListenerDesc.Error.fatalError' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='BOOLEAN'/>
          </type>
        </parameter-decl>
        <parameter-decl name='pos' id='ErrorListenerDesc.Error.pos' export='no' variable-parameter='no'>
          <type>
            <type-name module='Locator' name='Position' href='XML:Locator#Position'/>
          </type>
        </parameter-decl>
        <result-type>
          <type-name module='Error' name='Msg' href='XML:Error#Msg'/>
        </result-type>
      </formal-parameters>
      <redefined-method module='XML:Locator' name='Error' class='ErrorListener' href='XML:Locator#ErrorListenerDesc.Error'/>
    </procedure>
    <base-class module='XML:Locator' class='ErrorListener' href='XML:Locator#ErrorListener'>
      <inherited-method module='XML:Locator' name='Error' class='ErrorListener' href='XML:Locator#ErrorListenerDesc.Error'/>
    </base-class>
  </class>
  <module-ref name='IO'>
    <ref-target type='html' relative-uri='../IO.html'/>
  </module-ref>
  <module-ref name='XML:Locator'>
    <ref-target type='html' relative-uri='Locator.html'/>
  </module-ref>
  <module-ref name='XML:UnicodeCodec:UTF8'>
    <ref-target type='html' relative-uri='UnicodeCodec/UTF8.html'/>
  </module-ref>
  <module-ref name='Msg'>
    <ref-target type='html' relative-uri='../Msg.html'/>
  </module-ref>
  <module-ref name='XML:UnicodeBuffer'>
    <ref-target type='html' relative-uri='UnicodeBuffer.html'/>
  </module-ref>
  <module-ref name='XML:UnicodeCodec'>
    <ref-target type='html' relative-uri='UnicodeCodec.html'/>
  </module-ref>
  <module-ref name='URI'>
    <ref-target type='html' relative-uri='../URI.html'/>
  </module-ref>
  <module-ref name='XML:Builder'>
    <ref-target type='html' relative-uri='Builder.html'/>
  </module-ref>
  <module-ref name='XML:DTD'>
    <ref-target type='html' relative-uri='DTD.html'/>
  </module-ref>
  <module-ref name='XML:EntityResolver'>
    <ref-target type='html' relative-uri='EntityResolver.html'/>
  </module-ref>
  <module-ref name='XML:Error'>
    <ref-target type='html' relative-uri='Error.html'/>
  </module-ref>
</interface-description>
