<?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:Builder:ParserProtocol' id=''>
  <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='DTD' id='DTD' export='no' module='XML:DTD'/>
  <import-decl name='B' id='B' export='no' module='XML:Builder'/>
  <import-decl name='Writer' id='Writer' export='no' module='XML:Writer'/>
  <import-decl name='Locator' id='Locator' export='no' module='XML:Locator'/>
  <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='Builder'>
    <type-decl name='Builder' id='Builder' export='yes'>
      <type>
        <pointer>
          <pointer-base>
            <type-name name='BuilderDesc' href='#BuilderDesc'/>
          </pointer-base>
        </pointer>
      </type>
    </type-decl>
    <type-decl name='BuilderDesc' id='BuilderDesc' export='no'>
      <type>
        <record>
          <field-decl name='w' id='BuilderDesc.w' export='read-only'>
            <type>
              <type-name module='Writer' name='Writer' href='XML:Writer#Writer'/>
            </type>
          </field-decl>
          <field-decl name='locator' id='BuilderDesc.locator' export='read-only'>
            <type>
              <type-name module='Locator' name='Locator' href='XML:Locator#Locator'/>
            </type>
          </field-decl>
        </record>
      </type>
    </type-decl>
    <procedure name='SetLocator' id='BuilderDesc.SetLocator' export='yes'>
      <doc-inherited-from module='XML:Builder' name='SetLocator' class='Builder' href='XML:Builder#BuilderDesc.SetLocator'/>
      <oberon-doc>
        <summary>Indicates which locator object the parser uses to communicate positional information.</summary>
        <p pad-after='yes' no-indent='yes'>Indicates which locator object the parser uses to communicate positional information.  If this method is not called before <oberon-proc href='XML:Builder#BuilderDesc.StartDocument'>Builder.StartDocument</oberon-proc>, the builder should assume that no locator is available during processing.  This method may be called several times during processing of a document.</p>
        <pre-cond pad-after='yes'>
          <p pad-after='no' no-indent='yes'><samp>locator</samp> is not <code>NIL</code>.</p>
        </pre-cond>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.SetLocator.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
        <parameter-decl name='locator' id='BuilderDesc.SetLocator.locator' export='no' variable-parameter='no'>
          <type>
            <type-name module='Locator' name='Locator' href='XML:Locator#Locator'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='SetLocator' class='Builder' href='XML:Builder#BuilderDesc.SetLocator'/>
    </procedure>
    <procedure name='StartDocument' id='BuilderDesc.StartDocument' export='yes'>
      <doc-inherited-from module='XML:Builder' name='StartDocument' class='Builder' href='XML:Builder#BuilderDesc.StartDocument'/>
      <oberon-doc>
        <summary>Marks the start of the document.</summary>
        <p pad-after='yes' no-indent='yes'>Marks the start of the document.  This method is called just before parsing begins.  The base URI of the document can be obtained from <oberon-param href='#BuilderDesc.StartDocument.documentEntity'>documentEntity</oberon-param>, if it has been passed to <oberon-proc href='XML:Parser#NewChannel'>XML:Parser.NewChannel</oberon-proc>.  The locator is positioned at the very beginning of the file.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.StartDocument.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
        <parameter-decl name='documentEntity' id='BuilderDesc.StartDocument.documentEntity' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='ExternalEntity' href='XML:DTD#ExternalEntity'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='StartDocument' class='Builder' href='XML:Builder#BuilderDesc.StartDocument'/>
    </procedure>
    <procedure name='EndDocument' id='BuilderDesc.EndDocument' export='yes'>
      <doc-inherited-from module='XML:Builder' name='EndDocument' class='Builder' href='XML:Builder#BuilderDesc.EndDocument'/>
      <oberon-doc>
        <summary>Called by the parser after it has processed the whole document.</summary>
        <p pad-after='yes' no-indent='yes'>Called by the parser after it has processed the whole document.  Afterwards, none of the other builder methods will be called.  Note that unlike all the other event reporting methods, this method is even called if the document had a fatal error.  The locator is positioned at the very end of the file.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.EndDocument.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='EndDocument' class='Builder' href='XML:Builder#BuilderDesc.EndDocument'/>
    </procedure>
    <procedure name='StartDTD' id='BuilderDesc.StartDTD' export='yes'>
      <doc-inherited-from module='XML:Builder' name='StartDTD' class='Builder' href='XML:Builder#BuilderDesc.StartDTD'/>
      <oberon-doc>
        <summary>Called by the parser just before it begins parsing the document type declaration.</summary>
        <p pad-after='yes' no-indent='yes'>Called by the parser just before it begins parsing the document type declaration.  <oberon-param href='#BuilderDesc.StartDTD.dtdBuilder'>dtdBuilder</oberon-param> is the object that is used by the parser to build the DTD data structure.  All comments and processing instruction events that are reported between <oberon-proc href='XML:Builder#BuilderDesc.StartDTD'>Builder.StartDTD</oberon-proc> and <oberon-proc href='XML:Builder#BuilderDesc.EndDTD'>Builder.EndDTD</oberon-proc> are part of the DTD.  Events from the internal DTD are reported before events of the external DTD.  The locator is positioned at the beginning of <samp>&lt;!DOCTYPE</samp>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.StartDTD.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
        <parameter-decl name='dtdBuilder' id='BuilderDesc.StartDTD.dtdBuilder' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='Builder' href='XML:DTD#Builder'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='StartDTD' class='Builder' href='XML:Builder#BuilderDesc.StartDTD'/>
    </procedure>
    <procedure name='EndDTD' id='BuilderDesc.EndDTD' export='yes'>
      <doc-inherited-from module='XML:Builder' name='EndDTD' class='Builder' href='XML:Builder#BuilderDesc.EndDTD'/>
      <oberon-doc>
        <summary>This method is called by the paser when is done parsing the document type declaration.</summary>
        <p pad-after='yes' no-indent='yes'>This method is called by the paser when is done parsing the document type declaration.  If the DTD had an external subset, the reference to the entity is passed in <oberon-param href='#BuilderDesc.EndDTD.externalDTD'>externalDTD</oberon-param>.  The public and system identifier of the external subset are available through the entity item.</p>
        <p pad-after='yes' no-indent='no'>If <oberon-param href='#BuilderDesc.EndDTD.allDeclarationsProcessed'>allDeclarationsProcessed</oberon-param> is <code>TRUE</code>, then the parser has read the complete DTD.</p>
        <p pad-after='yes' no-indent='no'>The locator is positioned after the closing <samp>&gt;</samp> of the DTD, and the external DTD subset has been processed.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.EndDTD.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
        <parameter-decl name='externalDTD' id='BuilderDesc.EndDTD.externalDTD' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='ExternalEntity' href='XML:DTD#ExternalEntity'/>
          </type>
        </parameter-decl>
        <parameter-decl name='allDeclarationsProcessed' id='BuilderDesc.EndDTD.allDeclarationsProcessed' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='BOOLEAN'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='EndDTD' class='Builder' href='XML:Builder#BuilderDesc.EndDTD'/>
    </procedure>
    <procedure name='StartElement' id='BuilderDesc.StartElement' export='yes'>
      <doc-inherited-from module='XML:Builder' name='StartElement' class='Builder' href='XML:Builder#BuilderDesc.StartElement'/>
      <oberon-doc>
        <summary>Called whenever a start tag is being parsed.</summary>
        <p pad-after='yes' no-indent='yes'>Called whenever a start tag is being parsed.  For a namespace aware parser, <oberon-param href='#BuilderDesc.StartElement.namespaceDecl'>namespaceDecl</oberon-param> refers to the namespace URI of the element name.  If the name has no namespace part, the argument is <code>NIL</code>.  <oberon-param href='#BuilderDesc.StartElement.localName'>localName</oberon-param> is the element minus the namespace prefix and the colon.  The namespace prefix of the attribute name can be obtained from <oberon-param href='#BuilderDesc.StartElement.namespaceDecl'>namespaceDecl</oberon-param>.</p>
        <p pad-after='yes' no-indent='no'>b The locator is positioned at the beginning of the start tag's name.</p>
        <p pad-after='yes' no-indent='no'><strong>Note</strong>: Namespaces are only partially supported in the parser itself.  For full namespace support, the special builder class <oberon-type href='XML:Builder:Namespaces#Builder'>XML:Builder:Namespaces.Builder</oberon-type> must be put between the parser and the application.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.StartElement.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
        <parameter-decl name='namespaceDecl' id='BuilderDesc.StartElement.namespaceDecl' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='NamespaceDeclaration' href='XML:DTD#NamespaceDeclaration'/>
          </type>
        </parameter-decl>
        <parameter-decl name='localName' id='BuilderDesc.StartElement.localName' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='String' href='XML:DTD#String'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='StartElement' class='Builder' href='XML:Builder#BuilderDesc.StartElement'/>
    </procedure>
    <procedure name='Attribute' id='BuilderDesc.Attribute' export='yes'>
      <doc-inherited-from module='XML:Builder' name='Attribute' class='Builder' href='XML:Builder#BuilderDesc.Attribute'/>
      <oberon-doc>
        <summary>Called for every attribute (specified or defaulted) of the current element.</summary>
        <p pad-after='yes' no-indent='yes'>Called for every attribute (specified or defaulted) of the current element.  For a namespace aware parser, <oberon-param href='#BuilderDesc.Attribute.namespaceDecl'>namespaceDecl</oberon-param> refers to the namespace URI of the element name.  If the name has no namespace part, the argument is <code>NIL</code>.  <oberon-param href='#BuilderDesc.Attribute.localName'>localName</oberon-param> is the element minus the namespace prefix and the colon.  The namespace prefix of the attribute name can be obtained from <oberon-param href='#BuilderDesc.Attribute.namespaceDecl'>namespaceDecl</oberon-param>.</p>
        <p pad-after='yes' no-indent='no'>If an attribute declaration for this attribute is known to the parser, it is passed in <oberon-param href='#BuilderDesc.Attribute.attrDecl'>attrDecl</oberon-param>.  Without a declaration, the application should treat the attribute as if it were of type <oberon-const href='XML:DTD#attrCDATA'>DTD.attrCDATA</oberon-const>.</p>
        <p pad-after='yes' no-indent='no'>If the attribute is specified in the element's attribute list, instead of being defaulted from the attribute's declaration, <oberon-param href='#BuilderDesc.Attribute.specified'>specified</oberon-param> is <code>TRUE</code>.</p>
        <p pad-after='yes' no-indent='no'>The attribute's value is passed into the parameter <oberon-param href='#BuilderDesc.Attribute.value'>value</oberon-param>.  Call <oberon-proc href='XML:DTD#AttValueDesc.Flatten'>DTD.AttValue.Flatten</oberon-proc> or <oberon-proc href='XML:DTD#AttValueDesc.FlattenValue'>DTD.AttValue.FlattenValue</oberon-proc> to retrieve the normalized value of the attribute.  You can also access the data structure <oberon-param href='#BuilderDesc.Attribute.value'>value</oberon-param>.  The string values in the data structure are normalized for <code>CDATA</code> values.  When reading <oberon-param href='#BuilderDesc.Attribute.value'>value</oberon-param> for non-<code>CDATA</code> attributes, you must collapse sequences of whitespace into a single space, and remove any whitespace from the beginning and the end of the attribute value.</p>
        <p pad-after='yes' no-indent='no'>The locator is at the beginning of the attribute's name, if <oberon-param href='#BuilderDesc.Attribute.specified'>specified</oberon-param> is <code>TRUE</code>.  For defaulted attributes, the locator is undefined.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.Attribute.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
        <parameter-decl name='namespaceDecl' id='BuilderDesc.Attribute.namespaceDecl' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='NamespaceDeclaration' href='XML:DTD#NamespaceDeclaration'/>
          </type>
        </parameter-decl>
        <parameter-decl name='localName' id='BuilderDesc.Attribute.localName' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='String' href='XML:DTD#String'/>
          </type>
        </parameter-decl>
        <parameter-decl name='attrDecl' id='BuilderDesc.Attribute.attrDecl' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='AttrDecl' href='XML:DTD#AttrDecl'/>
          </type>
        </parameter-decl>
        <parameter-decl name='value' id='BuilderDesc.Attribute.value' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='AttValue' href='XML:DTD#AttValue'/>
          </type>
        </parameter-decl>
        <parameter-decl name='specified' id='BuilderDesc.Attribute.specified' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='BOOLEAN'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='Attribute' class='Builder' href='XML:Builder#BuilderDesc.Attribute'/>
    </procedure>
    <procedure name='NamespaceDeclaration' id='BuilderDesc.NamespaceDeclaration' export='yes'>
      <doc-inherited-from module='XML:Builder' name='NamespaceDeclaration' class='Builder' href='XML:Builder#BuilderDesc.NamespaceDeclaration'/>
      <oberon-doc>
        <summary>Called for namespace declarations in an attribute list.</summary>
        <p pad-after='yes' no-indent='yes'>Called for namespace declarations in an attribute list.  Note: The parser implementation <oberon-type href='XML:Parser#Parser'>XML:Parser.Parser</oberon-type> does not know about namespaces and never calls this method.  Use the adapter builder <oberon-type href='XML:Builder:Namespaces#Builder'>XML:Builder:Namespaces.Builder</oberon-type> to introduce namespace information into the event stream.  The locator position is undefined.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.NamespaceDeclaration.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
        <parameter-decl name='namespaceDecl' id='BuilderDesc.NamespaceDeclaration.namespaceDecl' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='NamespaceDeclaration' href='XML:DTD#NamespaceDeclaration'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='NamespaceDeclaration' class='Builder' href='XML:Builder#BuilderDesc.NamespaceDeclaration'/>
    </procedure>
    <procedure name='AttributesDone' id='BuilderDesc.AttributesDone' export='yes'>
      <doc-inherited-from module='XML:Builder' name='AttributesDone' class='Builder' href='XML:Builder#BuilderDesc.AttributesDone'/>
      <oberon-doc>
        <summary>Called when the all attributes of a start tag, specified or defaulted, have been reported to the application.</summary>
        <p pad-after='yes' no-indent='yes'>Called when the all attributes of a start tag, specified or defaulted, have been reported to the application.  The locator is positioned after the closing <samp>&gt;</samp> of the start or empty element tag.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.AttributesDone.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='AttributesDone' class='Builder' href='XML:Builder#BuilderDesc.AttributesDone'/>
    </procedure>
    <procedure name='SkippedEntity' id='BuilderDesc.SkippedEntity' export='yes'>
      <doc-inherited-from module='XML:Builder' name='SkippedEntity' class='Builder' href='XML:Builder#BuilderDesc.SkippedEntity'/>
      <oberon-doc>
        <summary>This method is called for every entity skipped by a non-validating parser, if it configured to ignore references to external parsed entities.</summary>
        <p pad-after='yes' no-indent='yes'>This method is called for every entity skipped by a non-validating parser, if it configured to ignore references to external parsed entities.  <oberon-param href='#BuilderDesc.SkippedEntity.name'>name</oberon-param> is the name of the skipped entity and <oberon-param href='#BuilderDesc.SkippedEntity.referent'>referent</oberon-param> its entity declaration, if this information is available.  The locator refers to the beginning of the name of the entity reference.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.SkippedEntity.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
        <parameter-decl name='name' id='BuilderDesc.SkippedEntity.name' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='String' href='XML:DTD#String'/>
          </type>
        </parameter-decl>
        <parameter-decl name='referent' id='BuilderDesc.SkippedEntity.referent' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='Entity' href='XML:DTD#Entity'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='SkippedEntity' class='Builder' href='XML:Builder#BuilderDesc.SkippedEntity'/>
    </procedure>
    <procedure name='EndElement' id='BuilderDesc.EndElement' export='yes'>
      <doc-inherited-from module='XML:Builder' name='EndElement' class='Builder' href='XML:Builder#BuilderDesc.EndElement'/>
      <oberon-doc>
        <summary>Called when an end tag is parsed.</summary>
        <p pad-after='yes' no-indent='yes'>Called when an end tag is parsed.  See <oberon-proc href='XML:Builder#BuilderDesc.StartElement'>Builder.StartElement</oberon-proc> for a description of the arguments.  The locator is positioned at the beginning of the end tag's name, if an explicit end tag exists.  Otherwise, it is placed after the closing <samp>/&gt;</samp> of the empty element tag.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.EndElement.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
        <parameter-decl name='namespaceDecl' id='BuilderDesc.EndElement.namespaceDecl' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='NamespaceDeclaration' href='XML:DTD#NamespaceDeclaration'/>
          </type>
        </parameter-decl>
        <parameter-decl name='localName' id='BuilderDesc.EndElement.localName' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='String' href='XML:DTD#String'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='EndElement' class='Builder' href='XML:Builder#BuilderDesc.EndElement'/>
    </procedure>
    <procedure name='EntityDecl' id='BuilderDesc.EntityDecl' export='yes'>
      <doc-inherited-from module='XML:Builder' name='EntityDecl' class='Builder' href='XML:Builder#BuilderDesc.EntityDecl'/>
      <oberon-doc>
        <summary>Called for declarations of general entities.</summary>
        <p pad-after='yes' no-indent='yes'>Called for declarations of general entities.  The locator points to the first character of the declared name.</p>
        <p pad-after='yes' no-indent='no'>Note: The document entity is passed to <oberon-proc href='XML:Builder#BuilderDesc.StartDocument'>Builder.StartDocument</oberon-proc>, and the entity for the external DTD subset to <oberon-proc href='XML:Builder#BuilderDesc.EndDTD'>Builder.EndDTD</oberon-proc>, of it exists.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.EntityDecl.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
        <parameter-decl name='entity' id='BuilderDesc.EntityDecl.entity' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='Entity' href='XML:DTD#Entity'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='EntityDecl' class='Builder' href='XML:Builder#BuilderDesc.EntityDecl'/>
    </procedure>
    <procedure name='Notation' id='BuilderDesc.Notation' export='yes'>
      <doc-inherited-from module='XML:Builder' name='Notation' class='Builder' href='XML:Builder#BuilderDesc.Notation'/>
      <oberon-doc>
        <summary>Called for notation declarations.</summary>
        <p pad-after='yes' no-indent='yes'>Called for notation declarations.  The locator points to the first character of the declared name.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.Notation.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
        <parameter-decl name='notation' id='BuilderDesc.Notation.notation' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='Notation' href='XML:DTD#Notation'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='Notation' class='Builder' href='XML:Builder#BuilderDesc.Notation'/>
    </procedure>
    <procedure name='Characters' id='BuilderDesc.Characters' export='yes'>
      <doc-inherited-from module='XML:Builder' name='Characters' class='Builder' href='XML:Builder#BuilderDesc.Characters'/>
      <oberon-doc>
        <summary>Called for non-markup characters that appear within the document element.</summary>
        <p pad-after='yes' no-indent='yes'>Called for non-markup characters that appear within the document element.  The array slice <samp><oberon-param href='#BuilderDesc.Characters.chars'>chars</oberon-param>[<oberon-param href='#BuilderDesc.Characters.charsStart'>charsStart</oberon-param>, <oberon-param href='#BuilderDesc.Characters.charsEnd'>charsEnd</oberon-param>[</samp> holds the character data.  <oberon-param href='#BuilderDesc.Characters.elementWhitespace'>elementWhitespace</oberon-param> indicates whether the characters are whitespace appearing within element content.</p>
        <p pad-after='yes' no-indent='no'>The locator refers to the first character.</p>
        <p pad-after='yes' no-indent='no'><emph>Note</emph>: It is up to the parser how it partitions character data before reporting it to the application.  For example, the character data of an element may be reported in one call to <oberon-proc href='XML:Builder#BuilderDesc.Characters'>Builder.Characters</oberon-proc>, or in multiple chunks, depending on embedded character references, general entity references, CDATA sections, and the size of the character content.  It is only guaranteed that this procedure is called with an integral number of ISO 10646 characters (e.g., surrogate pairs are reported in one call).</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.Characters.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
        <parameter-decl name='chars' id='BuilderDesc.Characters.chars' export='no' variable-parameter='yes'>
          <type>
            <type-name module='DTD' name='StringVar' href='XML:DTD#StringVar'/>
          </type>
        </parameter-decl>
        <parameter-decl name='charsStart' id='BuilderDesc.Characters.charsStart' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='CharPos' href='XML:DTD#CharPos'/>
          </type>
        </parameter-decl>
        <parameter-decl name='charsEnd' id='BuilderDesc.Characters.charsEnd' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='CharPos' href='XML:DTD#CharPos'/>
          </type>
        </parameter-decl>
        <parameter-decl name='elementWhitespace' id='BuilderDesc.Characters.elementWhitespace' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='ElementWhitespaceType' href='XML:DTD#ElementWhitespaceType'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='Characters' class='Builder' href='XML:Builder#BuilderDesc.Characters'/>
    </procedure>
    <procedure name='StartCDATA' id='BuilderDesc.StartCDATA' export='yes'>
      <doc-inherited-from module='XML:Builder' name='StartCDATA' class='Builder' href='XML:Builder#BuilderDesc.StartCDATA'/>
      <oberon-doc>
        <summary>Called at the beginning of a CDATA section.</summary>
        <p pad-after='yes' no-indent='yes'>Called at the beginning of a CDATA section.  The next calls to <oberon-proc href='XML:Builder#BuilderDesc.Characters'>Builder.Characters</oberon-proc> before <oberon-proc href='XML:Builder#BuilderDesc.EndCDATA'>Builder.EndCDATA</oberon-proc> represent the CDATA's character content.</p>
        <p pad-after='yes' no-indent='no'>The locator is positioned at <samp>&lt;![CDATA[</samp>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.StartCDATA.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='StartCDATA' class='Builder' href='XML:Builder#BuilderDesc.StartCDATA'/>
    </procedure>
    <procedure name='EndCDATA' id='BuilderDesc.EndCDATA' export='yes'>
      <doc-inherited-from module='XML:Builder' name='EndCDATA' class='Builder' href='XML:Builder#BuilderDesc.EndCDATA'/>
      <oberon-doc>
        <summary>Called at the end of a CDATA section.</summary>
        <p pad-after='yes' no-indent='yes'>Called at the end of a CDATA section.  The locator refers to the position after the <samp>]]&gt;</samp>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.EndCDATA.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='EndCDATA' class='Builder' href='XML:Builder#BuilderDesc.EndCDATA'/>
    </procedure>
    <procedure name='StartEntity' id='BuilderDesc.StartEntity' export='yes'>
      <doc-inherited-from module='XML:Builder' name='StartEntity' class='Builder' href='XML:Builder#BuilderDesc.StartEntity'/>
      <oberon-doc>
        <summary>This method is called before the replacement text of a general entity is inspected in an element's content.</summary>
        <p pad-after='yes' no-indent='yes'>This method is called before the replacement text of a general entity is inspected in an element's content.  <oberon-param href='#BuilderDesc.StartEntity.entity'>entity</oberon-param> refers to the entity that is being expanded.  The locator points to the <samp>&amp;</samp> in front of the name of the entity reference.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.StartEntity.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
        <parameter-decl name='entity' id='BuilderDesc.StartEntity.entity' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='Entity' href='XML:DTD#Entity'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='StartEntity' class='Builder' href='XML:Builder#BuilderDesc.StartEntity'/>
    </procedure>
    <procedure name='EndEntity' id='BuilderDesc.EndEntity' export='yes'>
      <doc-inherited-from module='XML:Builder' name='EndEntity' class='Builder' href='XML:Builder#BuilderDesc.EndEntity'/>
      <oberon-doc>
        <summary>Called when parsing of the replacement text of <oberon-param href='#BuilderDesc.EndEntity.entity'>entity</oberon-param> is done.</summary>
        <p pad-after='yes' no-indent='yes'>Called when parsing of the replacement text of <oberon-param href='#BuilderDesc.EndEntity.entity'>entity</oberon-param> is done.  The locator points to the first character after the entity reference.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.EndEntity.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
        <parameter-decl name='entity' id='BuilderDesc.EndEntity.entity' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='Entity' href='XML:DTD#Entity'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='EndEntity' class='Builder' href='XML:Builder#BuilderDesc.EndEntity'/>
    </procedure>
    <procedure name='ProcessingInstruction' id='BuilderDesc.ProcessingInstruction' export='yes'>
      <doc-inherited-from module='XML:Builder' name='ProcessingInstruction' class='Builder' href='XML:Builder#BuilderDesc.ProcessingInstruction'/>
      <oberon-doc>
        <summary>Called for processing instructions.</summary>
        <p pad-after='yes' no-indent='yes'>Called for processing instructions.  <oberon-param href='#BuilderDesc.ProcessingInstruction.target'>target</oberon-param> holds the PI's target part.  The array slice <samp><oberon-param href='#BuilderDesc.ProcessingInstruction.content'>content</oberon-param>[<oberon-param href='#BuilderDesc.ProcessingInstruction.contentStart'>contentStart</oberon-param>, <oberon-param href='#BuilderDesc.ProcessingInstruction.contentEnd'>contentEnd</oberon-param>[</samp> holds the content data.  <oberon-param href='#BuilderDesc.ProcessingInstruction.baseURI'>baseURI</oberon-param> is the absolute URI of the entity in which the PI appears.</p>
        <p pad-after='yes' no-indent='no'>The locator is positioned at the <samp>&lt;?</samp>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.ProcessingInstruction.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
        <parameter-decl name='target' id='BuilderDesc.ProcessingInstruction.target' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='String' href='XML:DTD#String'/>
          </type>
        </parameter-decl>
        <parameter-decl name='content' id='BuilderDesc.ProcessingInstruction.content' export='no' variable-parameter='yes'>
          <type>
            <type-name module='DTD' name='StringVar' href='XML:DTD#StringVar'/>
          </type>
        </parameter-decl>
        <parameter-decl name='contentStart' id='BuilderDesc.ProcessingInstruction.contentStart' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='CharPos' href='XML:DTD#CharPos'/>
          </type>
        </parameter-decl>
        <parameter-decl name='contentEnd' id='BuilderDesc.ProcessingInstruction.contentEnd' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='CharPos' href='XML:DTD#CharPos'/>
          </type>
        </parameter-decl>
        <parameter-decl name='baseURI' id='BuilderDesc.ProcessingInstruction.baseURI' export='no' variable-parameter='no'>
          <type>
            <type-name module='URI' name='URI' href='URI#URI'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='ProcessingInstruction' class='Builder' href='XML:Builder#BuilderDesc.ProcessingInstruction'/>
    </procedure>
    <procedure name='Comment' id='BuilderDesc.Comment' export='yes'>
      <doc-inherited-from module='XML:Builder' name='Comment' class='Builder' href='XML:Builder#BuilderDesc.Comment'/>
      <oberon-doc>
        <summary>Called for comments.</summary>
        <p pad-after='yes' no-indent='yes'>Called for comments.  The array slice <samp><oberon-param href='#BuilderDesc.Comment.chars'>chars</oberon-param>[<oberon-param href='#BuilderDesc.Comment.start'>start</oberon-param>, <oberon-param href='#BuilderDesc.Comment.end'>end</oberon-param>[</samp> holds the comment's content.</p>
        <p pad-after='yes' no-indent='no'>The locator is positioned at the <samp>&lt;!--</samp>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='b' id='BuilderDesc.Comment.b' export='no' variable-parameter='no'>
          <type>
            <type-name name='Builder' href='#Builder'/>
          </type>
        </receiver-decl>
        <parameter-decl name='chars' id='BuilderDesc.Comment.chars' export='no' variable-parameter='yes'>
          <type>
            <type-name module='DTD' name='StringVar' href='XML:DTD#StringVar'/>
          </type>
        </parameter-decl>
        <parameter-decl name='start' id='BuilderDesc.Comment.start' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='CharPos' href='XML:DTD#CharPos'/>
          </type>
        </parameter-decl>
        <parameter-decl name='end' id='BuilderDesc.Comment.end' export='no' variable-parameter='no'>
          <type>
            <type-name module='DTD' name='CharPos' href='XML:DTD#CharPos'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='XML:Builder' name='Comment' class='Builder' href='XML:Builder#BuilderDesc.Comment'/>
    </procedure>
    <procedure name='New' id='New' export='yes'>
      <formal-parameters>
        <parameter-decl name='outputChannel' id='New.outputChannel' export='no' variable-parameter='no'>
          <type>
            <type-name module='IO' name='ByteChannel' href='IO#ByteChannel'/>
          </type>
        </parameter-decl>
        <parameter-decl name='codecFactory' id='New.codecFactory' export='no' variable-parameter='no'>
          <type>
            <type-name module='Codec' name='Factory' href='XML:UnicodeCodec#Factory'/>
          </type>
        </parameter-decl>
        <result-type>
          <type-name name='Builder' href='#Builder'/>
        </result-type>
      </formal-parameters>
    </procedure>
    <base-class module='XML:Builder' class='Builder' href='XML:Builder#Builder'>
      <inherited-method module='XML:Builder' name='Attribute' class='Builder' href='XML:Builder#BuilderDesc.Attribute'/>
      <inherited-method module='XML:Builder' name='AttributesDone' class='Builder' href='XML:Builder#BuilderDesc.AttributesDone'/>
      <inherited-method module='XML:Builder' name='Characters' class='Builder' href='XML:Builder#BuilderDesc.Characters'/>
      <inherited-method module='XML:Builder' name='Comment' class='Builder' href='XML:Builder#BuilderDesc.Comment'/>
      <inherited-method module='XML:Builder' name='EndCDATA' class='Builder' href='XML:Builder#BuilderDesc.EndCDATA'/>
      <inherited-method module='XML:Builder' name='EndDTD' class='Builder' href='XML:Builder#BuilderDesc.EndDTD'/>
      <inherited-method module='XML:Builder' name='EndDocument' class='Builder' href='XML:Builder#BuilderDesc.EndDocument'/>
      <inherited-method module='XML:Builder' name='EndElement' class='Builder' href='XML:Builder#BuilderDesc.EndElement'/>
      <inherited-method module='XML:Builder' name='EndEntity' class='Builder' href='XML:Builder#BuilderDesc.EndEntity'/>
      <inherited-method module='XML:Builder' name='EntityDecl' class='Builder' href='XML:Builder#BuilderDesc.EntityDecl'/>
      <inherited-method module='XML:Builder' name='NamespaceDeclaration' class='Builder' href='XML:Builder#BuilderDesc.NamespaceDeclaration'/>
      <inherited-method module='XML:Builder' name='Notation' class='Builder' href='XML:Builder#BuilderDesc.Notation'/>
      <inherited-method module='XML:Builder' name='ProcessingInstruction' class='Builder' href='XML:Builder#BuilderDesc.ProcessingInstruction'/>
      <inherited-method module='XML:Builder' name='SetErrorListener' class='Builder' href='XML:Builder#BuilderDesc.SetErrorListener'/>
      <inherited-method module='XML:Builder' name='SetLocator' class='Builder' href='XML:Builder#BuilderDesc.SetLocator'/>
      <inherited-method module='XML:Builder' name='SkippedEntity' class='Builder' href='XML:Builder#BuilderDesc.SkippedEntity'/>
      <inherited-method module='XML:Builder' name='StartCDATA' class='Builder' href='XML:Builder#BuilderDesc.StartCDATA'/>
      <inherited-method module='XML:Builder' name='StartDTD' class='Builder' href='XML:Builder#BuilderDesc.StartDTD'/>
      <inherited-method module='XML:Builder' name='StartDocument' class='Builder' href='XML:Builder#BuilderDesc.StartDocument'/>
      <inherited-method module='XML:Builder' name='StartElement' class='Builder' href='XML:Builder#BuilderDesc.StartElement'/>
      <inherited-method module='XML:Builder' name='StartEntity' class='Builder' href='XML:Builder#BuilderDesc.StartEntity'/>
    </base-class>
  </class>
  <module-ref name='XML:Builder:Namespaces'>
    <ref-target type='html' relative-uri='Namespaces.html'/>
  </module-ref>
  <module-ref name='XML:Parser'>
    <ref-target type='html' relative-uri='../Parser.html'/>
  </module-ref>
  <module-ref name='XML:Locator'>
    <ref-target type='html' relative-uri='../Locator.html'/>
  </module-ref>
  <module-ref name='XML:UnicodeCodec'>
    <ref-target type='html' relative-uri='../UnicodeCodec.html'/>
  </module-ref>
  <module-ref name='XML:Builder'>
    <ref-target type='html' relative-uri='../Builder.html'/>
  </module-ref>
  <module-ref name='URI'>
    <ref-target type='html' relative-uri='../../URI.html'/>
  </module-ref>
  <module-ref name='XML:Writer'>
    <ref-target type='html' relative-uri='../Writer.html'/>
  </module-ref>
  <module-ref name='XML:DTD'>
    <ref-target type='html' relative-uri='../DTD.html'/>
  </module-ref>
  <module-ref name='IO'>
    <ref-target type='html' relative-uri='../../IO.html'/>
  </module-ref>
</interface-description>
