XML 格式

可扩展标记语言 (XML) 是一种结构化数据交换语言。XML 不是一种固定的文件格式,而是一种用于定义协定格式的语言,以方便组成员交换数据。许多个人、组织和公司都使用 XML 传输产品信息、事务、清单数据以及其他业务数据。

XML 导入和导出的示例文件可从更新和发行说明页面下载。有关 XML 和 XML 资源链接的一般信息,请访问 Claris 网站

导入 XML

FileMaker Pro 支持使用 FMPXMLRESULT 语法进行 XML 导入。如果 XML 采用其他格式,则在导入过程中可以应用可扩展样式表语言转换 (XSLT) 样式表将 XML 转换为 FMPXMLRESULT 语法。

导出 XML

FileMaker Pro 可以用两种语法导出XML:FMPXMLRESULT 和 FMPDSORESULT。可以在导出过程中应用 XSLT 样式表,将以上两种语法中的任何一种转换为其他 XML 格式,或者转换为 HTML 或纯文本这样的其他格式。例如,利用 XML 导出,您可以创建数据驱动的 Web 页或使用自定义字段分隔符的文本数据文件。

注释  FileMaker Pro 中的 XML 导入导出功能使用名为 libxml2 的 XML 解析器和名为 libxslt 的 XSLT 样式表处理器。当您开发 XML 和 XSL 时,您可能希望使用基于 libxml2 和 libxslt 的解析器和处理器测试 XML 和 XSLT,例如 macOS 中分别可用的命令行工具 xmllint 和 xsltproc。有关更多信息,请参阅 libxml2libxslt 存储库或其他第三方位置。

XML FMPDSORESULT 语法

FMPDSORESULT 语法用于导出要使用层叠样式表或 XSL 进行格式设置的数据库。

注释  不要使用前置数值或单字节假名字符(例如“7”)命名数据字段。FMPDSORESULT 语法不允许将数值或单字节假名字符用作字段名标记,并且不会在浏览器中显示最终的 XML 文件。

在导出的 FMPDSORESULT 语法中,每个 ROW 元素都包含一些与要导出的字段名相对应的 FIELD 元素。

字段名中的空格或单冒号在元素名称中转换为下划线(例如 <FIRST_NAME>)。入口字段中的双冒号转换为英文句点(例如 <PHONE.PHONE_NUMBER>)。这样做是因为 XML 中保留冒号以指定命名空间,并且 XML 元素名称中不允许使用空格。

对于重复和相关字段,每个 FIELD 元素都将包含一个与每个重复或入口记录相对应的 DATA 元素。

XML 导出不支持导出容器字段数据。

由于 XML 的限制,只能从每个相关字段中导出一条记录。

XML FMPXMLRESULT 语法

FMPXMLRESULT 语法包含有关未采用 FMPDSORESULT 语法的数据库的其他信息,如记录数、字段类型和字段格式。XML 需要这些元素和属性才能正确验证。

如果需要 FMPXMLRESULT 语法提供的 METADATA,则请使用该语法。由于 FileMaker Pro 同时支持采用 FMPXMLRESULT 语法进行导入和导出,因此该格式对在 FileMaker Pro 文件之间传输数据很有用。

注释  FMPXMLRESULT 语法不太适合于层叠样式表 (CSS)。如果要将 CSS 与 XML 数据一起使用,请使用 FMPDSORESULT 语法。

在 FMPXMLRESULT 语法中,DATABASE 元素包含 NAME、RECORDS、DATEFORMAT、LAYOUT 和 TIMEFORMAT 属性。

DATEFORMAT 属性指定 XML 文档中的日期格式。

字段

完整格式

简短格式

yyyy(4 位)

yy(2 位)

mm(2 位)

M(1 位或 2 位)

dd(2 位)

d(1 位或 2 位)

TIMEFORMAT 属性指定 XML 文档中的时间格式。

字段

完整格式

简短格式

小时 (1-12)

hh(2 位)

h(1 位或 2 位)

小时 (1-24)

kk(2 位)

k(1 位或 2 位)

分钟

mm

 

ss

 

上午/下午

a

 

METADATA 元素包含一个或多个 FIELD 元素,每个元素包含一个字段/列的信息 - 包括数据库中定义的字段名、字段类型、由“是”或“否”表示的是否允许空字段(EMPTYOK 属性)以及重复值的最大数目(MAXREPEAT 属性)。字段类型的有效值包括 TEXT、NUMBER、DATE、TIME、TIMESTAMP 和 CONTAINER。

RESULTSET 元素包含指定 XML 中的记录数据的所有 ROW 元素。每个 ROW 元素包含结果集中某一行的字段/列数据 - 包括该行的记录 ID、该行的修改 ID 以及包含该行中一个字段/列的数据(其中的多个 DATA 元素表示重复或入口字段中的一个值)的 COL 元素。

XML 导出不支持导出容器字段数据。

由于 XML 的限制,只能从每个相关字段中导出一条记录。

COL 元素的顺序对应于 METADATA 元素中 FIELD 元素的顺序,例如,如果在 METADATA 中列出了“First Name”、“Last Name”和“Department”元素,则在 RESULTSET ROW 中也会以相同的顺序列出“Joe”、“Smith”和“Engineering”。

注释 

  • 在导入 XML 之前,FileMaker Pro 会使用基于 libxml2 的 XML 解析器和基于 libxslt 的 XSLT 处理器来应用 XSLT 样式表(如果已指定一个),以转换 XML 数据。如果出现错误消息,请纠正此错误并再次尝试导入。

  • 尽管导入的 XML 必须符合 FMPXMLRESULT 语法,但某些元素和属性在导入过程中将不被使用。下表定义了 XML 导入过程中使用的元素和属性,并列出了允许的属性默认值。在大多数情况下,属性值可能为 Null(如 TIMEFORMAT="")。此外,FMPXMLRESULT 元素应始终针对此语法声明 FileMaker 名称空间。

  • 元素

    属性

    是否在 XML 导入过程中使用

    默认值

    FMPXMLRESULT

     

    xmlns="http://www.filemaker.com/ fmpxmlresult"

    ERRORCODE

     

     

    PRODUCT

     

    " "

     

    NAME

    " "

     

    VERSION

    " "

     

    BUILD

    " "

    DATABASE

     

     

     

    NAME

    " "

     

    RECORDS

    " "

     

    DATEFORMAT

    " "

     

    TIMEFORMAT

    " "

     

    LAYOUT

    " "

    METADATA

     

     

        FIELD

     

     

     

    NAME

    " "

     

    TYPE

    “TEXT”、“DATE”、“NUMBER”、“TIME”、“TIMESTAMP”或“CONTAINER”

     

    EMPTYOK

    “YES”或“NO”

     

    MAXREPEAT

    " "

    RESULTSET

     

     

     

    FOUND

    " "

        ROW

     

     

     

    RECORDID

    " "

     

    MODID

    " "

        COL

     

     

          DATA