C++ Streaming parser for VOTable

The C++ Streaming Parser is a library in C++ for parsing VOTables, with streaming support. The APIs provided can be used directly to develop VOTable applications without having to carry out raw VOTable processing.

The streaming parser is different from its previous, non-streaming version, in that it does not create a tree-representation of the document in the memory. It reads the VOTable in chunks. Hence, it can be used for parsing real-time, streaming VOTables as well as those VOTables, which are too large to fit in the memory. The other aspect of being a streaming parser is that it is a single-pass parser, ie the APIs provided do not allow you to move back and forth in the document.

Some Implementation Features

The parser has been implemented on top of the SAX based parser Xerces-C++ 2.2.0. Xerces basically has a push-based approach, but the C++ Streaming Parser acts as a layer on top of Xerces and provides a pull-based approach for the user applications.

The parser was developed by Persistent Systems Pvt. Ltd. and IUCAA as part of the VO-I project.

VOTable format

The VOTable format is a proposed XML(Extensible Markup Language) standard for the exchange of tabular data, with particular emphasis on astronomical tables. A table here is taken to be an unordered set of rows, each of a uniform format, as specified in the table metadata. Each row is a sequence of table cells, and each of these is either a primitive data type, or an array of such primitives. The VOTable format was developed by ..... For more information on VOTable go to http://us-vo.org/VOTable.

Object Model of C++ Parser

 

Downloads

VOTable Parser
Version
Windows32
(Built with MSVC6.0)
Linux Redhat 7.1
(Built with g++3.1)

1.0
CppStreamingParser1_0_win32.zip
CPPStreamingParser1_0_linux.zip

API Documentation is available here.

Please send comments and questions to voindia@vo.iucaa.ernet.in.