Metadata schema [VC 21.3 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