Class

# XMLReader

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

## Description

This is a wrapper class for the latest version of Expat (XML Parser Toolkit). Expat is a library for parsing XML documents.

## Properties

<div class="rst-class">

table-centered_columns_3_and_4

</div>

| Name                                                         | Type                               | Read-Only | Shared |
|--------------------------------------------------------------|------------------------------------|-----------|--------|
| `Base<xmlreader.base>`                                       | `String</api/data_types/string>`   |           |        |
| `CurrentByteCount<xmlreader.currentbytecount>`               | `Integer</api/data_types/integer>` | ✓         |        |
| `CurrentByteIndex<xmlreader.currentbyteindex>`               | `Integer</api/data_types/integer>` | ✓         |        |
| `CurrentColumnNumber<xmlreader.currentcolumnnumber>`         | `Integer</api/data_types/integer>` | ✓         |        |
| `CurrentLineNumber<xmlreader.currentlinenumber>`             | `Integer</api/data_types/integer>` | ✓         |        |
| `ErrorCode<xmlreader.errorcode>`                             | `Integer</api/data_types/integer>` | ✓         |        |
| `SetDefaultHandler<xmlreader.setdefaulthandler>`             | `Boolean</api/data_types/boolean>` |           |        |
| `SetDefaultHandlerExpand<xmlreader.setdefaulthandlerexpand>` | `Boolean</api/data_types/boolean>` |           |        |

## Methods

<div class="rst-class">

table-centered_column_4

</div>

| Name                                                               | Parameters                                                                                              | Returns                            | Shared |
|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|------------------------------------|--------|
| `Constructor<xmlreader.constructor0>`                              |                                                                                                         |                                    |        |
| `Constructor<xmlreader.constructor1>`                              | XMLEncoding As `String</api/data_types/string>`, namespaceSeparator As `String</api/data_types/string>` |                                    |        |
| `CreateExternalEntityReader<xmlreader.createexternalentityreader>` | XMLEncoding As `String</api/data_types/string>`                                                         |                                    |        |
| `DefaultCurrent<xmlreader.defaultcurrent>`                         |                                                                                                         |                                    |        |
| `FreeExternalEntityReader<xmlreader.freeexternalentityreader>`     |                                                                                                         |                                    |        |
| `Parse<xmlreader.parse>`                                           | file As `FolderItem</api/files/folderitem>`                                                             |                                    |        |
|                                                                    | file As `FolderItem</api/files/folderitem>`, isFinal As `Boolean</api/data_types/boolean>`              |                                    |        |
|                                                                    | s As `String</api/data_types/string>`                                                                   |                                    |        |
|                                                                    | s As `String</api/data_types/string>`, isFinal As `Boolean</api/data_types/boolean>`                    |                                    |        |
| `Reset<xmlreader.reset>`                                           |                                                                                                         | `Boolean</api/data_types/boolean>` |        |
|                                                                    | xmlEncoding As `String</api/data_types/string>`                                                         | `Boolean</api/data_types/boolean>` |        |

## Events

<div class="rst-class">

table-centered_column_4

</div>

