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.

The relationship between the Excel Services REST Protocol data model and the Entity Data Model defined in [MC-CSDL] are described as follows. The mapping between Entity Data Model concepts and those of the AtomPub specification is described in [MS-ODATA] section 2.2.1. The described relationship 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 the behavior described in [MS-ODATA] and [MC-CSDL].

Spreadsheet data structure

Description

Entity Data Model term

Model

Information about the spreadsheet.

EntitySet

Session

Information about a view session to be created on the protocol server.

EntitySet

Ranges

The list of ranges that are exposed by the spreadsheet.

EntitySet

Charts

The list of charts that are exposed by the spreadsheet.

EntitySet

Tables

The list of tables that are exposed by the spreadsheet.

EntitySet

PivotTables

The list of pivot tables that are exposed by the spreadsheet.

EntitySet

Range

A range from the spreadsheet.

Entity

Table

A table from the spreadsheet.

Entity

PivotTable

A PivotTable from the spreadsheet.

Entity

Chart

A chart from the spreadsheet.

None. Returned as a binary response to the request.

OData

The OData service document, as specified in [MS-ODATA].

None. This is the OData service document, as specified in [MS-ODATA].

Sessions

The entry point for creating a view session on the protocol server.

EntitySet

Slicers

The list of slicers that are exposed by the spreadsheet.

EntitySet

Slicer

A slicer from the spreadsheet.

Entity

Timelines

The list of timelines that are exposed by the spreadsheet.

EntitySet

Timeline

A timeline from the spreadsheet.

Entity

_unsupported_InteractiveReports

The list of interactive reports that are exposed by the workbook.

EntitySet

Store

The Store data of interactive reports exposed by the workbook.

Entity

ConnectionInfo

The ConnectionInfo data of interactive reports exposed by the workbook.

Entity

State

The sort operations on PivotTables that are exposed by the workbook.

Entity

When the $format (as specified in [MS-ODATA] section 2.2.3.6.1.5) Uniform Resource Locator (URL) parameter is specified, it overrides the logic specified in [MS-ODATA] with relation to the ACCEPT HTTP header. When there are multiple response formats that satisfy the ACCEPT HTTP header, if one of the content types corresponds to the default format for the EntityType or EntitySet, that is the one that will be returned. If none of the content types specified in the ACCEPT HTTP header is the default one, the protocol server MUST return the supported format with the highest priority in the ACCEPT HTTP header.

Requests can contain a URL parameter where the key starts with "Ranges(‘" and ends with "’)" (case insensitive), between these two strings, the key will contain a string that refers to a range. When such a parameter is passed, the protocol server MUST place the value associated with the parameter in the spreadsheet range specified by the parameter and recalculate the spreadsheet before returning the result from the same spreadsheet. The range specified in the parameter MUST correspond to a single cell in the spreadsheet.

Model and Session Entities Sets are also used as contexts for other entities in the workbook. An entities is said to be "in the context" of Model or Session if the URL path used to access the entities is respectively using the /Model or /Session URL path part.

Unless specified otherwise, all access to the above entities MUST use HTTP GET verb. Whenever PUT or DELETE verbs are specified, calling these verbs needs to be implemented through the usage of HTTP tunneling technique. Such technique requires that HTTP POST verb is used with X-HTTP-Method request header with the value of "PUT" or "DELETE" respectively.