InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IMetaDataAccess Class Referenceabstract

#include <IMetaDataAccess.h>

Inheritance diagram for IMetaDataAccess:
IPMUnknown

Public Types

enum  { kDefaultIID = IID_IMETADATAACCESS }
 
enum  IteratorOptions { kIterJustChildren = 0x0100UL, kIterJustLeafNodes = 0x0200UL, kIterJustLeafName = 0x0400UL, kIterOmitQualifiers = 0x0800UL }
 
enum  SkipOptions { kIterSkipSubtree = 0x0001UL, kIterSkipSiblings = 0x0002UL }
 

Public Member Functions

virtual void Package (const bool16 &package=kTrue)=0
 
virtual bool16 IsPackaged () const =0
 
virtual void AllowInPlaceModification (const bool16 &inPlaceModification=kTrue)=0
 
virtual bool16 CanModifyInPlace () const =0
 
virtual void Expandable (const bool16 &expandable=kTrue)=0
 
virtual bool16 IsExpandable () const =0
 
virtual bool16 LoadFromStream (IPMStream *stream, int32 numOfBytes=-1)=0
 
virtual bool16 SaveToStream (IPMStream *stream, const bool16 &package=kTrue, const bool16 &allowInPlaceModification=kTrue, const bool16 &expandable=kTrue, const bool16 &packetDisabled=kFalse) const =0
 
virtual bool16 AppendFromStream (IPMStream *stream, const bool16 replaceOld, const bool16 treatAllAsExternal=kFalse)=0
 
virtual IMetaDataIteratorEnumerate (const PMString &ns, const PMString &subPath, const IMetaDataAccess::IteratorOptions &options=IMetaDataAccess::kIterJustChildren) const =0
 
virtual IMetaDataIteratorEnumerate () const =0
 
virtual bool16 Get (const PMString &ns, const PMString &path, PMString &value, metadata::PropertyOptions *options=0) const =0
 
virtual void Set (const PMString &ns, const PMString &path, const PMString &value, const metadata::PropertyOptions options=metadata::kNoOptions)=0
 
virtual void Remove (const PMString &ns, const PMString &path)=0
 
virtual size_t Count (const PMString &ns, const PMString &path) const =0
 
virtual bool16 PropertyExists (const PMString &ns, const PMString &path) const =0
 
virtual void AppendArrayItem (const PMString &ns, const PMString &arrayName, const PMString &value, const MetaDataStructContainerType type, const metadata::PropertyOptions options=metadata::kNoOptions)=0
 
virtual void SetArrayItem (const PMString &ns, const PMString &arrayName, int32 index, const PMString &value, const metadata::PropertyOptions options=metadata::kNoOptions)=0
 
virtual bool16 GetArrayItem (const PMString &ns, const PMString &arrayName, int32 index, PMString &value, metadata::PropertyOptions *options=0) const =0
 
virtual void DeleteArrayItem (const PMString &ns, const PMString &arrayName, int32 index)=0
 
virtual void SetStructField (const PMString &ns, const PMString &structName, const PMString &fieldNs, const PMString &fieldName, const PMString &value, const metadata::PropertyOptions options=metadata::kNoOptions)=0
 
virtual bool16 GetStructField (const PMString &ns, const PMString &structName, const PMString &fieldNs, const PMString &fieldName, PMString &value, const metadata::PropertyOptions *options=0) const =0
 
virtual void DeleteStructField (const PMString &ns, const PMString &structName, const PMString &fieldNs, const PMString &fieldName)=0
 
virtual void SetLocalizedText (const PMString &ns, const PMString &arrayName, const PMString &genericLang, const PMString &specificLang, const PMString &value, const metadata::PropertyOptions options=metadata::kNoOptions)=0
 
virtual bool16 GetLocalizedText (const PMString &ns, const PMString &arrayName, const PMString &genericLang, const PMString &specificLang, PMString &actualLang, PMString &value, const metadata::PropertyOptions *options=0) const =0
 
virtual void ComposeArrayItemPath (const PMString &schemaNs, const PMString &arrayName, int32 index, PMString &path) const =0
 
virtual void ComposeStructFieldPath (const PMString &schemaNs, const PMString &structName, const PMString &fieldNs, const PMString &fieldName, PMString &path) const =0
 