| Name                                                     | Parameters                                                                                                                                                                                                                                                                                                                                   | Returns |
|----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------|
| `AttListDecl<xmlreader.attlistdecl>`                     | elName As `String</api/data_types/string>`, attName As `String</api/data_types/string>`, att_Type As `String</api/data_types/string>`, dflt As `String</api/data_types/string>`, isRequired As `Boolean</api/data_types/boolean>`                                                                                                            |         |
| `Characters<xmlreader.characters>`                       | s As `String</api/data_types/string>`                                                                                                                                                                                                                                                                                                        |         |
| `Comment<xmlreader.comment>`                             | data As `String</api/data_types/string>`                                                                                                                                                                                                                                                                                                     |         |
| `Default<xmlreader.default>`                             | s As `String</api/data_types/string>`                                                                                                                                                                                                                                                                                                        |         |
| `ElementDecl<xmlreader.elementdecl>`                     | name As `String</api/data_types/string>`, content As `XMLContentModel</api/text/xml/xmlcontentmodel>`                                                                                                                                                                                                                                        |         |
| `EndCDATA<xmlreader.endcdata>`                           |                                                                                                                                                                                                                                                                                                                                              |         |
| `EndDoctypeDecl<xmlreader.enddoctypedecl>`               |                                                                                                                                                                                                                                                                                                                                              |         |
| `EndDocument<xmlreader.enddocument>`                     |                                                                                                                                                                                                                                                                                                                                              |         |
| `EndElement<xmlreader.endelement>`                       | name As `String</api/data_types/string>`                                                                                                                                                                                                                                                                                                     |         |
| `EndPrefixMapping<xmlreader.endprefixmapping>`           | prefix As `String</api/data_types/string>`                                                                                                                                                                                                                                                                                                   |         |
| `EntityDecl<xmlreader.entitydecl>`                       | entityName As `String</api/data_types/string>`, is_parameter_entity As `Boolean</api/data_types/boolean>`, value As `String</api/data_types/string>`, base As `String</api/data_types/string>`, systemID As `String</api/data_types/string>`, publicID As `String</api/data_types/string>`, notationName As `String</api/data_types/string>` |         |
| `ExternalEntityRef<xmlreader.externalentityref>`         | context As `String</api/data_types/string>`, base As `String</api/data_types/string>`, systemID As `String</api/data_types/string>`, publicID As `String</api/data_types/string>`                                                                                                                                                            |         |
| `NotationDecl<xmlreader.notationdecl>`                   | notationName As `String</api/data_types/string>`, base As `String</api/data_types/string>`, systemID As `String</api/data_types/string>`, publicID As `String</api/data_types/string>`                                                                                                                                                       |         |
| `NotStandalone<xmlreader.notstandalone>`                 |                                                                                                                                                                                                                                                                                                                                              |         |
| `ProcessingInstruction<xmlreader.processinginstruction>` | target As `String</api/data_types/string>`, data As `String</api/data_types/string>`                                                                                                                                                                                                                                                         |         |
| `SkippedEntity<xmlreader.skippedentity>`                 | entityName As `String</api/data_types/string>`, is_parameter_entity As `Boolean</api/data_types/boolean>`                                                                                                                                                                                                                                    |         |
| `StartCDATA<xmlreader.startcdata>`                       |                                                                                                                                                                                                                                                                                                                                              |         |
| `StartDoctypeDecl<xmlreader.startdoctypedecl>`           | doctypeName As `String</api/data_types/string>`, systemID As `String</api/data_types/string>`, publicID As `String</api/data_types/string>`, has_Internal_Subset As `Boolean</api/data_types/boolean>`                                                                                                                                       |         |
| `StartDocument<xmlreader.startdocument>`                 |                                                                                                                                                                                                                                                                                                                                              |         |
| `StartElement<xmlreader.startelement>`                   | name As `String</api/data_types/string>`, attributeList As `XMLAttributeList</api/text/xml/xmlattributelist>`                                                                                                                                                                                                                                |         |
| `StartPrefixMapping<xmlreader.startprefixmapping>`       | prefix As `String</api/data_types/string>`, URI As `String</api/data_types/string>`                                                                                                                                                                                                                                                          |         |
| `XMLDecl<xmlreader.xmldecl>`                             | version As `String</api/data_types/string>`, XMLEncoding As `String</api/data_types/string>`, standalone As `Boolean</api/data_types/boolean>`                                                                                                                                                                                               |         |

## Constants

The following class constants can be used to test the value in ErrorCode.

| Value | Constant                                   |
|-------|--------------------------------------------|
| 0     | XML_ERROR_NONE                             |
| 1     | XML_ERROR_NO_MEMORY                        |
| 2     | XML_ERROR_SYNTAX                           |
| 3     | XML_ERROR_NO_ELEMENTS                      |
| 4     | XML_ERROR_INVALID_TOKEN                    |
| 5     | XML_ERROR_UNCLOSED_TOKEN                   |
| 6     | XML_ERROR_PARTIAL_CHAR                     |
| 7     | XML_ERROR_TAG_MISMATCH                     |
| 8     | XML_ERROR_DUPLICATE_ATTRIBUTE              |
| 9     | XML_ERROR_JUNK_AFTER_DOC_ELEMENT           |
| 10    | XML_ERROR_PARAM_ENTITY_REF                 |
| 11    | XML_ERROR_UNDEFINED_ENTITY                 |
| 12    | XML_ERROR_RECURSIVE_ENTITY_REF             |
| 13    | XML_ERROR_ASYNC_ENTITY                     |
| 14    | XML_ERROR_BAD_CHAR_REF                     |
| 15    | XML_ERROR_BINARY_ENTITY_REF                |
| 16    | XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF    |
| 17    | XML_ERROR_MISPLACED_XML_PI                 |
| 18    | XML_ERROR_UNKNOWN_ENCODING                 |
| 19    | XML_ERROR_INCORRECT_ENCODING               |
| 20    | XML_ERROR_UNCLOSED_CDATA_SECTION           |
| 21    | XML_ERROR_EXTERNAL_ENTITY_HANDLING         |
| 22    | XML_ERROR_NOT_STANDALONE                   |
| 23    | XML_ERROR_UNEXPECTED_STATE                 |
| 24    | XML_ERROR_ENTITY_DECLARED_IN_PE            |
| 25    | XML_ERROR_FEATURE_REQUIRES_XML_DTD         |
| 26    | XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING |

