XmpPackage

XmpPackage class

Represents base abstraction for XMP package.

public class XmpPackage : XmpMetadataContainer

Constructors

Name Description
XmpPackage(string, string) Initializes a new instance of the XmpPackage class.

Properties

Name Description
Count { get; } Gets the number of metadata properties.
Item { get; } Gets the MetadataProperty with the specified name.
Keys { get; } Gets a collection of the metadata property names.
MetadataType { get; } Gets the metadata type.
NamespaceUri { get; } Gets the namespace URI.
Prefix { get; } Gets the xmlns prefix.
PropertyDescriptors { get; } Gets a collection of descriptors that contain information about properties accessible through the GroupDocs.Metadata search engine.
XmlNamespace { get; } Gets the XML namespace.

Methods

Name Description
virtual AddProperties(Func<MetadataProperty, bool>, PropertyValue) Adds known metadata properties satisfying the specified predicate. The operation is recursive so it affects all nested packages as well.
Clear() Removes all XMP properties.
Contains(string) Determines whether the package contains a metadata property with the specified name.
virtual FindProperties(Func<MetadataProperty, bool>) Finds the metadata properties satisfying the specified predicate. The search is recursive so it affects all nested packages as well.
GetEnumerator() Returns an enumerator that iterates through the collection.
override GetXmpRepresentation() Converts the XMP value to the XML representation.
Remove(string) Removes the property with the specified name.
virtual RemoveProperties(Func<MetadataProperty, bool>) Removes metadata properties satisfying the specified predicate.
virtual Sanitize() Removes writable metadata properties from the package. The operation is recursive so it affects all nested packages as well.
Set(string, bool) Sets boolean property.
Set(string, DateTime) Sets DateTime property.
Set(string, double) Sets double property.
Set(string, int) Sets integer property.
virtual Set(string, string) Sets string property.
virtual Set(string, XmpArray) Sets the value inherited from XmpArray .
virtual Set(string, XmpComplexType) Sets the value inherited from XmpComplexType .
Set(string, XmpValueBase) Sets the value inherited from XmpValueBase .
virtual SetProperties(Func<MetadataProperty, bool>, PropertyValue) Sets known metadata properties satisfying the specified predicate. The operation is recursive so it affects all nested packages as well. This method is a combination of AddProperties and UpdateProperties. If an existing property satisfies the predicate its value is updated. If there is a known property missing in the package that satisfies the predicate it is added to the package.
virtual UpdateProperties(Func<MetadataProperty, bool>, PropertyValue) Updates known metadata properties satisfying the specified predicate. The operation is recursive so it affects all nested packages as well.

Remarks

Learn more

Examples

This example demonstrates how to add a custom XMP package to a file of any supported format.

using (Metadata metadata = new Metadata(Constants.InputJpeg))
{
    IXmp root = metadata.GetRootPackage() as IXmp;
    if (root != null)
    {
        var packet = new XmpPacketWrapper();

        var custom = new XmpPackage("gd", "https://groupdocs.com");
        custom.Set("gd:Copyright", "Copyright (C) 2011-2024 GroupDocs. All Rights Reserved.");
        custom.Set("gd:CreationDate", DateTime.Today);
        custom.Set("gd:Company", XmpArray.From(new [] { "Aspose", "GroupDocs" }, XmpArrayType.Ordered));

        packet.AddPackage(custom);
        root.XmpPackage = packet;

        metadata.Save(Constants.OutputJpeg);
    }
}

See Also