跳转到内容

xmpscript 对象参考

此处按字母顺序列出了为 XMP JavaScript API 定义的类及其属性和方法。

加载库后,这些 XMP 类在全局 JavaScript 命名空间中可用:

对象描述
XMPMeta 对象提供 XMP Toolkit 的核心服务。
XMPFile 对象提供对文件的主或文档级 XMP 的便捷 I/O 访问。
XMPUtils 对象提供用于数组处理的附加实用函数。
XMPDateTime 对象表示日期时间值。
XMPConst 对象包含用于 JavaScript API 的数字和字符串常量值。

这些顶级对象提供了对附加支持类的访问:

对象描述
XMPIterator 对象允许遍历 XMPMeta 对象 中的属性。
XMPProperty 对象描述元数据属性。
XMPAliasInfo 对象描述元数据别名。
XMPFileInfo 对象描述文件。
XMPPacketInfo 对象描述文件中的原始 XMP 数据包。

此对象由 XMPMeta.resolveAlias 返回。只读属性描述 XMP 元数据别名。

属性类型描述
arrayFormNumber描述解析别名的属性类型的常量,0 表示简单属性。常量为:
- XMPConst.ALIAS_TO_SIMPLE_PROP:直接映射。可以是简单到简单、数组到数组或结构到结构。
- XMPConst.ALIAS_TO_ARRAY:实际属性是无序数组;别名指向第一个元素。
- XMPConst.ALIAS_TO_ORDERED_ARRAY:实际属性是有序数组;别名指向第一个元素。
- XMPConst.ALIAS_TO_ALT_ARRAY:实际属性是替代数组;别名指向第一个元素。
- XMPConst.ALIAS_TO_ALT_TEXT:实际属性是替代文本数组;别名指向 x-default 元素。
nameString别名解析到的属性名称。
namespaceString别名解析到的属性命名空间。参见 Schema 命名空间字符串常量

此对象包含用于 JavaScript XMP API 的只读常量定义。其中一些在使用它们的上下文中列出。此处提供了更长的列表。

用于所有获取和设置属性操作的命名空间 URI 字符串的常量值。参见 XMPMeta 对象

命名空间描述
NS_DCDublin Core 模式的 XML 命名空间,http://purl.org/dc/elements/1.1
NS_IPTC_COREIPTC Core 模式的 XML 命名空间。
NS_RDFRDF 的 XML 命名空间。
NS_XMLXML 的 XML 命名空间。
NS_XMPXMP 基本模式的 XML 命名空间。
NS_XMP_RIGHTSXMP 版权模式的 XML 命名空间。
NS_XMP_MMXMP 数字资产管理模式的 XML 命名空间。
NS_XMP_BJ作业管理模式的 XML 命名空间。
NS_XMP_NOTEXMP 注释模式的 XML 命名空间。Adobe 私有命名空间;请勿创建新属性。
NS_PDFPDF 模式的 XML 命名空间。
NS_PDFXPDFX 模式的 XML 命名空间。Adobe 私有命名空间;请勿创建新属性。
NS_PHOTOSHOPAdobe Photoshop 自定义模式的 XML 命名空间。
NS_PS_ALBUMAdobe Photoshop Album 自定义模式的 XML 命名空间。
NS_EXIFAdobe 的 EXIF 模式的 XML 命名空间。
NS_EXIF_AUXAdobe 的 EXIF 辅助模式的 XML 命名空间。
NS_TIFFAdobe 的 TIFF 模式的 XML 命名空间。
NS_PNGPNG 模式的 XML 命名空间。
NS_JPEGJPEG 模式的 XML 命名空间。
NS_SWFFlash 小型网页格式模式的 XML 命名空间。
NS_JPKJPK 模式的 XML 命名空间。
NS_CAMERA_RAWCamera Raw 模式的 XML 命名空间。
NS_DMDM 模式的 XML 命名空间。
NS_ADOBE_STOCK_PHOTOAdobe Stock Photos 模式的 XML 命名空间。
NS_ASFMicrosoft 高级流格式模式的 XML 命名空间。

用于所有结构化属性操作的字段类型命名空间 URI 字符串的常量值。参见 XMPMeta 对象

命名空间描述
TYPE_IDENTIFIER_QUAL用于 xmp:Identifier 属性的限定符的 XML 命名空间。
TYPE_DIMENSIONS用于 Dimensions 类型字段的 XML 命名空间。
TYPE_TEXTXMP 文本文档模式的 XML 命名空间。
TYPE_PAGEDFILEXMP 分页文档模式的 XML 命名空间。
TYPE_GRAPHICS包含文档中使用的着色剂(色板)特征的结构体的 XML 命名空间。
TYPE_IMAGE用于图形图像字段的 XML 命名空间。用于 Thumbnail 类型。
TYPE_FONT包含文档中使用的字体特征的结构体的 XML 命名空间。
TYPE_RESOURCE_EVENT用于 ResourceEvent 类型字段的 XML 命名空间。
TYPE_RESOURCE_REF用于 ResourceRef 类型字段的 XML 命名空间。
TYPE_ST_VERSION用于 Version 类型字段的 XML 命名空间。
TYPE_ST_JOB用于 JobRef 类型字段的 XML 命名空间。
TYPE_MANIFEST_ITEM用于清单数组元素的 XML 命名空间。
TYPE_PDFA_SCHEMA
TYPE_PDFA_PROPERTY
TYPE_PDFA_TYPE
TYPE_PDFA_FIELD
TYPE_PDFA_ID
TYPE_PDFA_EXTENSION用于 PDF 子类型的 XML 命名空间

用于 I/O 操作的受支持文件类型的常量值。参见 XMPFile 对象