## Property descriptions

<div id="xmlreader.base">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.Base

**Base** As `String</api/data_types/string>`

> Sets the base to be used for resolving relative URIs in system identifiers in declarations.

<div id="xmlreader.currentbytecount">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.CurrentByteCount

**CurrentByteCount** As `Integer</api/data_types/integer>`

> The number of bytes in the current event.
>
> This property is read-only.

<div id="xmlreader.currentbyteindex">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.CurrentByteIndex

**CurrentByteIndex** As `Integer</api/data_types/integer>`

> The byte position where the error occurred.
>
> This property is read-only.

<div id="xmlreader.currentcolumnnumber">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.CurrentColumnNumber

**CurrentColumnNumber** As `Integer</api/data_types/integer>`

> The column number the parser is currently on.
>
> This property is read-only.

<div id="xmlreader.currentlinenumber">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.CurrentLineNumber

**CurrentLineNumber** As `Integer</api/data_types/integer>`

> The line number the parser is currently on.
>
> This property is read-only.

<div id="xmlreader.errorcode">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.ErrorCode

**ErrorCode** As `Integer</api/data_types/integer>`

> The last error code.
>
> This property is read-only.

<div id="xmlreader.setdefaulthandler">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.SetDefaultHandler

**SetDefaultHandler** As `Boolean</api/data_types/boolean>`

> Sets Expat to send unknown data to the default event. Entities are not parsed.

<div id="xmlreader.setdefaulthandlerexpand">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.SetDefaultHandlerExpand

**SetDefaultHandlerExpand** As `Boolean</api/data_types/boolean>`

> Sets Expat to send unknown data to the Default event and expands entities.

## Method descriptions

<div id="xmlreader.constructor0">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.Constructor

**Constructor**

<div class="note">

<div class="title">

Note

</div>

`Constructors</api/language/constructor>` are special methods called when you create an object with the `New</api/language/new>` keyword and pass in the parameters above.

Creates an empty <span class="title-ref">XMLReader</span> instance.

</div>

<div id="xmlreader.constructor1">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.Constructor

**Constructor**(XMLEncoding as `String</api/data_types/string>`, namespaceSeparator as `String</api/data_types/string>`)

> Creates an <span class="title-ref">XMLReader</span> object.
>
> The *XMLEncoding* parameter sets the encoding for the parser. The default encoding is UTF-8. The *namespaceSeparator* parameter forces Expat to expand namespace definitions.

<div id="xmlreader.createexternalentityreader">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.CreateExternalEntityReader

**CreateExternalEntityReader**(XMLEncoding As `String</api/data_types/string>`)

> Create a *child* parser which can be used to parse an external parsed entity referred to by content parsed by the parent parser.

<div id="xmlreader.defaultcurrent">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.DefaultCurrent

**DefaultCurrent**

> If this is called from within an event, it will force the current data to route to the Default event.

<div id="xmlreader.freeexternalentityreader">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.FreeExternalEntityReader

**FreeExternalEntityReader**

> Removes from memory the child parser created by the `CreateExternalEntityReader<xmlreader.createexternalentityreader>` method.

<div id="xmlreader.parse">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.Parse

**Parse**(file As `FolderItem</api/files/folderitem>`)

> Parses the data in the passed document, *file*.

**Parse**(file As `FolderItem</api/files/folderitem>`, isFinal As `Boolean</api/data_types/boolean>`)

> Parses the data in the passed document, *file*.
>
> The parameter *isFinal* tells Expat what to do if the end of the data is reached and the XML is not well-formed, for example, if it stops in the middle of an element. Setting *isFinal* to `False</api/language/false>` will tell Expat not to throw an error because more data will be coming in another call.

