---
title: "XmpData Class"
canonical: https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Codecs_XmpData.htm
product: "Graphics Mill 5.5 for .NET"
---

This documentation is for the old version. [Go to the latest Graphics Mill docs](https://www.graphicsmill.com/docs/gm/)

# XmpData Class
 
This class represents an XMP tree.
 
**Namespace:** [Aurigma.GraphicsMill.Codecs](https://www.graphicsmill.com/docs/gm5/N_Aurigma_GraphicsMill_Codecs.htm.md)
 **Assembly:** Aurigma.GraphicsMill (in Aurigma.GraphicsMill.dll)
 
## Syntax
  
```
<DefaultMemberAttribute("Item")> _
Public NotInheritable Class XmpData _Inherits LockableObject _Implements IXmpDictionary
```
 
```csharp
[DefaultMemberAttribute("Item")]
public sealed class XmpData : LockableObject, IXmpDictionary
```
 
## Remarks
  
This class can be used for two purposes:
 
1. Parse XMP data and extract the specific fields values (nodes).
2. Build or modify existing XMP tree by adding/removing/editing nodes.

XMP is an XML-based tree-like format of metadata storage. This class allows to load XML containing XMP data (with a constructor or the [Load(String)](https://www.graphicsmill.com/docs/gm5/M_Aurigma_GraphicsMill_Codecs_XmpData_Load_1_bb3a7a4f.htm.md) method). After the XMP string is loaded, a hierarchical set of nodes is formed. You can iterate each node in the [Values](https://www.graphicsmill.com/docs/gm5/P_Aurigma_GraphicsMill_Codecs_XmpData_Values.htm.md) collection and drill down into its children to get information about some specific node.
 
To add nodes to this tree, use the [AddNode(XmpNode)](https://www.graphicsmill.com/docs/gm5/M_Aurigma_GraphicsMill_Codecs_XmpData_AddNode_1_79cf5b78.htm.md) method. Any object that is a descendant of the [XmpNode](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Codecs_XmpNode.htm.md) class can be added to the tree. Items are removed with the [Remove(Object)](https://www.graphicsmill.com/docs/gm5/M_Aurigma_GraphicsMill_Codecs_XmpDictionaryNode_Remove_1_d02429b3.htm.md) method. After you build a tree of XMP fields, you can get it as an XML string which can be passed to any writer object that supports XMP data (JPEG, TIFF).
 
## Inheritance Hierarchy
  
- [System.Object](http://msdn2.microsoft.com/en-us/e5kfa45b)
    - [Aurigma.GraphicsMill.LockableObject](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_LockableObject.htm.md)
        - Aurigma.GraphicsMill.Codecs.XmpData
 
## Thread Safety
 Static members of this type are safe for multi-threaded operations. Instance members of this type are safe for multi-threaded operations.
 
## Object Model

[![](https://www.graphicsmill.com/docs/gm5/Aurigma.GraphicsMill_ObjectModel_270.png)](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Codecs_XmpData.htm.md)
![](https://www.graphicsmill.com/docs/gm5/ObjectModel2.png)![](https://www.graphicsmill.com/docs/gm5/Aurigma.GraphicsMill_ObjectModel_64.png)
![](https://www.graphicsmill.com/docs/gm5/ObjectModel1.png)[![](https://www.graphicsmill.com/docs/gm5/Aurigma.GraphicsMill_ObjectModel_65.png)](https://www.graphicsmill.com/docs/gm5/T_Aurigma_GraphicsMill_Codecs_XmpNamespace.htm.md)
  
## See Also

### Reference

- [XmpData Members](https://www.graphicsmill.com/docs/gm5/AllMembers_T_Aurigma_GraphicsMill_Codecs_XmpData.htm.md)
- [Aurigma.GraphicsMill.Codecs Namespace](https://www.graphicsmill.com/docs/gm5/N_Aurigma_GraphicsMill_Codecs.htm.md)