常量描述
FILE_UNKNOWN未知文件格式。
FILE_PDFPDF
FILE_POSTSCRIPTPS,遵循 DSC 约定的通用 PostScript
FILE_EPSEPS,封装的 PostScript
FILE_JPEGJPEG
FILE_JPEG2KJPX,JPEG 2000 文件
FILE_TIFFTIFF
FILE_GIFGIF
FILE_PNGPNG
FILE_SWFSWF,Flash 文件
FILE_FLAFLA,Flash 创作文件
FILE_FLVFLV,Flash 视频文件
FILE_MOVMOV,Quicktime
FILE_AVIAVI
FILE_CINCIN,Cineon
FILE_WAVWAV
FILE_MP3MP3
FILE_SESSES,Audition 会话
FILE_CELCEL,Audition 循环
FILE_MPEGMPEG
FILE_MPEG2MP2
FILE_MPEG4MP4
FILE_WMAVWMAV,Windows Media 音频和视频
FILE_AIFFAIFF
FILE_HTMLHTML
FILE_XMLXML
FILE_TEXTTEXT
FILE_PHOTOSHOPPSD,Photoshop
FILE_ILLUSTRATORAI,Illustrator
FILE_INDESIGNINDD,Indesign
FILE_AE_PROJECTAE,After Effects
FILE_AE_PROJECT_TEMPLATEAET,After Effects 项目模板
FILE_AE_FILTER_PRESETFFX,After Effects 滤镜预设文件
FILE_ENCORE_PROJECTNCOR,Encore DVD 项目文件
FILE_PREMIERE_PROJECTPRPJ,Premiere 项目文件
FILE_PREMIERE_TITLEPRTL,Premiere 标题文件

此类表示日期和时间。时间包括时区,并且可以具有纳秒级精度。

new XMPDateTime(); // 创建一个包含 0 日期的对象
new XMPDateTime(date); // 使用 JavaScript 日期初始化对象
new XMPDateTime(iso8601Date); // 使用 ISO 日期初始化对象
参数类型描述
dateJavaScript Date 对象。时区设置为本地操作系统的时区值。XMP Toolkit 中的时间可以具有纳秒级精度;但是,当与 JavaScript Date 值相互转换时,时间精度会降低到毫秒级。
iso8601DateStringISO 8601 格式的日期时间;例如:"2007-04-10T17:54:50+01:00"

所有属性都是可读写的,允许您修改日期时间值。如果设置的值超出允许范围,则自动设置为最小或最大允许值。

属性类型描述
yearNumber年份,范围为 [0000...9999]
monthNumber月份,范围为 [1...12]
dayNumber日期,范围为 [1...31]
hourNumber小时,范围为 [1...23]
minuteNumber分钟,范围为 [1...59]
secondNumber秒,范围为 [1...59]
nanosecondNumber纳秒,范围为 [0...1e+9 -1]
tzSignNumber时区偏移方向。
- 0:UTC
- -1:西区
- 1:东区
tzHourNumber时区与格林威治标准时间的小时偏移,范围为 [1...23]
tzMinuteNumber时区与格林威治标准时间的分钟偏移,范围为 [1...59]

XMPDateTime.compareTo(xmpDateTime)

报告两个日期时间值的时间顺序。

参数类型描述
xmpDataTimeXMPDateTime 对象要比较的对象
  • 0 如果两个值相同,
  • 1 如果此日期时间晚于比较值
  • -1 如果此日期时间早于比较值

XMPDateTime.convertToLocalTime()

将此对象中的时区设置为本地操作系统的时区,必要时从先前的时区调整时间值。


XMPDateTime.convertToUTCTime()

将此对象中的时区设置为 UTC(协调世界时),必要时从先前的时区调整时间值。


XMPDateTime.getDate()

将此日期时间值转换为 JavaScript Date。时区被归一化(JavaScript 格式不支持时区),精度降低到毫秒级。

返回一个 JavaScript Date 对象。


XMPDateTime.setLocalTimeZone()

将此对象中的时区设置为当前操作系统的值,替换任何现有值。

不影响其他字段。


此类对应 Adobe XMP Toolkit 的文件处理组件,提供对文件中主文档层级 XMP 数据的便捷 I/O 访问。

文件处理器支持 XMP 规范中定义的所有可嵌入 XMP 元数据的文件格式。允许您在原本没有 XMP 的位置添加 XMP、扩展现有 XMP(不考虑现有填充)、以及协调 XMP 与其他元数据格式的关系。

XMP Toolkit 还提供数据包扫描器作为不支持文件格式的备用解决方案。通过对文件进行转储扫描,为所有文件格式提供更有限的访问。它可以更新文件,但不能扩展数据包或协调其他元数据格式。


new XMPFile(filePath, format, openFlags)

属性类型描述
filePathString文件路径
format文件格式数字常量要创建的文件格式
openFlags常量值,可选以下之一:文件打开选项
- XMPConst.OPEN_FOR_READ - 以只读方式打开
- XMPConst.OPEN_FOR_UPDATE - 以读写方式打开
- XMPConst.OPEN_ONLY_XMP - 仅需要 XMP,允许空间/时间优化
- XMPConst.OPEN_STRICTLY - 严格定位 XMP 并与其他格式协调
- XMPConst.OPEN_USE_SMART_HANDLER - 要求使用智能处理器,不执行数据包扫描
- XMPConst.OPEN_USE_PACKET_SCANNING - 强制数据包扫描,不使用智能处理器
- XMPConst.OPEN_LIMITED_SCANNING - 仅扫描已知需要扫描的文件

此属性作为 XMPFile 类的静态属性提供,无需创建实例即可访问。

属性类型描述
versionString当前 XMP Toolkit 版本的描述字符串

此函数作为 XMPFile 类的静态方法提供,无需创建实例即可调用。

XMPFile.getFormatInfo(format)

报告给定文件格式的支持特性。

参数类型描述
format文件格式数字常量要获取信息的格式

位标志常量的逻辑或值,如果格式不被处理则返回 0。常量包括:

  • XMPConst.HANDLER_CAN_INJECT_XMP - 可向现有文件首次注入 XMP
  • XMPConst.HANDLER_CAN_EXPAND - 可扩展现有文件中的 XMP 或其他元数据
  • XMPConst.HANDLER_CAN_REWRITE - 可将文件复制到另一个文件并写入新元数据
  • XMPConst.HANDLER_PPEFERS_IN_PLACE - 可扩展但偏好就地更新
  • XMPConst.HANDLER_CAN_RECONCILE - 支持 XMP 与其他格式之间的协调
  • XMPConst.HANDLER_ALLOWS_ONLY_XMP - 仅允许访问 XMP,忽略其他格式
  • XMPConst.HANDLER_RETURNS_RAW_PACKETS - 文件处理器返回原始 XMP 数据包信息
  • XMPConst.HANDLER_RETURNS_TNAIL - 文件处理器返回原生缩略图
  • XMPConst.HANDLER_OWNS_FILE - 文件处理器负责文件的打开和关闭
  • XMPConst.HANDLER_ALLOWS_SAFE_UPDATE - 文件处理器允许崩溃安全的文件更新
  • XMPConst.HANDLER_NEEDS_READONLY_PACKET - 文件格式需要 XMP 数据包为只读
  • XMPConst.HANDLER_USES_SIDECAR_XMP - 文件处理器使用辅助文件存储 XMP

