Metadata Examples

If you want to process both standardized and non-standardized metadata elements, you can iterate over metadata elements without checking an element's standard key – both standardized and non-standardized metadata can be handled in the same way. However, standardization provides a way to handle common types of metadata - using the same code for all file formats. Below is an illustrative example.

Copy
// Open a document
using (Document myDocument = session.Open(inputFilePath))
using (Metadata metadata = myDocument.Metadata())
{
    // Iterate over metadata fields
    foreach (MetadataElement element in metadata) using (element)
    {
        // Skip non-standardized fields
        if (element.StandardKey == MetadataKey.Other)
        {
            continue;
        }

        // Do something specific with the standardized Word Count field
        if (element.StandardKey == MetadataKey.WordCount)
        {
            // Do something with the word count
        }

        // General processing for all standard fields 
    }
}

The following example demonstrates how to take advantage of field standardization, but also avoid processing a metadata field more than once.

Copy
using (Metadata metadata = myDocument.Metadata())
{
    // Iterate over metadata fields
    foreach (MetadataElement element in metadata) using (element)
    {
        // Process standardized elements where possible but also process
        // non-standard elements that have no standardized alternative.
        // Ignore duplicate elements output by KeyView for backwards compatibility.
        
        if (!element.HasStandardAlternative && !element.IsSuperseded)
        {
            // process element
        }
    }
}