Metadata schema¶
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 
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 
Remove a group from the schema¶
- 
DELETE/metadata-schema/(group-name)¶
- Removes the group from the schema. - Role: - _metadata_schema_write