XMPFileObj.canPutXMP(xmpObj)

XMPFileObj.canPutXMP(xmpPacket)

XMPFileObj.canPutXMP(xmpBuffer)

报告给定大小的 XMP 元数据是否可以更新到此文件中。当数据包大小增加时尤为重要。

仅考虑序列化数据包的长度;不保留提供的 XMP。使用 putXMP() 实际更新打开文件中的 XMP。

参数类型描述
xmpObjXMPMeta 对象要检查的 XMP 元数据
xmpPacketString包含 XMP 数据包的字符串
xmpBufferNumber 数组原始 XMP 数据包数据

布尔值。如果可以将给定 XMP 放入此文件则返回 true


XMPFileObj.closeFile(closeFlags)

关闭此打开的文件,必要时写入;即如果文件是以更新方式打开的,并且 XMP 元数据已更新或注入。文件打开时提供的选项决定此函数是否协调 XMP 与其他元数据格式;即是否更新任何传统元数据以与 XMP 元数据保持一致。

参数类型描述
closeFlags关闭选项常量或 0,可选以下之一:关闭使用的标志
- XMPConst.CLOSE_UPDATE_SAFELY - 写入临时文件然后交换以确保崩溃安全


XMPFileObj.getXMP()

从此文件中检索并解析现有的 XMP 元数据。如果文件格式包含文件处理器可识别的传统元数据,则函数会创建包含该元数据的 XMP 数据包。

XMPMeta 对象,如果文件不包含 XMP 或可转换的传统元数据则返回 null


XMPFileObj.getPacketInfo()

从此文件检索原始 XMP 数据包及其相关信息。文件打开时的选项决定此函数是否协调其他元数据格式与 XMP。

XMPPacketInfo 对象,如果文件不包含 XMP 元数据则返回 null


XMPFileObj.getFileInfo()

检索此文件的基本信息。

XMPFileInfo 对象


XMPFileObj.putXMP(xmpObj)

XMPFileObj.putXMP(xmpPacket)

XMPFileObj.putXMP(xmpOBuffer)

为此文件提供新的 XMP 元数据。文件直到调用 closeFile() 时才会实际写入。文件打开时提供的选项决定该函数是否协调 XMP 与其他元数据格式;即是否更新任何传统元数据以与 XMP 元数据保持一致。

参数类型描述
xmpObjXMPMeta 对象作为 XMPMeta 对象的 XMP 元数据
xmpPacketString包含 XMP 数据包的字符串
xmpBufferNumber 数组包含原始 XMP 数据包数据的数组


此对象由 XMPFile.getFileInfo 返回。只读属性描述 XMPFile 对象 代表的文件。


属性类型描述
filePathString文件的绝对路径(JavaScript 表示法)
formatNumber文件格式常量之一。参见 文件格式数字常量
handlerFlagsNumber此格式支持的特性。位标志常量的逻辑或值:
- XMPConst.HANDLER_CAN_INJECT_XMP - 可向现有文件首次注入 XMP
- XMPConst.HANDLER_CAN_EXPAND - 可扩展现有文件中的 XMP 或其他元数据
- XMPConst.HANDLER_CAN_REWRITE - 可复制文件并写入新元数据
- XMPConst.HANDLER_PPEFERS_IN_PLACE - 可扩展但偏好就地更新
- XMPConst.HANDLER_CAN_RECONCILE - 支持 XMP 与其他格式的协调
- XMPConst.HANDLER_ALLOWS_ONLY_XMP - 仅允许访问 XMP,忽略其他格式
- XMPConst.HANDLER_RETURNS_RAW_PACKETS - 返回原始 XMP 数据包信息
- XMPConst.HANDLER_RETURNS_TNAIL - 返回原生缩略图
- XMPConst.HANDLER_OWNS_FILE - 处理器负责文件的打开和关闭
- XMPConst.HANDLER_ALLOWS_SAFE_UPDATE - 允许崩溃安全的文件更新
openFlagsNumber打开此文件时的选项。可选以下常量之一:
- XMPConst.OPEN_FOR_READ - 以只读方式打开
- XMPConst.OPEN_FOR_UPDATE - 以读写方式打开
- XMPConst.OPEN_ONLY_XMP - 仅需要 XMP,允许空间/时间优化
- XMPConst.OPEN_STRICTLY - 严格定位 XMP 并与其他格式协调
- XMPConst.OPEN_USE_SMART_HANDLER - 要求使用智能处理器,不扫描数据包
- XMPConst.OPEN_USE_PACKET_SCANNING - 强制数据包扫描,不使用智能处理器
- XMPConst.OPEN_LIMITED_SCANNING - 仅扫描已知需要扫描的文件

通过调用 XMPMeta.iterator 创建。递归遍历 XMPMeta 对象 的属性和限定符,并将其作为 XMPProperty 对象 返回。

该对象没有 JavaScript 属性。


XMPIteratorObj.next()

检索元数据中的下一项。

XMPProperty 对象,如果没有更多项则返回 null。


XMPIteratorObj.skipSiblings()

跳过当前节点下方的子树及其兄弟节点,在后续调用 next() 时生效。


XMPIteratorObj.skipSubtree()

跳过当前节点下方的子树,在后续调用 next() 时生效。


此类提供 XMP Toolkit 的核心服务。函数提供从 XMP 命名空间创建和查询元数据属性的能力。类还提供允许您创建和查询命名空间和别名的静态函数。

类上有一个提供 XMP 版本信息的静态属性;实例中没有 JavaScript 属性。对象封装了一组元数据属性,您通过对象函数访问这些属性。

通用函数 getProperty()setProperty()deleteProperty() 允许您在使用适当组合的路径表达式时操作所有类型的属性。为方便起见,对象还为特定类型的属性(如数组)提供了更具体的函数。


