XMLConnector 组件使应用程序能够访问通过 HTTP 返回或接收 XML 的任何外部数据源。连接外部 XML 数据源并为应用程序使用该数据源的参数和结果的最简单方法是指定架构,即在可绑定至的文档中标识数据元的 XML 文档的结构。可以通过“组件检查器”面板手动创建架构,也可以使用创作环境自动创建一个架构。
有关 XMLConnector 组件(包括其属性、方法和事件)的详细信息,请参阅XMLConnector 组件。
注意:创作环境接受要连接的外部 XML 文档的副本作为架构的模型。如果熟悉 XML 脚本撰写,您可以创建可用于生成架构的示例 XML 文件。
XMLConnector 组件具有以下参数:
direction 字符串,定义调用 trigger()
时要通过 HTTP 执行的操作的类型。send
、sendAndLoad
或 load
分别对应于 receive
、receive/send
和 send
。
ignoreWhite 布尔值,默认设置为 false
。如果将此参数设置为 true
,则仅包含空格的文本节点在分析过程中会被放弃。带有前导或尾部空格的文本节点不受影响。
multipleSimultaneousAllowed 布尔值,如果将此参数设置为 true
,它允许 trigger()
操作在另一个 trigger()
操作正在进行时启动。多个同时进行的 trigger()
操作可能不会按调用它们时的相同顺序完成。同时,Flash Player 可能会对同时进行的网络操作数目加以限制。此限制因版本和平台而异。如果将该参数设置为 false
,则 trigger()
操作不能在另一个操作正在进行时启动。
suppressInvalidCall
布尔值,如果将此参数设置为 true
,它会在数据参数无效时中止 trigger()
操作。如果将其设置为 false
,trigger()
操作将在需要时执行和使用无效数据。
URL 字符串,指向外部 XML 数据源。
XMLConnector 组件的典型工作流程如下所示。
注意:可以使用“导入示例架构”按钮使此过程自动化。
params
和 results
)从 XML 文档绑定到应用程序中可视组件的属性。例如,您可以连接到提供天气数据的 XML 文档,并将“地点”和“温度”数据元绑定到应用程序中的标签组件。指定城市的名称和温度在运行时即会出现在应用程序中。使用 XML 文档和数据绑定的关键在于导入架构(出现在“架构”面板中的数据结构),您可以稍后绑定到架构。
架构出现在“架构”选项卡中。
例如,名为 Animals.xml 的文件的架构如下所示:
这是 XML 文件的结构示意图。它表明 XMLConnector 组件的 results
属性是一个 XML 对象。该对象的根元素称为“Inventory”,它包含诸如“Vendor”、“Categories”等元素。“Vendor”元素包含一个名为“Name”的单一元素,它是字符串。类别字段包含一个名为“Birds”的元素,它包含属性 labelname
。“Birds”元素还包含一个名为“Birds”的对象数组。每个这些对象都具有两个属性:name
和 url
。它还包含一个名为关键字的单一元素,该元素包含属性 id
。
字符串和整数字段可以绑定到多种 UI 组件。数组字段“Birds”可以绑定到“列表”、“数据网格”或“组合框”组件,您也可以将 UI 组件直接绑定到数组内的字段。处理数据的应用程序的典型工作流程包括将数组从 XMLConnector 组件绑定到 DataSet 组件的 dataProvider
属性。在此方案下,数据集可用于管理数据。然后,可以使用数据绑定将数据集内的字段映射到任意 UI 组件。
如果提供给应用程序的 XML 数据的结构不是所需的格式,虚拟架构能让您在执行绑定时更改基础数据结构的解释方式。新的结构是使用 XPath 语句派生的。请参阅支持的 XPath 表达式。
例如,前面所述的 animals.xml 文件的架构(请参阅导入 XML 数据源的架构)定义了名为“禽类”的对象数组。每个对象包含两个字段(name
和 url
)。它们还包含带有一个名为 id
的字段的子元素。如果将“Birds”数组绑定到带有三个字段(name
、url
和 id
)的 DataSet 组件(使用 dataProvider
属性),则从该数组中返回的每一项都是使用以下算法构建的:
对于 XML 中的每一项:
该项目中不存在“ID”字段,因此,DataSet 组件的每个指定项目都有一个空白条目。
该解决方法将在“禽类”数组内的对象下创建一个新的架构字段。新的架构字段名为 id
。每个架构字段都具有一个名为 path
的属性,该属性接受指向 XML 文件中的数据的 XPath 语句。在这种情况下,XPath 语句将为 key/@id。当您进行到此过程的第二步时,数据绑定将为对象查找 id
字段。它会检查 path
属性,并使用 XPath 语句从 XML 文件中获取正确的数据。然后,将正确的数据传递到 DataSet 组件。有关手动创建架构的信息,请参阅在“架构”选项卡中处理架构(仅限于 Flash Professional)。
支持下列 XPath 表达式:
/A/B/C
A/B/C
/A/B/C
(节点选择:按名称)
/A/B/*
(节点选择:按通配符选择 /A/B 的所有子节点)
/*/*/C
(节点选择:选择恰好具有两个始祖的所有 C 节点)
/B[C]
(子节点语法;选择拥有 C 节点作为子项的所有 B 节点)
/B[@id]
(属性存在语法;选择具有名为 id
的属性的所有 B 节点)
/B[@id="A1"]
(属性值语法;选择具有值为 A1 的 id
属性的所有 B 节点)
=
AND
和 OR
值:
/B[@id=1
AND @customer="macromedia"]
注意:不支持以下运算符: "<", ">", "//".