www.alphaworks.ibm.comwww.ibm.com/developerwww.ibm.com

Home

Readme
Download

Build Instructions







Migration

Releases

Feedback

Y2K Compliance


CVS Repository
Mail Archive

PParse
 

PParse demonstrates progressive parsing.

In this example, the programmer doesn't have to depend upon throwing an exception to terminate the parsing operation. Calling parseFirst() will cause the DTD to be parsed (both internal and external subsets) and any pre-content, i.e. everything up to but not including the root element. Subsequent calls to parseNext() will cause one more piece of markup to be parsed, and spit out from the core scanning code to the parser. You can quit the parse any time by just not calling parseNext() anymore and breaking out of the loop. When you call parseNext() and the end of the root element is the next piece of markup, the parser will continue on to the end of the file and return false, to let you know that the parse is done.

Building on Windows
 

Load the xml4c-3_5_1win32\samples\Projects\Win32\VC6\samples.dsw Microsoft Visual C++ workspace inside your MSVC IDE. Then build the project marked PParse.


Building on UNIX
 
cd xml4c-3_5_1-linux/samples
./runConfigure -p<platform> -c<C_compiler> -x<C++_compiler>
cd PParse
gmake

This will create the object files in the current directory and the executable named PParse in ' xml4c-3_5_1-linux/bin' directory.

To delete all the generated object files and executables, type:

gmake clean

Running PParse
 

The program looks for the first 16 elements of the XML file, and reports if successful.

PParse <XML file>
Usage: PParse [options] <file>

This sample program demonstrates the progressive parse capabilities of
the parser system. It allows you to do a scanFirst() call followed by
a loop which calls scanNext(). You can drop out when you've found what
ever it is you want. In our little test, our event handler looks for
16 new elements then sets a flag to indicate its found what it wants.
At that point, our progressive parse loop exits.

Options:
      -v=xxx        - Validation scheme [always | never | auto*]
      -n            - Enable namespace processing [default is off]
      -s            - Enable schema processing [default is off]
      -?            - Show this help (must be the only parameter)

  * = Default if not provided explicitly

The output is the following:

cd xml4c-3_5_1-linux/samples/data
PParse personal.xml

Got the required 16 elements.


Footer