要创建 XMPMeta 对象,请使用 new 运算符。构造函数接受作为字符串的 RDF/XML 序列化元数据包,或仅包含字节值的数字数组。它返回新对象。如果不提供参数,则新对象为空;您可以使用对象的函数添加命名空间和属性。

首次调用这些构造函数中的任何一个时,会通过注册标准命名空间和别名来初始化库:

new XMPMeta ( ); // 创建一个空对象
new XMPMeta ( packet );
new XMPMeta ( buffer );
参数类型描述
packetStringXML 文件或 XMP 数据包
bufferNumber 数组XML 文件或 XMP 数据包的 UTF-8 或 UTF-16 编码字节。此数组是 XMPMeta.serializeToArray 的结果

XMPMeta 类提供此静态属性。无需创建实例即可访问它。

属性类型描述
versionString当前 XMP Toolkit 版本的描述字符串

XMPMeta 类提供这些静态函数。无需创建实例即可调用它们。

XMPMeta.deleteAlias(aliasNS, aliasProp)

删除指定的别名;不删除被别名的属性。

如果别名不存在,则不执行任何操作。

参数类型描述
aliasNSString命名空间 URI 字符串。参见 模式命名空间字符串常量
aliasPropString别名属性字符串


XMPMeta.deleteNamespace(namespaceURI)

删除已注册的前缀-命名空间 URI 对。

参数类型描述
namespaceURIString命名空间 URI 字符串。参见 模式命名空间字符串常量


XMPMeta.dumpAliases()

创建并返回包含已注册别名及其目标的可读字符串。

字符串


XMPMeta.dumpNamespaces()

创建并返回包含已注册命名空间 URI 及其关联前缀的可读字符串。

字符串


XMPMeta.getNamespacePrefix(namespaceURI)

检索与已注册命名空间 URI 关联的前缀。

参数类型描述
namespaceURIString命名空间 URI 字符串。参见 模式命名空间字符串常量

前缀字符串后跟冒号。


XMPMeta.getNamespaceURI(namespacePrefix)

检索与命名空间前缀关联的已注册命名空间 URI。

参数类型描述
namespacePrefixString命名空间前缀字符串

URI 字符串。


XMPMeta.registerAlias(aliasNS, aliasProp, actualNS, actualProp, arrayForm)

定义一个从某个命名空间和属性到另一个命名空间的别名映射。别名可以是直接映射(别名和实际属性具有相同数据类型),也可以将简单别名映射到数组中的某个项(首项或替代文本数组中的x-default项)。

只要形式匹配,多个别名可以映射到同一个实际属性。如果相同别名和形式已存在,则调用无效。

参数名类型描述
aliasNS字符串别名命名空间字符串。参见模式命名空间字符串常量
aliasProp字符串别名属性,简单名称字符串。
actualNS模式命名空间字符串常量被别名属性的命名空间字符串。
actualProp字符串被别名的属性,简单名称字符串。
arrayForm数字简单别名到数组项的数组形式,控制如果首次通过别名设置数组时如何创建数组。取以下常量之一:
- XMPConst.ALIAS_TO_SIMPLE_PROP(默认)- 直接映射。可以是简单到简单、数组到数组或结构到结构。
- XMPConst.ALIAS_TO_ARRAY - 实际是无序数组,别名指向数组的第一个元素。
- XMPConst.ALIAS_TO_ORDERED_ARRAY - 实际是有序数组,别名指向数组的第一个元素。
- XMPConst.ALIAS_TO_ALT_ARRAY - 实际是替代数组,别名指向数组的第一个元素。
- XMPConst.ALIAS_TO_ALT_TEXT - 实际是替代文本数组(本地化属性),别名指向数组的x-default元素。


XMPMeta.registerNamespace(namespaceURI, suggestedPrefix)

使用前缀注册命名空间。如果建议的前缀已被使用,则生成、注册并返回不同的前缀。

参数名类型描述
namespaceURI模式命名空间字符串常量命名空间URI字符串。
suggestedPrefix字符串建议的命名空间前缀字符串。

字符串,包含实际注册的前缀。如果建议的前缀未被占用,则返回suggestedPrefix,否则返回其他前缀。


XMPMeta.resolveAlias(aliasNS, aliasProp)

检索别名映射到的实际属性的信息。

参数名类型描述
schemaNS模式命名空间字符串常量别名命名空间URI字符串。
aliasProp别名属性字符串。

一个XMPAliasInfo对象


XMPMetaObj.appendArrayItem(schemaNS, arrayName[, itemOptions], itemValue[, arrayOptions])

将项追加到现有数组,如果命名数组不存在,则创建新的数组类型属性。

参数名类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
arrayName字符串数组类型属性名称字符串。可以是通用路径表达式。
itemOptions数字可选。描述新项的标志(如果正在创建)。取以下值之一:
- 0:默认值。简单项,或由arrayOptions值隐含的类型。
- XMPConst.PROP_IS_ARRAY:项是数组(alt、bag或seq类型)。
- XMPConst.PROP_IS_STRUCT:项是具有嵌套字段的结构。
itemValue字符串新项值字符串。对于没有值的数组项,传递null
arrayOptions数字可选。描述数组形式的标志。如果正在创建数组,则必须提供;如果数组已存在,则忽略。取以下值之一:
- XMPConst.ARRAY_IS_ORDERED - 项顺序有意义。隐含XMPConst.PROP_IS_ARRAY
- XMPConst.ARRAY_IS_ALTERNATIVE - 项是互斥的替代项。隐含XMPConst.PROP_IS_ARRAYXMPConst.ARRAY_IS_ORDERED


XMPMetaObj.countArrayItems(schemaNS, arrayName)

报告数组类型元数据属性中的项数。

参数名类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
arrayName字符串数组类型属性名称字符串。可以是通用路径表达式。

数字


XMPMetaObj.deleteArrayItem(schemaNS, arrayName, itemIndex)

删除以给定数组项为根的元数据树。

参数名类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
arrayName字符串数组类型属性名称字符串。可以是通用路径表达式。
itemIndex数字项的1-based位置索引。使用XMPConst.ARRAY_LAST_ITEM引用数组中最后一个现有项。


XMPMetaObj.deleteProperty(schemaNS, propName)

删除以给定属性为根的元数据树。如果属性不存在,则不执行任何操作。

参数名类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
propName字符串属性名称字符串。可以是通用路径表达式。