virtual void ComposeLangSelector (const PMString &schemaNs, const PMString &arrayName, const PMString &langName, PMString &path) const =0
 
virtual void SetBoolean (const PMString &ns, const PMString &path, const bool16 &value)=0
 
virtual bool16 GetBoolean (const PMString &ns, const PMString &path, bool16 &value) const =0
 
virtual void SetDateTime (const PMString &ns, const PMString &path, const XMP_DateTime &value)=0
 
virtual bool16 GetDateTime (const PMString &ns, const PMString &path, XMP_DateTime &value) const =0
 
virtual void SetResourceRef (const PMString &ns, const PMString &path, const metadata::ResourceRef &resource)=0
 
virtual bool16 GetResourceRef (const PMString &ns, const PMString &path, metadata::ResourceRef &resource) const =0
 
virtual void SetInstanceID (const PMString &instanceID)=0
 
virtual PMString GetInstanceID () const =0
 
virtual PMString GenerateUniqueID () const =0
 
virtual bool16 RegisterNamespace (const PMString &ns, const PMString &suggestedPrefix, PMString &registeredPrefix)=0
 
virtual bool16 GetNamespacePrefix (const PMString &ns, PMString &prefix) const =0
 
virtual bool16 GetNamespace (const PMString &prefix, PMString &ns) const =0
 
virtual void DeleteNamespace (const PMString &ns)=0
 
virtual void ClearAllProperties ()=0
 
virtual bool16 DuplicateSubtree (PMString const &srcNS, PMString const &srcPath, PMString const &destNS, PMString const &destPath)=0
 
virtual void NewXMP ()=0
 
virtual void PrepareForSave (bool16 bIncludePantry=kFalse)=0
 
virtual void NoteChange (PMString const &changeStr)=0
 
virtual void NoteMetaDataChanged ()=0
 
virtual void OpenXMP ()=0
 
virtual void BranchXMP ()=0
 
virtual bool16 XMPDocOpsReady ()=0
 
virtual void AddIngredientXMP (std::string *filepath, const PMString &in_toPart, const PMString &in_fromPart, const PMString &in_linkForm, const PMString &in_linkCategory, const PMString &in_filePath, const PMString &in_alternatePaths, const PMString &in_fileModTime, const PMString &in_placedXResolution, const PMString &in_placedYResolution, const PMString &in_placedResolutionUnit)=0
 
virtual void RemoveIngredientXMP (int nth)=0
 
virtual void ClearIngredientsXMP ()=0
 
virtual void SetStructField (const PMString &ns, const PMString &structName, const PMString &fieldNs, const PMString &fieldName, const std::string &value, const metadata::PropertyOptions options=metadata::kNoOptions)=0
 
virtual bool16 GetStructField (const PMString &ns, const PMString &structName, const PMString &fieldNs, const PMString &fieldName, std::string &value, const metadata::PropertyOptions *options=0) const =0
 
virtual void Set (const PMString &ns, const PMString &path, const std::string &value, const metadata::PropertyOptions options=metadata::kNoOptions)=0
 
virtual bool16 Get (const PMString &ns, const PMString &path, std::string &value, metadata::PropertyOptions *options=0) const =0
 
virtual PMString GenerateDocumentID () const =0
 
- Public Member Functions inherited from IPMUnknown
virtual IPMUnknownQueryInterface (PMIID interfaceID) const =0
 
virtual void AddRef () const =0
 
virtual void Release () const =0
 

Detailed Description

This interface is a low level API that encapsulates routines of the XMPToolkit.

See Also
IAdobeBasicJobMetaData
IAdobeCoreMetaData
IAdobeMediaMgmtMetaData
IAdobeRightsMgmtMetaData

Member Enumeration Documentation

Iterator options
Enumerator
kIterJustChildren 

Iterate only children

kIterJustLeafNodes 

Iterate only leaf nodes

kIterJustLeafName 

Iterate only leaf names

kIterOmitQualifiers 

Iterate omitting qualifiers

Skip options. These are used by IMetaDataIterator::Skip method

See Also
IMetaDataIterator::Skip
Enumerator
kIterSkipSubtree 

Skip the subtree below the current node

kIterSkipSiblings 

Skip the subtree below and remaining siblings of the current node.

