Vidispine
Metadata schema [VC 21.3.1 GEN]
A metadata schema can be used to enforce a particular data model in the metadata. A such restriction can say that the field group “goal” should contain exactly one field “goal_time” and one or more references to the group “player”.
See Defining a metadata schema and Alternate way of creating a schema for an example on how to create a metadata schema.
Managing the metadata schema
Retrieve the schema
-
GET
/metadata-schema
Retrieves the full metadata schema.
Produces: -
application/xml, application/json – MetadataSchemaDocument
Role: _metadata_schema_read
-
Example
GET /metadata-schema
<MetadataSchemaDocument xmlns="http://xml.vidispine.com/schema/vidispine"> <group min="0" max="-1" name="organization"> <group reference="false" min="1" max="-1" name="employee"/> <group reference="false" min="0" max="-1" name="project"/> <field reference="false" min="1" max="1" name="example_name"/> </group> <group min="0" max="0" name="project"> <group reference="true" min="1" max="-1" name="employee"/> <field reference="false" min="1" max="1" name="example_name"/> <field reference="false" min="1" max="1" name="example_location"/> </group> <group min="0" max="0" name="employee"> <field reference="false" min="1" max="1" name="example_name"/> <field reference="false" min="0" max="1" name="example_title"/> </group> </MetadataSchemaDocument>
Update the schema
-
PUT
/metadata-schema
Updates the schema with the given document.
Accepts: -
application/xml, application/json – MetadataSchemaDocument
Role: _metadata_schema_write
-
Example
PUT /metadata-schema Content-Type: application/xml <MetadataSchemaDocument xmlns="http://xml.vidispine.com/schema/vidispine"> <!-- The organization is optional and can exist [0,n] outside of groups --> <group name="organization" min="0" max="-1"> <!-- An organization has one or more employees --> <group name="employee" min="1" max="-1" reference="false"/> <!-- An organization has one or more projects --> <group name="project" min="0" max="-1" reference="false"/> <!-- An organization has exactly one name --> <field name="example_name" min="1" max="1" reference="false"/> </group> <!-- A project cannot exist outside of a group --> <group name="project" min="0" max="0"> <!-- A project has at least one employee, which has to be referenced --> <group name="employee" min="1" max="-1" reference="true"/> <!-- A project has exactly one name --> <field name="example_name" min="1" max="1" reference="false"/> <!-- A project has exactly one location element (it still can have more than one value) --> <field name="example_location" min="1" max="1" reference="false"/> </group> <!-- An employee cannot exist outside of a group --> <group name="employee" min="0" max="0"> <!-- An employee has exactly one name --> <field name="example_name" min="1" max="1" reference="false"/> <!-- An employee might have a title --> <field name="example_title" min="0" max="1" reference="false"/> </group> </MetadataSchemaDocument>
Delete the schema
-
DELETE
/metadata-schema
Clears the schema, causing no validation to be made.
Role: _metadata_schema_write
Example
DELETE /metadata-schema
200 OK
Groups in the schema
Retrieve a group from the schema
-
GET
/metadata-schema/
(group-name) Retrieves the schema for a particular group.
Produces: -
application/xml, application/json – MetadataSchemaGroupDocument
Role: _metadata_schema_read
-
Example
GET /metadata-schema/project
<MetadataSchemaGroupDocument xmlns="http://xml.vidispine.com/schema/vidispine" min="0" max="0" name="project"> <group reference="true" min="1" max="-1" name="employee"/> <field reference="false" min="1" max="1" name="example_name"/> <field reference="false" min="1" max="1" name="example_location"/> </MetadataSchemaGroupDocument>
Update a group in the schema
-
PUT
/metadata-schema/
(group-name) Updates the specified group in the schema
Accepts: -
application/xml, application/json – MetadataSchemaGroupDocument
Role: _metadata_schema_write
-
Example
PUT /metadata-schema/employee
200 OK
Remove a group from the schema
-
DELETE
/metadata-schema/
(group-name) Removes the group from the schema.
Role: _metadata_schema_write
Example
DELETE /metadata-schema/employee
200 OK