XMPMetaObj.deleteStructField(schemaNS, structName, fieldNS, fieldName)

删除以给定结构字段为根的元数据树。

参数名类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
structName字符串结构名称字符串。可以是通用路径表达式。
fieldNS模式命名空间字符串常量字段类型命名空间字符串。
fieldName字符串字段名称字符串。必须是简单XML名称。


XMPMetaObj.deleteQualifier(schemaNS, structName, qualNS, qualName)

删除以给定限定符为根的元数据树。如果限定符不存在,则不执行任何操作。

参数名类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
structName字符串结构名称字符串。可以是通用路径表达式。
qualNS字符串限定符命名空间的URI字符串。
qualName字符串限定符名称字符串。必须是简单XML名称。


XMPMetaObj.doesArrayItemExist(schemaNS, arrayName, itemIndex)

报告具有给定索引的数组项当前是否存在于元数据中的现有数组中。

参数名类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
arrayName字符串数组名称字符串。可以是通用路径表达式。
itemIndex数字项的1-based位置索引。

布尔值。如果数组和项存在,则为true


XMPMetaObj.doesPropertyExist(schemaNS, propName)

报告具有给定名称的属性当前是否存在于元数据中。

参数名类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
propName字符串属性名称字符串。可以是通用路径表达式。

布尔值。如果属性存在,则为true


XMPMetaObj.deleteStructField(schemaNS, structName, fieldNS, fieldName)

报告具有给定名称的结构字段当前是否存在于元数据中。

参数名类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
structName字符串结构名称字符串。可以是通用路径表达式。
fieldNS模式命名空间字符串常量字段类型命名空间字符串。
fieldName字符串字段名称字符串。必须是简单XML名称。

布尔值。如果结构和字段存在,则为true


XMPMetaObj.doesQualifierExist(schemaNS, structName, qualNS, qualName)

报告给定属性是否存在具有给定名称的限定符。

参数名类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
structName字符串结构名称字符串。可以是通用路径表达式。
qualNS字符串限定符命名空间的URI字符串。
qualName字符串限定符名称字符串。必须是简单XML名称。

布尔值。如果属性和限定符存在,则为true


XMPMetaObj.dumpObject()

创建并返回包含此对象元数据内容的字符串(以RDF格式)。

字符串


XMPMetaObj.getArrayItem(schemaNS, arrayName, itemIndex)

从数组类型元数据属性中检索项。

参数名类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
arrayName字符串数组名称字符串。可以是通用路径表达式。
itemIndex数字项的1-based位置索引。使用XMPConst.ARRAY_LAST_ITEM引用数组中最后一个现有项。

一个XMPProperty对象,如果未找到属性,则为undefined


XMPMetaObj.getLocalizedText(schemaNS, altTextName, genericLang, specificLang)

从替代文本数组中检索特定语言的文本值。首先尝试匹配特定语言。如果未找到,则尝试匹配通用语言(如果指定)。如果仍未找到,则获取x-default项(如果有)。否则,获取第一项。

参数名类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
altTextName字符串替代文本数组名称字符串。可以是通用路径表达式。
genericLang字符串通用语言名称,作为RFC 3066主标签。可以为null或空字符串。
specificLang字符串特定语言名称,作为RFC 3066主标签;例如en-US。必须指定。

字符串,如果未找到匹配值,则为undefined


XMPMetaObj.getProperty(schemaNS, propName[, valueType])

检索元数据属性的值和选项。用于顶级简单属性,或在XMPUtils对象中使用路径组合函数后使用。

参数名类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
propName字符串属性名称字符串。可以是通用路径表达式。
valueType字符串可选。属性数据类型,取以下值之一:
- XMPConst.STRING
- XMPConst.INTEGER
- XMPConst.NUMBER
- XMPConst.BOOLEAN
- XMPConst.XMPDATE

一个XMPProperty对象,如果未找到属性,则为undefined


XMPMetaObj.getStructField(schemaNS, structName, fieldNS, fieldName)

从元数据中的嵌套结构中检索字段值。

参数名类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
structName字符串结构名称字符串。可以是通用路径表达式。
fieldNS模式命名空间字符串常量字段类型命名空间字符串。
fieldName字符串字段名称字符串。必须是简单XML名称。

一个XMPProperty对象,如果未找到属性,则为undefined


XMPMetaObj.getQualifier(schemaNS, structName, qualNS, qualName)

检索附加到元数据属性的限定符。

参数名类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
structName字符串结构名称字符串。可以是通用路径表达式。
qualNS字符串限定符命名空间的URI字符串。
qualName字符串限定符名称字符串。必须是简单XML名称。

一个XMPProperty对象,如果未找到属性,则为undefined


XMPMetaObj.insertArrayItem(schemaNS, arrayName, itemIndex, itemValue[, itemOptions])

在数组中现有项之前插入一个新项。所有后续项的索引位置都会递增。数组必须已存在。

参数类型描述
schemaNS命名空间URI字符串。参见模式命名空间字符串常量
arrayName字符串数组类型属性名称字符串。可以是通用路径表达式。
itemIndex数字插入新项的1-based位置索引。使用XMPConst.ARRAY_LAST_ITEM引用数组中的最后一个现有项。
itemValue字符串新项值。对于没有值的数组项,传递null
itemOptions数字可选。描述新项的标志,如果正在创建。可选值:
- 0:简单项,默认值。
- XMPConst.PROP_IS_ARRAY:该项是一个数组(alt、bag或seq类型)。
- XMPConst.PROP_IS_STRUCT:该项是具有嵌套字段的结构。


XMPMetaObj.iterator(options, schemaNS, propName)

创建一个迭代对象,可以迭代此元数据中的属性、数组和限定符。指定选项、命名空间和属性以限制结果项的范围和粒度。

参数类型描述
options这些位标志常量的逻辑OR:控制迭代方式和返回值的一组选项。
- XMPConst.ITERATOR_JUST_CHILDREN - 将迭代限制为根属性的直接子项。默认情况下,迭代进入子树。
- XMPConst.ITERATOR_JUST_LEAFNODES - 将迭代限制为叶节点。默认情况下,迭代进入子树的所有节点。
- XMPConst.ITERATOR_JUST_LEAFNAMES - 仅返回路径的叶部分。默认情况下,返回完整路径。
- XMPConst.ITERATOR_INCLUDE_ALIASES - 包括别名。默认情况下,仅考虑实际属性。
- XMPConst.ITERATOR_OMIT_QUALIFIERS - 从迭代中省略限定符。
schemaNS模式命名空间字符串常量命名空间URI字符串。
propName字符串数组类型属性名称字符串。可以是通用路径表达式。