Member Function Documentation

virtual void IMetaDataAccess::AllowInPlaceModification (const bool16 & inPlaceModification = kTrue)
pure virtual

Set the MetaData block's in place modification attribute. If in place modification is allowed it means that external software can modify the MetaData block. Next time the publication is opened we will keep changes made externally to any external property. The MetaData package mechanism will also indicate that this block can be modified in place.

Parameters
inPlaceModificationIN The in place modification attribute.
virtual void IMetaDataAccess::AppendArrayItem (const PMStringns,
const PMStringarrayName,
const PMStringvalue,
const MetaDataStructContainerType type,
const metadata::PropertyOptions options = metadata::kNoOptions 
)
pure virtual

Array item access Append a new item to an array. The array will be automatically created if it doesn't exist.

Parameters
nsIN The namespace of the array. Must not be an empty string.
arrayNameIN The name of the array.
valueIN The value of the array item.
typeIN The type of the array.
optionsIN Bit flags that describe the array item. Default to metadata::kNoOptions if the flags are not needed.
virtual bool16 IMetaDataAccess::AppendFromStream (IPMStreamstream,
const bool16 replaceOld,
const bool16 treatAllAsExternal = kFalse 
)
pure virtual

Appends external properties from the stream.

Parameters
streamIN The stream that contains the metadata (in UTF8 format) to be appended.
replaceOldIN If kFalse, a property that exists in current metadata will not be replace by the same property in the stream.
treatAllAsExternalIN Optional. If kTrue, all properties are treated as external.
Returns
kTrue if succeeded. kFalse otherwise.
virtual bool16 IMetaDataAccess::CanModifyInPlace () const
pure virtual

Query the MetaData block's in place modification attribute.

Returns
kTrue if this MetaData block allows in place modification. kFalse otherwise.
virtual void IMetaDataAccess::ClearAllProperties ()
pure virtual

Some other useful methods. Set the MetaData block back to being empty.

virtual void IMetaDataAccess::ComposeArrayItemPath (const PMStringschemaNs,
const PMStringarrayName,
int32 index,
PMStringpath 
) const
pure virtual

XPath composition utilities Compose the XPath expression for an item in an array.

Parameters
schemaNsIN The namespace of the stream. Must not be empty.
arrayNameIN The name of the array. Must not be empty. May be a general XPath expression.
indexIN The index of the array item. Arrays in XMP are indexed from 1. Use metadata::kArrayLastItem for the last item in the array.
pathOUT The composed path. This will be of the from "arrayName/ *[i]". If index is metadata::kArrayLastItem, the path will be "arrayName/ *[last()]".
virtual void IMetaDataAccess::ComposeLangSelector (const PMStringschemaNs,
const PMStringarrayName,
const PMStringlangName,
PMStringpath 
) const
pure virtual

Compose the XPath expression for a qualifier.

Parameters
schemaNsIN The namespace of the stream. Must not be empty.
arrayNameIN The name of the array. Must not be empty. May be a general XPath expression.
langNameIN The name of the language. Must not be empty.
pathOUT The composed path. This will be of the from "arrayName/ *[@xml:lang='langName']".
virtual void IMetaDataAccess::ComposeStructFieldPath (const PMStringschemaNs,
const PMStringstructName,
const PMStringfieldNs,
const PMStringfieldName,
PMStringpath 
) const
pure virtual

Compose the XPath expression for a field in a struct.

Parameters
schemaNsIN The namespace of the stream. Must not be empty.
structNameIN The name of the struct. Must not be empty. May be a general XPath expression.
fieldNsIN The namespace of the field. May be empty.
fieldNameIN The name of the field. Must not be empty.
pathOUT The composed path. This will be of the from "structName\fNS:fieldName", where "fNS is the prefix for fieldNs.
virtual size_t IMetaDataAccess::Count (const PMStringns,
const PMStringpath 
) const
pure virtual

Get the number of items in the structured container specified by ns and path.

Parameters
nsIN The namespace of the property.
pathIN The path of the property.
Returns
Number of items in the container.
virtual void IMetaDataAccess::DeleteArrayItem (const PMStringns,
const PMStringarrayName,
int32 index 
)
pure virtual

Delete an array item.

