元数据文档通常需要唯一的标识符以帮助列出并追踪项目状态及其元数据。这在将项目的元数据发布到元数据目录中时尤为重要。唯一标识符有助于将您的项目与其他读音相似的项目区分开。如果您要发布相同数据集的不同版本,则描述每个版本的元数据都应拥有单独的唯一标识符。
如果原始项目的元数据与已发布的元数据文档共享相同的唯一标识符,则之后可在原始项目或其元数据发生更改时更新已发布的副本。否则,重新发布项目的元数据时,您可能拥有许多相同文档的副本,其中一些副本比其他副本更新。如果要将信息发布到许多元数据目录中,则唯一标识符将有助于确保元数据的所有实例都与同一原始项目连接并可成功进行更新。
编辑元数据时,可以在 ArcGIS 元数据编辑器中为元数据标题下的详细信息页面上的项目提供内部使用的文件标识符。发布项目的元数据时,元数据目录很可能会将其他独立的唯一标识符分配给元数据目录内唯一的元数据。这将有助于避免两个具有相似系统的组织在分配内部标识符时生成的文档发生混淆。
如果元数据目录是 Geoportal,则已发布文档将为每个元数据文档分配一个全局唯一标识符 (GUID) 作为该元数据目录内的唯一标识符。您可以在将原始项目的元数据发布到 Geoportal 之前将 GUID 添加到其中,这样原始项目的元数据与发布的文档将立即互相连接。
添加唯一标识符
发布项目的元数据前,可以通过运行 XSLT 变换工具使用 <ArcGIS Installation Location>\Metadata\Stylesheets\gpTools\add unique identifier.xslt 文件向元数据中添加 GUID。这将以 XML 文件的形式在磁盘上创建项目元数据的副本。如果元数据中并未包含 GUID,则会向 XML 文件中添加一个。如果元数据中已经包含 GUID,则此 GUID 将保持不变。然后需要使用元数据导入程序工具将生成的包含 GUID 的 XML 文件保存至原始项目中。
如果使用地理处理模型或 Python 脚本发布元数据,则首先向项目的元数据中添加 GUID 尤其有用。例如,发布模型可先使用 XSLT 变换工具删除私人信息,然后使用元数据发布程序工具发布元数据,如下图所示。
在本例中,remove local storage info.xslt 文件用于在发布项目的元数据前从元数据中删除任意计算机名称。如果在运行此模型前元数据不具有唯一标识符,则元数据发布程序工具将尝试分配一个,但是此唯一标识符只会存储在由 XSLT 变换工具生成的中间 XML 文件中,而不是原始元数据中。此问题可通过以下方式进行更正:如果不存在 GUID,则首先添加一个 GUID,然后执行其他进程。
在这种情况下,您不会想要更改现有 GUID,因为之后会在元数据目录中出现同一元数据文档的两个不同副本。
更改唯一标识符
有时,您想要更改项目元数据中的现有标识符。例如,准备发布现有数据集的新版本时,可能需要执行此操作。在这种情况下,与上一版本相关联的项目应保持现有 GUID,且与新版本相关联的项目应获得一组新的 GUID。在这种情况下,元数据目录应拥有单独的描述每个版本的元数据文档。
如果使用元数据导入程序工具直接将元数据从一个项目复制到另一个项目,而不处理原始项目的元数据以删除任何唯一标识符(例如使用 remove unique identifiers.xslt 文件),您也需要更改现有标识符。稍后,当您意识到标识符不再是唯一时,可通过为每个受影响的项创建一个新的唯一标识符更正此问题。任何已发布的元数据文档的副本都必须进行更新,以包含新标识符。
通过使用相同的 add unique identifier.xslt 文件运行 XSLT 变换工具可替换现有的 GUID。但是,如果在工具的 XSLT 参数参数中提供字符串 overwrite,则将替换项目元数据中的所有现有 GUID。如果项目不含有 GUID,则会添加一个 GUID。
确保新的唯一标识符已分配到众多 ArcGIS 项目中最简单的方法是创建如上图所示的模型并在批处理模式下运行。