此元数据对象的XMPIterator对象


XMPMetaObj.serialize([options, padding, indent, newline, baseIndent])

将此XMP元数据序列化为RDF格式的字符串。

参数类型描述
options可选。这些位标志常量的逻辑OR:控制序列化方式的一组选项。选项必须逻辑一致;如果冲突,函数将抛出异常。
- XMPConst.SERIALIZE_OMIT_PACKET_WRAPPER - 不包含XML包包装器。
- XMPConst.SERIALIZE_READ_ONLY_PACKET - 创建只读XML包包装器。
- XMPConst.SERIALIZE_USE_COMPACT_FORMAT - 使用高度紧凑的RDF语法和布局。
- XMPConst.SERIALIZE_USE_PLAIN_XMP - 序列化为纯XMP(当前不支持)。
- XMPConst.SERIALIZE_INCLUDE_THUMBNAIL_PAD - 如果不存在xmp:Thumbnail属性,则在填充中包含JPEG缩略图的典型空间。
- XMPConst.SERIALIZE_EXACT_PACKET_LENGTH - 计算填充以满足padding参数提供的总包长度。如果未填充的包超过此长度,则抛出异常。
- XMPConst.SERIALIZE_WRITE_ALIAS_COMMENTS - 包含别名的XML注释。
padding数字可选。
- 如果选项值为SERIALIZE_EXACT_PACKET_LENGTH,则这是包的确切长度,包括为满足此长度而添加的填充字符。
- 如果选项值不是SERIALIZE_EXACT_PACKET_LENGTH,则这是要添加的填充字符数。
- 默认值为0,表示使用适当的填充量。
indent字符串可选。用作缩进的字符串。默认为两个空格。
newline字符串可选。使用的新行字符。默认为U+000A
baseIndent数字可选。最外层XML元素的缩进级别。默认为0

字符串


XMPMetaObj.serializeToArray([options, padding, indent, newline, baseIndent])

将此XMP元数据序列化为RDF格式的字符串,然后将其转换为一个字节数值数组,即UTF-8或UTF-16编码的字符。

参数类型描述
options这些位标志常量的逻辑OR:可选。控制序列化方式的一组选项。选项必须逻辑一致;如果冲突,函数将抛出异常。
- XMPConst.SERIALIZE_OMIT_PACKET_WRAPPER - 不包含XML包包装器。
- XMPConst.SERIALIZE_READ_ONLY_PACKET - 创建只读XML包包装器。
- XMPConst.SERIALIZE_USE_COMPACT_FORMAT - 使用高度紧凑的RDF语法和布局。
- XMPConst.SERIALIZE_USE_PLAIN_XMP - 序列化为纯XMP(当前不支持)。
- XMPConst.SERIALIZE_INCLUDE_THUMBNAIL_PAD - 如果不存在xmp:Thumbnail属性,则在填充中包含JPEG缩略图的典型空间。
- XMPConst.SERIALIZE_EXACT_PACKET_LENGTH - 计算填充以满足padding参数提供的总包长度。如果未填充的包超过此长度,则抛出异常。
- XMPConst.SERIALIZE_WRITE_ALIAS_COMMENTS - 包含别名的XML注释。
padding数字可选。
- 如果选项值为SERIALIZE_EXACT_PACKET_LENGTH,则这是包的确切长度,包括为满足此长度而添加的填充字符。
- 如果选项值不是SERIALIZE_EXACT_PACKET_LENGTH,则这是要添加的填充字符数。
- 默认值为0,表示使用适当的填充量。
indent字符串可选。用作缩进的字符串。默认为两个空格。
newline字符串可选。使用的新行字符。默认为U+000A
baseIndent数字可选。最外层XML元素的缩进级别。默认为0

数字数组


XMPMetaObj.setArrayItem(schemaNS, arrayName, itemIndex, itemValue[, itemOptions])

替换数组中的项或追加项。数组必须已存在。要创建项,优先使用appendArrayItem()insertArrayItem()

参数类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
arrayName字符串数组类型属性名称字符串。可以是通用路径表达式。
itemIndex数字插入新项的1-based位置索引。使用XMPConst.ARRAY_LAST_ITEM替换数组中的最后一个现有项。
itemValue字符串新项值字符串。对于没有值的数组项,传递null
itemOptions描述新项的标志,如果正在创建。可选值:可选
- 0:简单项,默认值。
- XMPConst.PROP_IS_ARRAY:该项是一个数组(alt、bag或seq类型)。
- XMPConst.PROP_IS_STRUCT:该项是具有嵌套字段的结构。


XMPMetaObj.setLocalizedText(schemaNS, altTextName, genericLang, specificLang, itemValue, setOptions)

为替代文本数组中的特定语言设置文本值。处理x-default项的特殊情况。

参数类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
altTextName字符串替代文本数组的名称字符串。可以是通用路径表达式。
genericLang字符串通用语言的名称,作为RFC 3066主要子标签。可以为null或空字符串。
specificLang字符串特定语言的名称,作为RFC 3066主要子标签;例如en-US。必须指定。
itemValue字符串新字符串值。
setOptions未知未使用。


XMPMetaObj.setStructField(schemaNS, structName, fieldNS, fieldName, fieldValue[, options])

设置结构类型属性中字段的值,如果命名字段在结构中不存在则创建新字段,如果命名结构不存在则创建包含命名字段的新结构。

参数类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
structName字符串现有结构的名称字符串。可以是通用路径表达式。
fieldNS模式命名空间字符串常量字段类型命名空间字符串。
fieldName字符串字段名称字符串。必须是简单的XML名称。
fieldValue字符串新字段值字符串。对于没有值的字段,传递null。
options描述新结构的选项标志。可选值:可选。仅在创建结构时使用。
- 0 - 简单项,默认值。
- XMPConst.PROP_IS_ARRAY - 该项是一个数组(alt、bag或seq类型)。
- XMPConst.PROP_IS_STRUCT - 该项是具有嵌套字段的结构。


