XB Library 1.0
The XB Library is an effort to implement a library for manipulation with universal file
format that would match the requirements of so called Binary XML (a superset of features
required by Efficient XML Interchange).
The XB data format allows fast and compact, yet still robust enough, serialization of
trees of any arbitrary data.
As fast and easy it is for user to work with XML documents it should be for computer
and programmer to work with XB documents.
The XB Library classes:
- a base document class that contains header and list of nodes
- an interface to XB document stored in physical file
Nodes tree classes
- represents a node in the XB document tree
- represents a node value, its type and codec
- universal raw binary data storage
- extensible intermediate step that determines the most compact representation of data
- extensible intermediate step for converting binary data back to C++ variable
- abstract interface required to implement binary data compression or encryption
- abstract interface used to implement parsing and serialization for various resources
- general algorithms for reading from and writing to XB alias and const_alias objects
- encoder and decoder of variable-size integral numbers
- serializer and parser of XB elements
- implementation of XB values type identification that allows safer casts
- the type definition and list of predefined values
- is used through the library for size and length variables
Installation and use
The installation consists of placing the /xb directory into your "include" directory
so the header files can be included like this: #include <xb/xb_xxx.hpp>.
You should always include one of the forwarding header files which are "document", "file" and
"node", for example #include <xb/file>, as the library structure and header
files and their names can change in future.
To compile program that use XB library, you will need to include relevant .cpp
file into compilation of your project (makefile, project, solution, etc...). It will be also
useful to compile the XB library files into a static libray (.a, .lib, ...) and then link
your program against this library.
This version was not tested outside of MinGW yet, but no major problems expected.
Author & Copyright
Copyright © 2006, Jan Ringoš, http://Tringi.MX-3.cz
The XB Library is provided 'as-is', without any express or implied warranty. In no event will
the author be held liable for any damages arising from the use of this software. Permission is
granted to anyone to use this software for any purpose, including commercial applications, and
to alter it and redistribute it freely, subject to the following restrictions:
- The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
- Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
- This notice may not be removed or altered from any source distribution.
Jan Ringoš, Tringi@Mx-3.cz