**Parse**(s As `String</api/data_types/string>`)

> Parses the data in the passed string, *s*.

**Parse**(s As `String</api/data_types/string>`, isFinal As `Boolean</api/data_types/boolean>`)

> Parses the data in the passed string, *s*.
>
> The parameter *isFinal* tells Expat what to do if the end of the data is reached and the XML is not well-formed, for example, if it stops in the middle of an element. Setting *isFinal* to `False</api/language/false>` will tell Expat not to throw an error because more data will be coming in another call.

<div id="xmlreader.reset">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.Reset

**Reset** As `Boolean</api/data_types/boolean>`

> Resets the parser.

**Reset**(xmlEncoding As `String</api/data_types/string>`) As `Boolean</api/data_types/boolean>`

> Resets the parser.
>
> The parameter *xmlEncoding* specifies the Encoding of the data to be parsed. Returns a `Boolean</api/data_types/boolean>`.

## Event descriptions

<div id="xmlreader.attlistdecl">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.AttListDecl

**AttListDecl**(elName As `String</api/data_types/string>`, attName As `String</api/data_types/string>`, att_Type As `String</api/data_types/string>`, dflt As `String</api/data_types/string>`, isRequired As `Boolean</api/data_types/boolean>`)

> Called at a DTD attlist declaration.

<div id="xmlreader.characters">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.Characters

**Characters**(s As `String</api/data_types/string>`)

> Called at character data, *s*.

<div id="xmlreader.comment">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.Comment

**Comment**(data As `String</api/data_types/string>`)

> Called at the XML comment, *data*.

<div id="xmlreader.default">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.Default

**Default**(s As `String</api/data_types/string>`)

> Called for any characters in the XML document for which there is no applicable handler.

<div id="xmlreader.elementdecl">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.ElementDecl

**ElementDecl**(name As `String</api/data_types/string>`, content As `XMLContentModel</api/text/xml/xmlcontentmodel>`)

> Called at a DTD element declaration.

<div id="xmlreader.endcdata">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.EndCDATA

**EndCDATA**

> Called at the end of CDATA.

<div id="xmlreader.enddoctypedecl">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.EndDoctypeDecl

**EndDoctypeDecl**

> Called at the end of a DocType declaration.

<div id="xmlreader.enddocument">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.EndDocument

**EndDocument**

> Called at the end of the document.

<div id="xmlreader.endelement">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.EndElement

**EndElement**(name As `String</api/data_types/string>`)

> Called at the end of the element, *Name*.

<div id="xmlreader.endprefixmapping">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.EndPrefixMapping

**EndPrefixMapping**(prefix As `String</api/data_types/string>`)

> Called at the end of a namespace declaration.

<div id="xmlreader.entitydecl">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.EntityDecl

**EntityDecl**(entityName As `String</api/data_types/string>`, is_Parameter_Entity As `Boolean</api/data_types/boolean>`, value As `String</api/data_types/string>`, base As `String</api/data_types/string>`, systemID As `String</api/data_types/string>`, publicID As `String</api/data_types/string>`, notationName As `String</api/data_types/string>`)

> Called at an entity declaration.
>
> The *is_parameter_entity* will be `True</api/language/true>` if the entity is a parameter entity. For internal entities(\<!ENTITY foo "bar"\>), value will be populated and *SystemID*, *PublicID*, and *NotationName* will be empty strings. For external entities, *Value* will be an empty string and *SystemID* will be populated. The *PublicID* argument will be empty unless a public identifier was provided. The *NotationName* argument will have a populated value only for unparsed entity declarations.

<div id="xmlreader.externalentityref">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.ExternalEntityRef

**ExternalEntityRef**(context As `String</api/data_types/string>`, base As `String</api/data_types/string>`, systemID As `String</api/data_types/string>`, publicID As `String</api/data_types/string>`)

> Called at an external entity reference. `Return</api/language/return>` `False</api/language/false>` to stop parsing and return `True</api/language/true>` to report that handling of the external entity succeeded.

<div id="xmlreader.notationdecl">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.NotationDecl

**NotationDecl**(notationName As `String</api/data_types/string>`, base As `String</api/data_types/string>`, systemID As `String</api/data_types/string>`, publicID As `String</api/data_types/string>`)

> Called at a notation.