XMPMetaObj.setQualifier(schemaNS, propName, qualNS, qualName, qualValue[, options])

将新限定符附加到元数据属性。限定符可以添加到简单属性、数组项、结构字段或其他限定符。

参数类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
propName字符串现有属性的名称字符串。可以是通用路径表达式。
qualNS字符串限定符命名空间的URI。与模式命名空间具有相同的URI和前缀用法。
qualName字符串限定符的名称。必须是简单的XML名称。与属性名称具有相同的前缀用法。
qualValue字符串新限定符值字符串。对于没有值的限定符,传递null。
options描述限定符的选项标志。可选值:可选。仅在创建限定符时使用。
- 0 - 简单项,默认值。
- XMPConst.PROP_IS_ARRAY - 该项是一个数组(alt、bag或seq类型)。
- XMPConst.PROP_IS_STRUCT - 该项是具有嵌套字段的结构。


XMPMetaObj.setProperty(schemaNS, propName, propValue[, setOptions, valueType])

设置简单元数据属性的值,必要时创建属性,或创建新的数组或结构属性。对于创建数组和结构属性,优先使用setArrayItem()setStructField()。使用此调用创建或设置顶级简单属性,或在XMPUtils对象中使用路径组合函数后使用。

参数类型描述
schemaNS模式命名空间字符串常量命名空间URI字符串。
propName字符串属性名称字符串。可以是通用路径表达式。
propValue字符串新属性值字符串。传递null以创建数组或非叶级结构属性。
setOptions简单值属性。其他常量值:可选。如果命名属性不存在,则创建属性的类型。默认为0
- 0 - 简单项,默认值。
- XMPConst.PROP_IS_ARRAY - 该项是一个数组(alt、bag或seq类型)。
- XMPConst.PROP_IS_STRUCT - 该项是具有嵌套字段的结构。
valueType属性数据类型。可选值:可选。如果提供,则将值转换为此类型。
- XMPConst.STRING
- XMPConst.INTEGER
- XMPConst.NUMBER
- XMPConst.BOOLEAN
- XMPConst.XMPDATE


XMPMetaObj.sort()

按字母顺序对XMP内容进行排序。

  • 在顶层,按前缀对命名空间进行排序。
  • 在命名空间内,按名称对顶级属性进行排序。
  • 在结构中,按限定名称(即XML prefix:local形式)对字段进行排序。
  • 按值对简单项的无序数组进行排序。
  • xml:lang限定符对语言替代数组进行排序,将"x-default"项放在首位。


此对象由XMPFile.getPacketInfo()返回。只读属性描述了由XMPFile对象表示的文件中的XMP包。


参数类型描述
charForm数字包中的字符编码,可选值:
- 0 - UTF8
- 2 - UTF-16,MSB优先(大端序)
- 3 - UTF-16,LSB优先(小端序)
- 4 - UTF 32,MSB优先(大端序)
- 5 - UTF 32,LSB优先(小端序)
length数字包的字节长度。
offset数字包在文件中开始的字节偏移量。
packet字符串原始包数据。
padSize数字包的填充大小(字节),如果未知则为0。
writeable布尔值如果为true,则包可写。

此对象由XMPMeta对象的各种属性访问器函数返回,例如getProperty。只读属性描述了元数据属性。


参数类型描述
locale字符串属性值的语言。此值由getLocalizedText()调用设置,如果找到适当的项,则分配所选替代文本项的语言。
namespace字符串属性的命名空间;参见模式命名空间字符串常量。通常在浏览元数据时使用XMPIterator对象
options数字描述属性类型的常量,简单属性为0。常量包括:
- XMPConst.PROP_IS_ARRAY - 属性是数组(alt、bag或seq类型)。
- XMPConst.PROP_IS_STRUCT - 属性是具有嵌套字段的结构。
path字符串属性路径,包括属性名称。对于简单属性,整个路径就是属性名称。
value变体属性的值(如果有)。数组和非叶级结构没有值。

此类为 XMP 工具包提供额外实用功能,构建在 XMPMeta 对象功能之上。仅包含静态函数,无法创建实例。

路径组合函数如 composeArrayItemPath(),支持构建深层嵌套属性的路径表达式,这些表达式可传递给 XMPMeta 对象的访问函数,如 xmpmetaobj-getProperty。

高级函数如 xmputils-duplicateSubtree 允许操作 XMPMeta 对象中的元数据树。


XMPUtils.appendProperties(source, dest, options)

从源 XMPMeta 对象复制属性并追加到目标 XMPMeta 对象。

参数类型说明
sourceXMPMeta 对象源 XMPMeta 对象
destXMPMeta 对象目标 XMPMeta 对象
options这些位标志常量的逻辑或:控制复制操作的选项标志。默认为 0
- XMPConst.APPEND_ALL_PROPERTIES - 包含内部和外部属性。默认仅复制外部属性。仅适用于顶层属性
- XMPConst.APPEND_REPLACE_OLD_VALUES - 用源对象值替换现有属性值。默认保留现有值。适用于所有层级属性
- XMPConst.APPEND_DELETE_EMPTY_VALUES - 若新值为空则删除属性


XMPUtils.catenateArrayItems(xmpObj, schemaNS, arrayName, separator, quotes, options)

将数组项值连接为单个字符串。结果字符串可使用 separateArrayItems() 重新拆分为数组项。

参数类型说明
xmpObjXMPMeta 对象包含数组的 XMPMeta 对象
schemaNS模式命名空间字符串常量命名空间 URI 字符串
arrayName字符串数组属性名称字符串。可为通用路径表达式。数组每项须为简单字符串值
separator字符串结果字符串中分隔项的分隔符。默认为 ’; ‘(ASCII 分号和空格 U+003B,U+0020)
quotes字符串用于引用包含分隔符的项的字符。默认为 ’”‘(ASCII 双引号 U+0022)
options常量值控制连接的选项标志。常量值 XMPConst.SEPARATE_ALLOW_COMMAS - 允许项值中包含逗号(如”姓,名”)。此选项需在本函数和separateArrayItems()中保持一致以正确重建项。默认为 0

字符串


XMPUtils.composeArrayItemPath(schemaNS, arrayName, itemIndex)

创建并返回数组项的路径表达式字符串,使用命名空间注册前缀,格式为:

schemaNS:arrayName[itemIndex]
参数类型说明
schemaNS模式命名空间字符串常量命名空间 URI 字符串
arrayName字符串数组属性名称字符串。可为通用路径表达式
itemIndex数字项的1基位置索引。使用 XMPConst.ARRAY_LAST_ITEM 引用数组最后一项,此时结果为 ns:arrayName[last()]

字符串


XMPUtils.composeFieldSelector(schemaNS, arrayName, fieldNS, fieldName, fieldValue)

创建并返回通过字段值选择替代项的路径表达式字符串,使用命名空间注册前缀,格式为:

schemaNS:arrayName[fieldNS:fieldName="fieldValue"]
参数类型说明
schemaNS模式命名空间字符串常量命名空间 URI 字符串
arrayName字符串数组属性名称字符串。可为通用路径表达式
fieldNS字符串字段命名空间 URI 字符串
fieldName字符串字段名称。须为简单 XML 名称
fieldValue任意所需字段值

字符串


XMPUtils.composeLanguageSelector(schemaNS, arrayName, locale)

创建并返回通过语言选择替代文本数组项的路径表达式字符串,使用命名空间注册前缀,格式为:

schemaNS:arrayName[@xml:lang="langName"]

:::注意

这些函数提供额外逻辑来选择适当语言并与x-default值保持一致。本函数提供显式语言的路径表达式,且仅针对该语言。 :::

参数类型说明
schemaNS模式命名空间字符串常量命名空间 URI 字符串
arrayName字符串数组属性名称字符串。可为通用路径表达式
locale字符串所需语言的 RFC3066 语言代码字符串

字符串


XMPUtils.composeStructFieldPath(schemaNS, structName, fieldNS, fieldName)

创建并返回结构字段的路径表达式字符串,使用命名空间注册前缀,格式为:

schemaNS:structName/fieldNS:fieldName
参数类型说明
schemaNS模式命名空间字符串常量命名空间 URI 字符串
structName字符串结构属性名称字符串。可为通用路径表达式
fieldNS字符串字段命名空间 URI 字符串
fieldName字符串字段名称。须为简单 XML 名称

字符串


XMPUtils.composeQualifierPath(schemaNS, propName, qualNS, qualName)

创建并返回属性限定符的路径表达式字符串,使用命名空间注册前缀,格式为:

schemaNS:propName/?qualNS:qualName
参数类型说明
schemaNS模式命名空间字符串常量命名空间 URI 字符串
propName字符串属性名称字符串。可为通用路径表达式
qualNS字符串限定符命名空间 URI 字符串
qualName字符串限定符名称。须为简单 XML 名称

字符串


XMPUtils.duplicateSubtree(source, dest, sourceNS, sourceRoot, destNS, destRoot, options)

从源 XMPMeta 对象复制指定子树属性到目标 XMPMeta 对象

参数类型说明
sourceXMPMeta 对象源 XMPMeta 对象
destXMPMeta 对象目标 XMPMeta 对象
sourceNS模式命名空间字符串常量源命名空间 URI 字符串
sourceRoot字符串源子树根位置的属性名称字符串。可为通用路径表达式
destNS模式命名空间字符串常量目标命名空间 URI 字符串
destRoot字符串可选。目标子树根位置的属性名称字符串。可为通用路径表达式。默认为源根位置
options这些位标志常量的逻辑或:控制复制操作的选项标志。默认为 0
- XMPConst.APPEND_ALL_PROPERTIES - 包含内部和外部属性。默认仅复制外部属性。仅适用于顶层属性
- XMPConst.APPEND_REPLACE_OLD_VALUES - 用源对象值替换现有属性值。默认保留现有值。适用于所有层级属性
- XMPConst.APPEND_DELETE_EMPTY_VALUES - 若新值为空则删除属性


XMPUtils.removeProperties(xmpObj, schemaNS, propName, options)

XMPMeta 对象移除多个属性。

若同时提供命名空间和属性名称,移除外部属性(即使是别名)。若为内部属性,则需指定选项 XMPConst.REMOVE_ALL_PROPERTIES 才会移除。

若仅提供命名空间,移除该命名空间所有外部属性,可选移除所有内部属性。仅当指定 XMPConst.REMOVE_INCLUDE_ALIASES 时移除别名。

若均未提供,移除所有外部属性,可选移除所有内部属性。别名会隐式处理,因为关联的实际属性会被移除。

参数类型说明
xmpObjXMPMeta 对象要移除属性的对象
schemaNS模式命名空间字符串常量。可选命名空间 URI 字符串。若提供属性名称则必须提供
propName字符串可选。属性名称字符串。可为通用路径表达式
options这些位标志常量的逻辑或:控制删除操作的选项标志。默认为 0
- XMPConst.REMOVE_ALL_PROPERTIES - 移除内部和外部属性。默认仅移除外部属性。仅适用于顶层属性
- XMPConst.REMOVE_INCLUDE_ALIASES - 移除命名空间中定义的别名。若提供属性名称则无视此选项


XMPUtils.separateArrayItems(xmpObj, schemaNS, arrayName, arrayOptions, concatString)

catenateArrayItems() 返回的连接字符串更新 XMPMeta 对象中的单独数组项字符串。可识别多种分隔符,包括分号、逗号、制表符、回车、换行和多个空格。

参数类型说明
xmpObjXMPMeta 对象要分离项的对象
schemaNS命名空间 URI 字符串。参见模式命名空间字符串常量
arrayName字符串数组属性名称字符串。可为通用路径表达式。数组每项须为简单字符串值
arrayOptions这些位标志常量的逻辑或:控制如何从分离字符串更新数组属性的选项标志。默认为 0
- XMPConst.APPEND_ALL_PROPERTIES - 包含内部和外部属性。默认仅复制外部属性。仅适用于顶层属性
- XMPConst.APPEND_REPLACE_OLD_VALUES - 用源对象值替换现有属性值。默认保留现有值。适用于所有层级属性
- XMPConst.APPEND_DELETE_EMPTY_VALUES - 若新值为空则删除属性
- XMPConst.SEPARATE_ALLOW_COMMAS - 允许项值中包含逗号。若未指定,包含逗号的项(如”姓,名”)会被拆分为两个数组项
concatString字符串包含连接数组值的字符串,由 catenateArrayItems() 返回