Parameters
nsIN The namespace of the array. Must not be an empty string.
arrayNameIN The name of the array.
indexIN The index of the array item. Arrays are indexed from 1. Use metadata::kArrayLastItem for the last item in the array.
virtual void IMetaDataAccess::DeleteNamespace (const PMStringns)
pure virtual

Delete a namespace. Does nothing if the namespace is not registered.

Parameters
nsIN The URI of the namespace.
virtual void IMetaDataAccess::DeleteStructField (const PMStringns,
const PMStringstructName,
const PMStringfieldNs,
const PMStringfieldName 
)
pure virtual

Delete a field within a structure.

Parameters
nsIN The namespace of the structure. Must not be an empty string.
structNameIN The name of the structure.
fieldNsIN The namespace of the field. Maybe be an empty string.
fieldNameIN The name of the field.
virtual bool16 IMetaDataAccess::DuplicateSubtree (PMString const & srcNS,
PMString const & srcPath,
PMString const & destNS,
PMString const & destPath 
)
pure virtual

Duplicates a subtree in the metadata block.

Note: As written, this utility does not perform any merging between the source and destination subtrees. If the destination subtree exists, it will be deleted before the subtree is duplicated.

Parameters
srcNSIN The namespace for the source subtree
srcPathIN The path for the source subtree
destNSIN The namespace for the destination subtree
destPathIN The path for the destination subtree
Returns
kTrue if the subtree was successfully duplicated, else kFalse
virtual IMetaDataIterator* IMetaDataAccess::Enumerate (const PMStringns,
const PMStringsubPath,
const IMetaDataAccess::IteratorOptionsoptions = IMetaDataAccess::kIterJustChildren 
) const
pure virtual

Wrappers on the XMPToolkit library Return an IMetaDataIterator interface which must be released by the caller. IMetaDataIterator enables one to iterate all the paths in this MetaData block.

See Also
IMetaDataIterator
Parameters
nsIN The namespace to enumerate.
subPathIN Specifies the scope of the enumeration.
optionsIN The available option flags are: kXMP_IterJustChildren - Just visit the immediate children of the root, default is subtree. kXMP_IterJustLeafNodes - Just visit the leaf nodes, default visits all nodes. kXMP_IterJustLeafName - Return just the leaf part of the path, default is the full path. kXMP_IterOmitQualifiers - Omit all qualifiers.
Returns
An interface which iterates properties of the specified subPath. Must be released by the caller.
virtual IMetaDataIterator* IMetaDataAccess::Enumerate () const
pure virtual

Return an IMetaDataIterator interface which must be released by the caller. IMetaDataIterator enables one to iterate all the paths in this MetaData block.

See Also
IMetaDataIterator
Returns
An interface which iterates properties of all paths. Must be released by the caller.
virtual void IMetaDataAccess::Expandable (const bool16 & expandable = kTrue)
pure virtual

Set the MetaData block's expandable attribute. If expandable is kTrue then when the package is written out pad bytes will be included so that external entities can add MetaData properties to the packet.

Parameters
expandableIN The expandable attribute.
virtual PMString IMetaDataAccess::GenerateDocumentID () const
pure virtual

Generate a document ID.

Returns
the ID.
virtual PMString IMetaDataAccess::GenerateUniqueID () const
pure virtual

Generate a unique ID.

Returns
the ID.
virtual bool16 IMetaDataAccess::Get (const PMStringns,
const PMStringpath,
PMStringvalue,
metadata::PropertyOptionsoptions = 0 
) const
pure virtual

General property access Get the value at the property specified by ns and path.

Parameters
nsIN The namespace of the property.
pathIN The path of the property..
valueOUT The value of the property.
optionsOUT Bit flags that describe the property. Default to 0 if the flags are not wanted.
Returns
kFalse if any node along the path doesn't exist. kTrue otherwise.
virtual bool16 IMetaDataAccess::Get (const PMStringns,
const PMStringpath,
std::string & value,
metadata::PropertyOptionsoptions = 0 
) const
pure virtual

General property access Get the value at the property specified by ns and path.