<div id="xmlreader.notstandalone">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.NotStandalone

**NotStandalone**

> This is called if the document is not standalone, that is, it has an external subset or a reference to a parameter entity, but does not have Standalone=Yes. `Return</api/language/return>` `False</api/language/false>` to cause parsing to stop.

<div id="xmlreader.processinginstruction">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.ProcessingInstruction

**ProcessingInstruction**(target As `String</api/data_types/string>`, data As `String</api/data_types/string>`)

> Called at the processing instruction, *Target* and *Data*.

<div id="xmlreader.skippedentity">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.SkippedEntity

**SkippedEntity**(entityName As `String</api/data_types/string>`, is_Parameter_Entity As `Boolean</api/data_types/boolean>`)

> Called when an entity is reached, but entities are not currently being expanded.

<div id="xmlreader.startcdata">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.StartCDATA

**StartCDATA**

> Called at the start of CDATA.

<div id="xmlreader.startdoctypedecl">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.StartDoctypeDecl

**StartDoctypeDecl**(doctypeName As `String</api/data_types/string>`, systemID As `String</api/data_types/string>`, publicID As `String</api/data_types/string>`, has_Internal_Subset As `Boolean</api/data_types/boolean>`)

> Called at the start of a DocType declaration.

<div id="xmlreader.startdocument">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.StartDocument

**StartDocument**

> Called at the start of a document.

<div id="xmlreader.startelement">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.StartElement

**StartElement**(name As `String</api/data_types/string>`, attributeList As `XMLAttributeList</api/text/xml/xmlattributelist>`)

> Called at the start of the XML element, *Name* and *AttributeList*.
>
> This event handler is called as each XML node is processed. You can then check the name to determine how you want to proceed.
>
> The following XML is contained in a constant called `kTestXml`:
>
> ``` XML
> <?xml version="1.0" encoding="UTF-8"?>
> <League>
>    <Team name="Seagulls">
>       <Player name="Bob" position="1B" />
>       <Player name="Tom" position="2B" />
>    </Team>
>    <Team name="Pigeons">
>       <Player name="Bill" position="1B" />
>       <Player name="Tim" position="2B" />
>    </Team>
>    <Team name="Crows">
>       <Player name="Ben" position="1B" />
>       <Player name="Ty" position="2B" />
>    </Team>
> </League>
> ```
>
> This code in the StarElement event handler will display the XML as it is processed:
>
> ``` xojo
> Select Case name
> Case "Team"
>    ' On the Team node, get the name attribute and
>    ' display it
>    ' OutPut is a ListBox
>    Output.AddRow(attributeList.Value("name"))
>
> Case "Player"
>    ' Get each player node and display the player name
>    ' and position
>    ' Output is a ListBox
>    Output.AddRow("", attributeList.Value("name"), attributeList.Value("position"))
>
> End Select
> ```

<div id="xmlreader.startprefixmapping">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.StartPrefixMapping

**StartPrefixMapping**(prefix As `String</api/data_types/string>`, URI As `String</api/data_types/string>`)

> Called at the beginning of the namespace declaration, *Prefix* and *URI*.

<div id="xmlreader.xmldecl">

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

</div>

<div class="rst-class">

forsearch

</div>

XMLReader.XMLDecl

**XMLDecl**(version As `String</api/data_types/string>`, XMLEncoding As `String</api/data_types/string>`, standalone As `Boolean</api/data_types/boolean>`)

> Called on an XML declaration node.

## Notes

You will likely use the StartElement event handler to do most of your processing.

XMLReader can be used to parse an XML document instead of using the `XMLDocument</api/text/xml/xmldocument>` class. In most cases you will want to use `XMLDocument</api/text/xml/xmldocument>` as it is simpler, but <span class="title-ref">XMLReader</span> can be useful for more advanced situations:

- Large XML documents that would take too much memory to load with XMLDocument
- Where you only need to parse out a subset of the XML and do not need to load the entire document
- Situations where you want to convert the XML to another format on the fly

To use <span class="title-ref">XMLReader</span>, create a subclass and implement the event handlers.

## Compatibility

|                       |     |
|-----------------------|-----|
| **Project Types**     | All |
| **Operating Systems** | All |

<div class="seealso">

`Object</api/data_types/additional_types/object>` parent class; `XMLReaderException</api/exceptions/xmlreaderexception>` class.

</div>
