The `$metadata` address answers the data model of the database: which entity sets it offers, which columns each of them has and what type those columns are. It is the request a client makes first, because the names in every other request come from it. ## Request ```text GET .../odata4/$metadata ``` ## Answer The answer is an EDMX document. One entity type and one entity set per table, abbreviated here to two columns: ```xml <edmx:Edmx Version="4.0" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx"> <edmx:DataServices> <Schema Namespace="Invantive" xmlns="http://docs.oasis-open.org/odata/ns/edm"> <EntityType Name="ExactOnlineREST.Financial.GLAccountsBulk@eol"> <Key> <PropertyRef Name="ID" /> </Key> <Property Name="ID" Type="Edm.Guid" Nullable="false" /> <Property Name="Code" Type="Edm.String" /> </EntityType> <EntityContainer Name="Default"> <EntitySet Name="ExactOnlineREST.Financial.GLAccountsBulk@eol" EntityType="Invantive.ExactOnlineREST.Financial.GLAccountsBulk@eol" /> </EntityContainer> </Schema> </edmx:DataServices> </edmx:Edmx> ``` ## Why the Names Are Read Rather Than Composed A table name of Invantive UniversalSQL has three parts and an alias, as in `ExactOnlineREST.Financial.GLAccountsBulk@eol`. The OData standard allows only letters, digits and underscores in a name, so a service may be configured to leave the full stop and the at sign out, which gives a different spelling for the same table. A client therefore takes the entity set name from `$metadata` and uses it unchanged, instead of building it from the table name. That also keeps it right when a database gains or loses a data container. ## What the Data Model Does Not Hold Two absences are worth knowing: - there are no navigation properties, so tables are not linked to one another and `$expand` has nothing to expand. A report combines tables itself, on the columns which hold the keys; - a table is offered with at most 1,000 columns. A wider table has the remainder absent here and in every answer. ## Related Metadata The tables of a database are one kind of metadata. The user and the databases an account may reach are answered by two addresses of their own, described in [[Invantive Bridge Online/Metadata|Metadata]].