Parameters
nsIN The namespace of the property.
pathIN The path of the property..
valueOUT The value of the property.
optionsOUT Bit flags that describe the property. Default to 0 if the flags are not wanted.
Returns
kFalse if any node along the path doesn't exist. kTrue otherwise.
virtual bool16 IMetaDataAccess::GetArrayItem (const PMStringns,
const PMStringarrayName,
int32 index,
PMStringvalue,
metadata::PropertyOptionsoptions = 0 
) const
pure virtual

Get the value of an array item.

Parameters
nsIN The namespace of the array. Must not be an empty string.
arrayNameIN The name of the array.
indexIN The index of the array item. Arrays are indexed from 1. Use metadata::kArrayLastItem for the last item in the array.
valueOUT The value of the array item.
optionsOUT Bit flags that describe the array item. Default to 0 if the flags are not wanted.
Returns
kFalse if the array item doesn't exist. kTrue otherwise.
virtual bool16 IMetaDataAccess::GetBoolean (const PMStringns,
const PMStringpath,
bool16 & value 
) const
pure virtual

Get the boolean value of the specified property.

Parameters
nsIN The namespace of the property.
pathIN The path of the property.
valueOUT The value of the property.
Returns
kTrue if the property is found, kFalse otherwise.
virtual bool16 IMetaDataAccess::GetDateTime (const PMStringns,
const PMStringpath,
XMP_DateTime & value 
) const
pure virtual

Get the DateTime value of the specified property.

Parameters
nsIN The namespace of the property.
pathIN The path of the property.
valueOUT The value of the property.
Returns
kTrue if the property is found, kFalse otherwise.
virtual PMString IMetaDataAccess::GetInstanceID () const
pure virtual

Get the instance ID of the document.

Returns
the instance ID.
virtual bool16 IMetaDataAccess::GetLocalizedText (const PMStringns,
const PMStringarrayName,
const PMStringgenericLang,
const PMStringspecificLang,
PMStringactualLang,
PMStringvalue,
const metadata::PropertyOptionsoptions = 0 
) const
pure virtual

Get the value of an item within an alt-text array.

Parameters
nsIN The namespace of the structure. Must not be an empty string.
arrayNameIN The name of the structure. May be a general XPath expression. Must not be empty.
genericLangIN The name of the generic language as an RFC 1766 string. May be an empty string if no generic language is wanted
specificLangIN The name of the specific language as an RFC 1766 string. Must not be empty. Maybe "x-default".
actualLangOUT The language of the selected array item, if an appropriate array item is found.
valueOUT The value of the field.
optionsOUT Bit flags that describe the property. Default to 0 if the flags are not wanted.
Returns
kFalse if any node along the path doesn't exist. kTrue otherwise.
virtual bool16 IMetaDataAccess::GetNamespace (const PMStringprefix,
PMStringns 
) const
pure virtual

Get the URI of a registered namespacename.

Parameters
prefixIN The prefix of the namespace.
nsOUT The URI of the namespace.
Returns
kTrue if the namespace is registered. kFalse otherwise.
virtual bool16 IMetaDataAccess::GetNamespacePrefix (const PMStringns,
PMStringprefix 
) const
pure virtual

Get the prefix of a registered namespacename.

Parameters
nsIN The URI of the namespace.
prefixOUT The prefix of the namespace.
Returns
kTrue if the namespace is registered. kFalse otherwise.
virtual bool16 IMetaDataAccess::GetResourceRef (const PMStringns,
const PMStringpath,
metadata::ResourceRefresource 
) const
pure virtual

Get ResourceRef specified by ns and path.

Parameters
nsIN The namespace of the property.
pathIN The path of the property..
resourceOUT The value of the property.
Returns
kFalse if any node along the path doesn't exist. kTrue otherwise.
virtual bool16 IMetaDataAccess::GetStructField (const PMStringns,
const PMStringstructName,
const PMStringfieldNs,
const PMStringfieldName,
PMStringvalue,
const metadata::PropertyOptionsoptions = 0 
) const
pure virtual

Get a field within a structure.

Parameters
nsIN The namespace of the structure. Must not be an empty string.
structNameIN The name of the structure.
fieldNsIN The namespace of the field. Maybe be an empty string.
fieldNameIN The name of the field.
valueOUT The value of the field.
optionsOUT Bit flags that describe the property. Default to 0 if the flags are not wanted.
Returns
kFalse if any node along the path doesn't exist. kTrue otherwise.
virtual bool16 IMetaDataAccess::GetStructField (const PMStringns,
const PMStringstructName,
const PMStringfieldNs,
const PMStringfieldName,
std::string & value,
const metadata::PropertyOptionsoptions = 0 
) const
pure virtual

