About
This article explains how to create and structure an XML file for bulk updating entries using Kaltura’s MRSS-based XML format. It includes annotated examples and key rules to ensure successful ingestion.
You can use XML files to:
- Update existing entries in bulk
- Modify metadata, categories, and other fields
- Work with custom metadata profiles
To learn more about XML ingestion, see What is bulk upload and FTP content ingestion? and What is KML bulk upload?
Example XML file with comments
<?xml version="1.0"?> <!--the row above and this part below should not change--> <mrss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ingestion.xsd"> <channel> <item> <action>update</action> <!--here you determine the entry ID you want to update--> <entryId>0_bukomjmo</entryId> <!--name and description are textual values with little to none limitations (maybe just the length)--> <name>TEST</name> <description>TEST</description> <!--only in the category part, write the categories by their accurate names. to show categories hierarchy, start with the highest one and put the > sign between them with no spaces. you can add or remove as much <category>XXX</category> fields as you wish. If the categories do not exist, like in the second example, they will be created--> <categories> <category>Events>2014</category> <category>Events>TEST</category> </categories> <!--these fields below should also not change, unless you want to set a different custom metadataProfileId--> <customDataItems> <customData metadataProfileId="906921"> <xmlData> <metadata> <!-- these are textual fields, but note that in your metadata profile the 'event' and 'page' values are limited to one character--> <Event>1</Event> <Page>1</Page> <!-- 'rider' and 'horse' are unlimited textual files--> <Rider>TEST</Rider> <Horse>TEST</Horse> <!--'Disciplines' is a field the is chosen from a list of values, meaning that if you will not choose a value from the list the file will fail completely--> <Disciplines>Arabian</Disciplines> <!--this part below should also not change--> </metadata> </xmlData> </customData> </customDataItems> </item> </channel> </mrss>
Example XML file without the "event " field
The following is an example of an XML file without the 'Event' field. The fields that are necessary are the action and entryId.
<!-- the row above and this part below should not change --> <mrss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ingestion.xsd"> <channel> <item> <action>update</action> <!-- here you determine the entry ID you want to update --> <entryId>0_bukomjmo</entryId> <!-- name and description are textual values with little to none limitations (maybe just the length) --> <name>TEST</name> <description>TEST</description> <!-- only in the category part, write the categories by their accurate names. to show categories hierarchy, start with the highest one and put the > sign between them with no spaces. you can add or remove as much <category>XXX</category> fields as you wish. If the categories do not exist, like in the second example, they will be created --> <categories> <category>Events>2014</category> <category>Events>TEST</category> </categories> <!-- these fields below should also not change, unless you want to set a different custom metadataProfileId --> <customDataItems> <customData metadataProfileId="906921"> <xmlData> <metadata> <!-- these are textual fields, but note that in your metadata profile the 'event' and 'page' values are limited to one character --> <Page>1</Page> <!-- 'rider' and 'horse' are unlimited textual files --> <Rider>TEST</Rider> <Horse>TEST</Horse> <!-- 'Disciplines' is a field the is chosen from a list of values, meaning that if you will not choose a value from the list the file will fail completely --> <Disciplines>Arabian</Disciplines> <!-- this part below should also not change --> </metadata> </xmlData> </customData> </customDataItems> </item> </channel> </mrss>
Important: Include all metadata fields when updating
When updating metadata, your XML file must include all existing custom metadata fields, not just the ones you want to change. Otherwise, omitted fields may be cleared or overwritten.
Example:
- test1
- test2
- test3
- {blank}
If you want to update field #4, your XML must include all the previous fields:
<xmlData>
<metadata>
<1>test1</1>
<2>test2</2>
<3>test3</3>
<4>new content</4>
</metadata>
</xmlData>
To remove all custom metadata from an entry, delete all content between <customDataItems> and </customDataItems>.