Virtual Storage is a core platform that provides capabilities to create the customized local application data storage.
It is not a kind of relational or hierarchical database but platform that includes the basic tool to create random or sequential data access mechanism.
The basic principles are:
1. Data storage is a set of random-access address spaces.
2. Each space supports the following functions:
• Allocate/release space chunks.
• Direct read/write operations by address or assigned unique keys.
• Indexing data within space by user-defined keys.
3. All write operations performed within cross-space transactions that guarantees data consistency on the physical level.
4. The basic access method for each space is virtual memory mechanism that uses real-memory cache.
5. All physical input/output operations performed on the page level (page size is defined for each space and may vary within storage).
6. Address space boundaries are limited by physical space file(s) size.
7. Each space can be expanded by adding disk space to the space file or creation of the new partition file(s).
8. Access is available in read-write mode by only one process or many processes in read only mode.

VXML (Virtual XML) is XML-based database built on Virtual Storage platform as VStorage wrapper.
It inherits all existing Virtual Storage capabilities, such as distributed allocation of the database files, multi-space approach for specific data pools, dump/restore functions, static and dynamic storage extension, transactions, physical data consistency, etc.
VXML database is NOT a single XML document. It provides the embedded catalog structure that can be managed by user in the specific manner, XML documents are attached to catalog nodes. XQL queries may retrieve XML nodes from the specific document/element or documents list from the catalog structure using internal documents nodes as well as document names in the queries.
So, there are some specific extensions in VXML:
• New node type ‘Catalog’ that allows build the catalog tree.
• New node type ‘Reference’ that allows create reference to the ‘Catalog’ or ‘Document’ objects. References could be used instead of cloning real objects.
• New node type 'Content' that allows create binary content attached to the document element. Binary content could be stored in the separate Virtual Storage space for easy management. Anyway the data consistency will be guaranteed by the Virtual Storage cross-space transactions.
• Extended XQL language to search objects within catalog tree as well as within particular document; multi-level search conditions could be defined.
• Data portability. Any document or document element (including all subtree) could be exported using CheckOut method to the file in the internal portable format with assigning unique GUID identifier. This file can be checked in to another database and the source data will become read-only. This capability allows safe data exchange between two or more VXML databases.
VXML also provides its own UI administration tool (VXmlExplorer) that allows manage data spaces for VXML storage as well as individual objects within the database (create, edit, delete).