3.1.1 Abstract Data Model

This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.

Tabular data is retrieved by a client from the server, and then read, navigated, filtered, sorted, and grouped using the Table Object Protocol properties and operations.

When retrieving a table from the server, the set of properties returned for each row can be limited by a column set, and which rows are returned can be limited by a restriction. The order in which rows are returned can be specified by the sort order.

Additionally, tables can categorize rows by column values, and if a table has multivalue properties, it can have multivalue instances, which allows for categorization based on these multivalue instances.

Navigation in a table is aided by using a cursor and bookmarks. The current location in a table is determined by the cursor position, which points to a row of data. A row can also be referred to by a bookmark. Three predefined bookmarks point to the current position, the beginning of a table, and the end of a table, as specified in section 2.2.2.1.1.

A client can have more than one table opened on each data source. Each table is independent and has its own cursor, bookmarks, sort order, restriction, column set, and notification requests.