Get a field within a structure.

Parameters
nsIN The namespace of the structure. Must not be an empty string.
structNameIN The name of the structure.
fieldNsIN The namespace of the field. Maybe be an empty string.
fieldNameIN The name of the field.
valueOUT The value of the field.
optionsOUT Bit flags that describe the property. Default to 0 if the flags are not wanted.
Returns
kFalse if any node along the path doesn't exist. kTrue otherwise.
virtual bool16 IMetaDataAccess::IsExpandable () const
pure virtual

Query the MetaData block's expandable attribute.

Returns
kTrue if this MetaData block is expandable. kFalse otherwise.
virtual bool16 IMetaDataAccess::IsPackaged () const
pure virtual

Query the MetaData block's packaged attribute.

Returns
kTrue if this MetaData block is packaged. kFalse otherwise.
virtual bool16 IMetaDataAccess::LoadFromStream (IPMStreamstream,
int32 numOfBytes = -1 
)
pure virtual

Persistance operations Load this MetaData block from the given stream.

Parameters
streamIN The stream that contains medadata (in UTF8 format).
numOfBytesIN Length of the metadata block. Pass -1 if the length is unknown.
Returns
kTrue if succeeded. kFalse otherwise.
virtual void IMetaDataAccess::Package (const bool16 & package = kTrue)
pure virtual

MetaData attributes Set the MetaData block's packaged attribute. If packaged is kTrue then whenever this MetaData block is saved to a stream it will be packaged in a MetaData package. In addition when the data for this interface is saved to the database, if packaged is kTrue then the data will be streamed to the contiguous block section of the database, otherwise it will be written into a regular database stream.

Parameters
packageIN The packaged attribute.
virtual bool16 IMetaDataAccess::PropertyExists (const PMStringns,
const PMStringpath 
) const
pure virtual

Check if a property exists.

Parameters
nsIN The namespace of the property.
pathIN The path of the property.
Returns
kTrue if the property exists, kFalse otherwise.
virtual bool16 IMetaDataAccess::RegisterNamespace (const PMStringns,
const PMStringsuggestedPrefix,
PMStringregisteredPrefix 
)
pure virtual

Namespaces Register a namespacename (which should be a URI) and a suggested prefix for composing qualified names.

Parameters
nsIN The namespace to be registered.
suggestedPrefixIN The suggested prefix to be used if the URI is not yet registered. Must be a valid XML name.
registeredPrefixOUT The prefix actually registered for this URI.
Returns
kTrue if the registered prefix matches the suggested prefix. kFalse otherwise.
virtual void IMetaDataAccess::Remove (const PMStringns,
const PMStringpath 
)
pure virtual

Remove the specifed property and all of its sub-properties.

Parameters
nsIN The namespace of the property.
pathIN The path of the property.
virtual bool16 IMetaDataAccess::SaveToStream (IPMStreamstream,
const bool16 & package = kTrue,
const bool16 & allowInPlaceModification = kTrue,
const bool16 & expandable = kTrue,
const bool16 & packetDisabled = kFalse 
) const
pure virtual

Save this MetaData block to the given stream.

Parameters
streamIN The stream where the metadata will be written. The data will be in UTF8 format.
packageIN If kTrue, the MetaData block is streamed out in a MetaData package.
allowInPlaceModificationIN If kTrue, the writable attribute in the package header is set.
expandableIN if kTrue, padding is added.
packetDisabledIN If kTrue, a disabled packet id is generated instead of the standard one. This is used internally.
Returns
kTrue if succeeded. kFalse otherwise.
virtual void IMetaDataAccess::Set (const PMStringns,
const PMStringpath,
const PMStringvalue,
const metadata::PropertyOptions options = metadata::kNoOptions 
)
pure virtual

Set the specified value at the end of the specified path, with the optionally specified features.

Parameters
nsIN The namespace of the property.
pathIN The path of the property.
valueIN The value of the property.
optionsIN Bit flags that describe the property. Default to metadata::kNoOptions if the flags are not needed.
virtual void IMetaDataAccess::Set (const PMStringns,
const PMStringpath,
const std::string & value,
const metadata::PropertyOptions options = metadata::kNoOptions 
)
pure virtual

