副本另存为 XML

将打开的文件另存为 XML 格式的架构、布局和脚本。

选项 

  • 窗口名”指定了打开的文件的窗口名称。如果未指定,则使用当前窗口。

  • 目标文件”是创建 XML 文件的路径。请参阅创建文件路径

  • 包括分析工具的详细信息在 XML 文件中添加更多信息。

    此选项添加了 DDR_INFO 元素,该元素可提供额外的信息,这些信息对可用于分析自定义应用程序的第三方工具很有用。根据您的应用程序,此选项可以生成一个明显更大的 XML 文件。

  • 将每个布局对象的二进制数据保存在其节点下”将每个布局对象的二进制数据(例如图像)存储在 XML 文件中布局对象的节点下。这使一些工具更容易使用 XML,但可能会增加 XML 文件大小。

    取消选择此选项后,仅将引用存储在每个布局对象的节点下,该节点指向存储二进制数据的库数据目录。这有助于在多个布局对象使用相同的二进制数据时减小文件大小。

  • “以 JSON 格式指定选项”是一个 JSON 对象的文本表达式,允许你为该脚本步骤指定以下选项:

    • catalogs_included(JSON数组):一个包含目录名称字符串的数组,用于指定要包含在 XML 文件中的目录。如果省略此选项,则默认包含所有目录。

    • include_details(布尔值):此选项的用途与“包括分析工具的详细信息”相同,若指定此选项,则会覆盖“包括分析工具的详细信息”的值。

    • split_catalogs(布尔值):当值为 true 时,会为 catalogs_included 键中指定的每个目录创建一个单独的XML文件。当值为 false 或省略此选项时,则创建一个单一的 XML 文件。有关拆分目录行为的详细信息,请参见备注。

    • standalone_binarydata(布尔值):此选项的用途与“将每个布局对象的二进制数据保存在其节点下”相同,若指定此选项,则会覆盖“将每个布局对象的二进制数据保存在其节点下”的值。

    首次选择此选项时,FileMaker Pro 会自动生成一个模板计算,该计算返回上述所有键及其默认值,包括 catalogs_included 支持的所有目录名称,您可以随后对其进行自定义。

兼容性 

产品 是否支持
FileMaker Pro
FileMaker Go
FileMaker WebDirect
FileMaker Server
FileMaker Cloud
FileMaker Data API
自定义 Web 发布

原始版本 

18.0

说明 

此脚本步骤类似于选择“工具” > “另存为 XML”。请参阅记录数据库架构

您可以使用 “以 JSON 格式指定选项” 来自动化处理复杂场景,例如在需要动态指定要包含哪些目录,或将输出拆分为多个文件时。

注释 

  • 要执行此脚本步骤,用户或脚本必须具有完全访问权限。请参阅创建并编辑脚本

  • 此 XML 格式可能会从 FileMaker Pro 的一个版本变更为另一个版本。当您使用 XML 比较 FileMaker Pro 文件的两个版本时,请确保使用相同版本的 FileMaker Pro 将每个文件的副本另存为 XML。如果要结合使用 XML 与其他工具,请确保这些工具可以使用您的 FileMaker Pro 版本保存的 XML。

  • 对于 “以 JSON 格式指定选项”,当 split_catalogstrue 时:

    • “目标文件” 选项将被视为文件夹名称,并会为 catalogs_included 中指定的每个目录分别创建 XML 文件。如果该文件夹不存在,此脚本步骤将自动创建该文件夹。

    • 在拆分目录时,standalone_binarydata 键会自动设置为 true

    • 即使已在 catalogs_included 中指定,LibraryCatalog 的值也会被忽略。

  • 如果 “以 JSON 格式指定选项” 包含格式错误,该脚本步骤将返回错误代码 878(“选项的 JSON 数据包含格式化错误,无法解析” )。

示例 1 

将窗口名称为 Inventory 的打开的文件副本保存到 XML 文件。

复制
另存为 XML [ 窗口名:“Inventory” ; 目标文件:“Inventory.xml" ]

示例 2 

使用 “以 JSON 格式指定选项”,仅将当前窗口所指定文件中的脚本、布局和自定义函数保存至一个 XML 文件。

复制
设置变量 [ $jsonOptions ; 值:
  JSONSetElement ( "{}" ;
    [ "catalogs_included" ; JSONMakeArray (
      "ScriptCatalog LayoutCatalog CustomFunctionsCatalog" ;
      " " ; JSONString ) ; JSONArray ] ;
    [ "include_details" ; False ; JSONBoolean ] ;
    [ "split_catalogs" ; False ; JSONBoolean ] ;
    [ "standalone_binarydata" ; False ; JSONBoolean ]
  )
]

另存为 XML [ 窗口名称: ; 目标文件: "MyApp_Schema.xml" ; 包括分析工具的详细信息 ; 以 JSON 格式指定选项: $jsonOptions ]

请注意,尽管在脚本步骤中已选中 “包括分析工具的详细信息” 选项,但由于 “以 JSON 格式指定选项” 中的 include_details 键被设置为 False,该选项将被覆盖。

示例 3 

将脚本、布局和字段保存到名为“MyApp_SaveAsXML”的文件夹中的单独 XML 文件中。

复制
设置变量 [ $jsonOptions ; 值:
  JSONSetElement ( "{}" ;
    [ "catalogs_included" ; JSONMakeArray (
      "ScriptCatalog LayoutCatalog FieldCatalog" ;
      " " ; JSONString ) ; JSONArray ] ;
    [ "include_details" ; True ; JSONBoolean ] ;
    [ "split_catalogs" ; True ; JSONBoolean ]
  )
]

另存为 XML [ 窗口名称: ; 目标文件: "MyApp_SaveAsXML" ; 以 JSON 格式指定选项: $jsonOptions ]

这会创建一个名为“MyApp_SaveAsXML”的文件夹,其中包含三个文件:

  • MyApp_SaveAsXML_ScriptCatalog.xml
  • MyApp_SaveAsXML_LayoutCatalog.xml
  • MyApp_SaveAsXML_FieldCatalog.xml