0

背景

Open XML 中的自定义属性存储在docProps/custom.xml如下所示(对于字符串):

<property fmtid="{xxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxxx}" pid="2" name="Key">
    <vt:lpwstr>Value</vt:lpwstr>
</property>

Open XML (v1) 规范没有提供很多关于fmtid和的细节pid。它仅在第 7.3.2.2 节中声明:

[PID] 将自定义属性与 OLE 属性唯一关联

问题

我对规范的模糊解释有几个问题:

  1. 什么是 OLE 属性?
  2. 是否可以在 custom.xml 中添加新的 OpenXML 属性而不存储 OLE 属性?
  3. 是否pid需要是唯一的,或者对于custom.xmlfmtid中的所有s 都是唯一的fmtid
  4. 为什么我自己在 custom.xml 中的属性没有出现在 Word 中?
4

1 回答 1

3

我将根据我通过实验发现的部分回答我自己的问题。

  1. OLE 属性是存储在备用文件流中的 NTFS 扩展属性。可以使用DSOfile.dll查看或修改它们。请参阅StackOverflow 问题。

  2. 可以通过修改 custom.xml 添加自定义属性。如果 fmtid 属于 Word 或加载的 COM 加载项,它们只会出现在 Word 的属性对话框中。

于 2011-07-17T13:01:12.110 回答