OASIS OData TC - Vocabularies

Core Vocabulary

Namespace: Org.OData.Core.V1

Core terms needed to write vocabularies

Terms

Term Type Description
ODataVersions String A space-separated list of supported versions of the OData Protocol. Note that 4.0 is implied by 4.01 and does not need to be separately listed.
SchemaVersion String Service-defined value representing the version of the schema. Services MAY use semantic versioning, but clients MUST NOT assume this is the case.
Revisions [RevisionType] List of revisions of a model element
Description String? A brief description of a model element
LongDescription String? A long description of a model element
Links [Link] Link to related information
Example ExampleValue Example for an instance of the annotated model element (Example)
Messages [MessageType] Instance annotation for warning and info messages
ValueException ValueExceptionType The annotated value is problematic
ResourceException ResourceExceptionType The annotated instance within a success payload is problematic
DataModificationException DataModificationExceptionType A modification operation failed on the annotated instance or collection within a success payload
IsLanguageDependent Tag Properties and terms annotated with this term are language-dependent
RequiresType String Terms annotated with this term can only be applied to elements that have a type that is identical to or derived from the given type name
AppliesViaContainer Tag The target path of an annotation with the tagged term MUST start with an entity container or the annotation MUST be embedded within an entity container, entity set or singleton
Services MAY additionally annotate a container-independent model element (entity type, property, navigation property) if allowed by the AppliesTo property of the term and the annotation applies to all uses of that model element.
ResourcePath URL Resource path for entity container child, can be relative to xml:base and the request URL
DereferenceableIDs Tag Entity-ids are URLs that locate the identified entity
ConventionalIDs Tag Entity-ids follow OData URL conventions
Permissions Permission Permissions for accessing a resource
ContentID String A unique identifier for nested entities within a request.
DefaultNamespace Tag Functions, actions and types in this namespace can be referenced in URLs with or without namespace- or alias- qualification.
Data Modelers should ensure uniqueness of schema children across all default namespaces, and should avoid naming bound functions, actions, or derived types with the same name as a structural or navigational property of the type.
Immutable Tag A value for this non-key property can be provided by the client on insert and remains unchanged on update
Computed Tag A value for this property is generated on both insert and update
ComputedDefaultValue Tag A value for this property can be provided by the client on insert and update. If no value is provided on insert, a non-static default value is generated
IsURL Tag Properties and terms annotated with this term MUST contain a valid URL
AcceptableMediaTypes [MediaType] Lists the MIME types acceptable for the annotated entity type marked with HasStream="true" or the annotated binary, stream, or string property or term
The annotation of a TypeDefinition propagates to the model elements having this type
MediaType MediaType? The media type of the media stream of the annotated entity type marked with HasStream="true" or the annotated binary, stream, or string property or term
The annotation of a TypeDefinition propagates to the model elements having this type
IsMediaType Tag Properties and terms annotated with this term MUST contain a valid MIME type
ContentDisposition ContentDispositionType The content disposition of the media stream of the annotated entity type marked with HasStream="true" or the annotated binary, stream, or string property or term
OptimisticConcurrency [PropertyPath] Data modification requires the use of ETags. A non-empty collection contains the set of properties that are used to compute the ETag. An empty collection means that the service won't tell how it computes the ETag
AdditionalProperties Tag Instances of this type may contain properties in addition to those declared in $metadata
If specified as false clients can assume that instances will not contain dynamic properties, irrespective of the value of the OpenType attribute.
AutoExpand Tag The service will automatically expand this stream property, navigation property, or the media stream of this media entity type even if not requested with $expand
AutoExpandReferences Tag The service will automatically expand this navigation property as entity references even if not requested with \(expand=.../\)ref
MayImplement [QualifiedTypeName] A collection of qualified type names outside of the type hierarchy that instances of this type might be addressable as by using a type-cast segment.
Ordered Tag Collection has a stable order. Ordered collections of primitive or complex types can be indexed by ordinal.
PositionalInsert Tag Items can be inserted at a given ordinal index.
AlternateKeys [AlternateKey] Communicates available alternate keys
OptionalParameter OptionalParameterType Supplying a value for the action or function parameter is optional.
All parameters marked as optional must come after any parameters not marked as optional. The binding parameter must not be marked as optional.
OperationAvailable Boolean? Action or function is available
The annotation value will usually be an expression, e.g. using properties of the binding parameter type for instance-dependent availability, or using properties of a singleton for global availability. The static value null means that availability cannot be determined upfront and is instead expressed as an operation advertisement.
RequiresExplicitBinding Tag? This bound action or function is only available on model elements annotated with the ExplicitOperationBindings term.
ExplicitOperationBindings [QualifiedBoundOperationName] The qualified names of explicitly bound operations that are supported on the target model element. These operations are in addition to any operations not annotated with RequiresExplicitBinding that are bound to the type of the target model element.
SymbolicName SimpleIdentifier A symbolic name for a model element
GeometryFeature GeometryFeatureType? A Feature Object represents a spatially bounded thing
AnyStructure Tag Instances of a type are annotated with this tag if they have no common structure in a given response payload
The select-list of a context URL MUST be (@Core.AnyStructure) if it would otherwise be empty, but this instance annotation SHOULD be omitted from the response value.

