In recent years, the use of the Internet and technological development surrounding the Internet has spawned the creation of eXtensible Markup Language (XML). XML is generally regarded as a condensed form of Standard Generalized Markup Language (SGML) that allows programmers to create markup files with customized tags that offer greater flexibility in organizing and presenting information as opposed to the creation of markup files using Hypertext Markup Language (HTML). XML is essentially a specification set forth by a working group of the World Wide Web Consortium that provides rules for how XML files are to be created. XML is generally rather strict in demanding that XML files conform with the standards set forth in the specification.
Currently, many new applications are appearing on the Internet that create or receive XML files. In the typical case that an application receives an XML file, the application employs an XML parser to break down the XML file into component parts according to a format that is accessible by the application itself. For example, some XML parsers generate events based on the content of the XML file that is provided to the application. In one case, these events are formatted according to the Simple Applications Programming Interface for XML (SAX) as is generally known by those with ordinary skill in the art. Thus, a typical application can employ an XML parser to generate SAX events from the XML file. The SAX events provide the data substance contained in the XML file to the application in a recognizable format. XML parsers may also determine, for example, whether a particular XML file is “well formed” in the sense that the XML does not violate the rules that specify the creation of XML files. There are other additional tasks performed by XML parsers that are not described herein, but are generally known by those with ordinary skill in the art.
For those who are creating various applications for the Internet or other network environment, there are many different XML parsers that are available that can be plugged into the application as needed. Unfortunately, the many different XML parsers available have different capabilities in parsing XML files. In particular, the various XML parsers can have many different levels of capability with corresponding speeds of operation. For example, an XML parser of significant complexity may operate at a relatively slow pace. Conversely, an XML parser of lesser complexity with corresponding limited capability may operate at a much faster pace. Thus, it is difficult for builders of applications to obtain an XML parser that provides comprehensive parsing functionality that also operates at a relatively fast speed.