1.1 Glossary

This document uses the following terms:

alias: A simple identifier that is typically used as a short name for a namespace.

annotation: Any custom, application-specific extension that is applied to an instance of a schema definition language through the use of custom attributes and elements that are not a part of that schema definition language.

association: A named independent relationship between two entity type definitions. Associations in the Entity Data Model (EDM) are first-class concepts and are always bidirectional. Indeed, the first-class nature of associations helps distinguish the EDM from the relational model. Every association includes exactly two association ends.

Atom Publishing Protocol (AtomPub): An application-level protocol for publishing and editing web resources, as described in [RFC5023].

AtomPub collection: A set of resources that can be retrieved in whole or in part.

binary large object (BLOB): A collection of binary data stored as a single entity in a database.

bind: To associate two EntityType [MC-CSDL] instances. An EntityType instance in a data service (described by using Entity Data Model (EDM) constructs) can be related to one or more other conceptual schema definition language (CSDL) instances. This relationship is represented by using an association in an EDM. The cardinality of a relationship can be determined by inspecting the EDM that describes the data service. The act of associating two EntityType instances is known as "binding" and of disassociating two instances is known as "unbinding". If two EntityType instances are already associated, they are considered to be "bound".

cardinality: The measure of the number of elements in a set.

change set: A logical group of one or more insert, update, delete, or invoke request types that can be created by using the HTTP PUT, POST, PATCH, or DELETE method. All requests within a change set have to be successfully processed. If any request in the change set fails, none of the requests within the change set is to be processed.

collection: A grouping of one or more EDM types that are type compatible.

conceptual schema definition language (CSDL): A language that is based on XML and that can be used to define conceptual models that are based on the Entity Data Model (EDM).

conceptual schema definition language (CSDL) document: A document that contains a conceptual model that is described by using the CSDL code.

create retrieve update delete (CRUD): The four basic functions of persistent storage. The "C" stands for create, the "R" for retrieve, the "U" for update, and the "D" for delete. CRUD is used to denote these conceptual actions and does not imply the associated meaning in a particular technology area (such as in databases, file systems, and so on) unless that associated meaning is explicitly stated.

customizable feed: A property mapping that is used to define a mapping from the properties of an EntityType to elements or attributes in any namespace (including the Atom namespace) in an AtomPub document. When a property is mapped to an element or an attribute of an element, the value for the property is equal to the value of the specified element or attribute in the AtomPub document.

data service: A server-side application that implements the OData protocol for the purpose of enabling clients to publish and edit resources. The resources exposed by data services are described by using the EDM, as specified in [MC-CSDL].

declared property: A property that is statically declared by a Property element as part of the definition of a structural type. For example, in the context of an EntityType, a declared property includes all properties of an EntityType that are represented by the Property child elements of the EntityType element that defines the EntityType.

default EntityContainer: A single EntityContainer within a CSDL document, as specified in [MC-CSDL]. Entities in the default container can be identified in a data service URI without specifying the container name.

dynamic property: A designation for an instance of an OpenEntityType that includes additional nullable properties (of a scalar type or ComplexType) beyond its declared properties. The set of additional properties, and the type of each, can vary between instances of the same OpenEntityType. Such additional properties are referred to as dynamic properties and do not have a representation in a CSDL document.

entity: An instance of an EntityType element that has a unique identity and an independent existence. An entity is an operational unit of consistency.

Entity Data Model (EDM): A set of concepts that describes the structure of data, regardless of its stored form.

Entity Data Model Extensions (EDMX): An XML-based file format that serves as the packaging format for the service metadata of a data service, as specified in [MC-EDMX].

facet: An element that provides information that specializes the usage of a type. For example, the precision (that is, accuracy) facet can be used to define the precision of a DateTime property.

Internationalized Resource Identifier (IRI): A resource identifier that conforms to the rules for Internationalized Resource Identifiers, as defined in [RFC3987].

JavaScript Object Notation (JSON): A text-based, data interchange format that is used to transmit structured data, typically in Asynchronous JavaScript + XML (AJAX) web applications, as described in [RFC7159]. The JSON format is based on the structure of ECMAScript (Jscript, JavaScript) objects.

link: A link is similar to an association, as specified in [MC-CSDL], but describes a unidirectional relationship between entity types instead of a bidirectional one. A link can be either a unidirectional relationship that occurs when two entity types are related via an association and only one of the entity types defines a NavigationProperty that is bound to the association or a reference to one direction of a bidirectional association between two entity types, as specified in [MC-CSDL].

namespace: A name that is defined on the schema and that is subsequently used to prefix identifiers to form the namespace qualified name of a structural type.

primitive property: A property of type EDMSimpleType [MC-CSDL] that is defined on an EntityType.

property: An EntityType or ComplexType can have one or more properties of the specified EDMSimpleType or ComplexType. A property of an EntityType can be a declared property or a dynamic property, as specified in [MC-CSDL]. A property of ComplexType can only be a declared property.

query operation: A logical construct that has to consist of a single retrieve request type or an invoke request that uses the HTTP GET method.

resource: A network-accessible data object or service that is identified by an IRI, as defined in [RFC2616].

resource path: The path of a data service URI, starting immediately after the service root and continuing to the end of the URI's path.

schema: A container that defines a namespace that describes the scope of EDM types. All EDM types are contained within some namespace.

service operation: An operation that is exposed by the data service. A service operation is represented as a FunctionImport, as specified in [MC-CSDL]. A service operation accepts only input parameters.

service root: A URI that represents the root of a data service.

Uniform Resource Identifier (URI): A string that identifies a resource. The URI is an addressing mechanism defined in Internet Engineering Task Force (IETF) Uniform Resource Identifier (URI): Generic Syntax [RFC3986].

XML namespace: A collection of names that is used to identify elements, types, and attributes in XML documents identified in a URI reference [RFC3986]. A combination of XML namespace and local name allows XML documents to use elements, types, and attributes that have the same names but come from different sources. For more information, see [XMLNS-2ED].

MAY, SHOULD, MUST, SHOULD NOT, MUST NOT: These terms (in all caps) are used as defined in [RFC2119]. All statements of optional behavior use either MAY, SHOULD, or SHOULD NOT.