RevisionType

Property Type Description
Version String? The schema version with which this revision was first published
Kind RevisionKind The kind of revision
Description String Text describing the reason for the revision

RevisionKind

Member Value Description
Added 0 Model element was added
Modified 1 Model element was modified
Deprecated 2 Model element was deprecated

The Link term is inspired by the atom:link element, see RFC4287, and the Link HTTP header, see RFC5988

Property Type Description
rel String Link relation type, see IANA Link Relations
href URL URL of related information

ExampleValue

Derived Types:

Property Type Description
Description String? Description of the example value

PrimitiveExampleValue: ExampleValue

Property Type Description
Description String? Description of the example value
Value PrimitiveType Example value for the custom parameter

ComplexExampleValue: ExampleValue

Property Type Description
Description String? Description of the example value
Value ComplexType Example value for the custom parameter

EntityExampleValue: ExampleValue

Property Type Description
Description String? Description of the example value
Value EntityType Example value for the custom parameter

ExternalExampleValue: ExampleValue

Property Type Description
Description String? Description of the example value
ExternalValue URL Url reference to the value in its literal format

MessageType

Property Type Description
code String Machine-readable, language-independent message code
message String Human-readable, language-dependent message text
severity MessageSeverity Severity of the message
target String? A path to the target of the message detail, relative to the annotated instance
details [MessageType] List of detail messages

MessageSeverity

Type: String

Allowed Value Description
success Positive feedback - no action required
info Additional information - no action required
warning Warning - action may be required
error Error - action is required

ExceptionType

Derived Types:

Property Type Description
info MessageType? Information about the exception

ValueExceptionType: ExceptionType

Property Type Description
info MessageType? Information about the exception
value String? String representation of the exact value

ResourceExceptionType: ExceptionType

Property Type Description
info MessageType? Information about the exception
retryLink URL? A GET request to this URL retries retrieving the problematic instance

DataModificationExceptionType: ExceptionType

Property Type Description
info MessageType? Information about the exception
failedOperation DataModificationOperationKind The kind of modification operation that failed
responseCode Int16? Response code of the failed operation, e.g. 424 for a failed dependency

DataModificationOperationKind

Member Value Description
insert 0 Insert new instance
update 1 Update existing instance
upsert 2 Insert new instance or update it if it already exists
delete 3 Delete existing instance
invoke 4 Invoke action or function
link 5 Add link between entities
unlink 6 Remove link between entities

Tag

Type: Boolean

This is the type to use for all tagging terms

Permission

Flag Member Value Description
None 0 No permissions
Read 1 Read permission
Write 2 Write permission
ReadWrite 3 Read and write permission
Invoke 4 Permission to invoke actions

ContentDispositionType

Property Type Description
Type String The disposition type of the binary or stream value, see RFC 6266, Disposition Type
Filename String? The proposed filename for downloading the binary or stream value, see RFC 6266, Disposition Parameter: 'Filename'

QualifiedTermName

Type: String

The qualified name of a term in scope.

QualifiedTypeName

Type: String

The qualified name of a type in scope.

QualifiedActionName

Type: String

The qualified name of an action in scope.

QualifiedBoundOperationName

Type: String

The qualified name of a bound action or function in scope.

Either

AlternateKey

Property Type Description
Key [PropertyRef] The set of properties that make up this key

PropertyRef

Property Type Description
Name PropertyPath A path expression resolving to a primitive property of the entity type itself or to a primitive property of a complex or navigation property (recursively) of the entity type. The names of the properties in the path are joined together by forward slashes.
Alias String A SimpleIdentifier that MUST be unique within the set of aliases, structural and navigation properties of the containing entity type that MUST be used in the key predicate of URLs

Dictionary

A dictionary of name-value pairs. Names must be valid property names, values may be restricted to a list of types via an annotation with term Validation.OpenPropertyTypeConstraint.

Property Type
Any simple identifier Any type listed in Validation.OpenPropertyTypeConstraint, or any type if there is no constraint

OptionalParameterType

Property Type Description
DefaultValue String? Default value for an optional parameter of primitive or enumeration type, using the same rules as the cast function in URLs.
If no explicit DefaultValue is specified, the service is free on how to interpret omitting the parameter from the request. For example, a service might interpret an omitted optional parameter KeyDate as having the current date.

LocalDateTime

Type: String

A string representing a Local Date-Time value with no offset.

SimpleIdentifier

Type: String

A simple identifier

GeometryFeatureType

A Feature Object represents a spatially bounded thing

Property Type Description
geometry Geometry? Location of the Feature
properties Dictionary? Properties of the Feature
id String? Commonly used identifer for a Feature