Set the specified value at the end of the specified path, with the optionally specified features.

Parameters
nsIN The namespace of the property.
pathIN The path of the property.
valueIN The value of the property.
optionsIN Bit flags that describe the property. Default to metadata::kNoOptions if the flags are not needed.
virtual void IMetaDataAccess::SetArrayItem (const PMStringns,
const PMStringarrayName,
int32 index,
const PMStringvalue,
const metadata::PropertyOptions options = metadata::kNoOptions 
)
pure virtual

Modify an array item.

Parameters
nsIN The namespace of the array. Must not be an empty string.
arrayNameIN The name of the array.
indexIN The index of the array item. Arrays are indexed from 1. Use metadata::kArrayLastItem for the last item in the array.
valueIN The value of the array item.
optionsIN Bit flags that describe the array item. Default to metadata::kNoOptions if the flags are not needed.
virtual void IMetaDataAccess::SetBoolean (const PMStringns,
const PMStringpath,
const bool16 & value 
)
pure virtual

The following set and get properties from common data types. Set the boolean value of the specified property.

Parameters
nsIN The namespace of the property.
pathIN The path of the property.
valueIN The value of the property.
virtual void IMetaDataAccess::SetDateTime (const PMStringns,
const PMStringpath,
const XMP_DateTime & value 
)
pure virtual

Set the DateTime value of the specified property.

Parameters
nsIN The namespace of the property.
pathIN The path of the property.
valueIN The value of the property.
virtual void IMetaDataAccess::SetInstanceID (const PMStringinstanceID)
pure virtual

Set the instance ID of the document.

Parameters
instanceIDIN The instance ID.
virtual void IMetaDataAccess::SetLocalizedText (const PMStringns,
const PMStringarrayName,
const PMStringgenericLang,
const PMStringspecificLang,
const PMStringvalue,
const metadata::PropertyOptions options = metadata::kNoOptions 
)
pure virtual

Localized text in alt-text array Set the value of an item within an alt-text array.

Parameters
nsIN The namespace of the structure. Must not be an empty string.
arrayNameIN The name of the structure. May be a general XPath expression. Must not be empty.
genericLangIN The name of the generic language as an RFC 1766 string. May be an empty string if no generic language is wanted
specificLangIN The name of the specific language as an RFC 1766 string. Must not be empty. Maybe "x-default".
valueIN The value of the item.
optionsIN Bit flags that describe the property. Default to metadata::kNoOptions if the flags are not needed.
virtual void IMetaDataAccess::SetResourceRef (const PMStringns,
const PMStringpath,
const metadata::ResourceRefresource 
)
pure virtual

Set the specified ResourceRef at the end of the specified path, with the optionally specified features.

Parameters
nsIN The namespace of the properties.
pathIN The path of the properties.
resourceIN The ResourceRef to be set.
virtual void IMetaDataAccess::SetStructField (const PMStringns,
const PMStringstructName,
const PMStringfieldNs,
const PMStringfieldName,
const PMStringvalue,
const metadata::PropertyOptions options = metadata::kNoOptions 
)
pure virtual

Structure field access Set a field within a structure.

Parameters
nsIN The namespace of the structure. Must not be an empty string.
structNameIN The name of the structure.
fieldNsIN The namespace of the field. Maybe be an empty string.
fieldNameIN The name of the field.
valueIN The value of the field.
optionsIN Bit flags that describe the property. Default to metadata::kNoOptions if the flags are not needed.
virtual void IMetaDataAccess::SetStructField (const PMStringns,
const PMStringstructName,
const PMStringfieldNs,
const PMStringfieldName,
const std::string & value,
const metadata::PropertyOptions options = metadata::kNoOptions 
)
pure virtual

Structure field access Set a field within a structure.

Parameters
nsIN The namespace of the structure. Must not be an empty string.
structNameIN The name of the structure.
fieldNsIN The namespace of the field. Maybe be an empty string.
fieldNameIN The name of the field.
valueIN The value of the field.
optionsIN Bit flags that describe the property. Default to metadata::kNoOptions if the flags are not needed.