下定义映射规则
回想一下,当一个FME功能正在构建中(即,至少一个特征映射规则激活时),则特征搜索集只能包含来自?的映射规则
考虑以下输入XML文档,points2.xml:
points2.xml
一个映射规则R1,在
还记得吗,提取表达式目前不支持对匹配元素的子元素进行索引访问。所有R1现在能做的,是从第一个提取数据吗
在匹配的映射规则中定义的提取表达式
让R2下的映射规则
feature_content.xmp
当points2.xml和feature_content.xmp文档输入XML阅读器,FME功能输出如下:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
功能类型:
属性:颜色。blue' has value 0.596'
属性:颜色。green' has value 0.233'
属性:颜色。red' has value 0.324'
属性:xml_type'的值为xml_no_geom'
几何类型:未知(0)
=============================================================
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
功能类型:
属性:颜色。blue' has value 0.554'
属性:颜色。green' has value 0.948'
属性:颜色。red' has value 0.874'
属性:xml_type'的值为xml_no_geom'
几何类型:未知(0)
=============================================================
事情是这样的:
一步 |
特征搜索集内容(步骤后) |
映射规则状态Rp(步骤) |
|
1. |
特征搜索集初始化: 没有执行任何特征映射规则,因此定义了映射规则
|
{R1} |
R1:取消激活 R2:取消激活 |
2. |
XML阅读器读取<的开始标记。分>元素: feature-search-set中的映射规则没有匹配<分>元素。读者继续阅读的内容
|
{R1} |
R1:取消激活 R2:取消激活 |
3. |
XML阅读器读取<的开始标记。点>元素: 映射规则R1在特征搜索集中匹配<点>元素。R1被激活。R1也处于执行状态,因为
由于至少有一个特征映射规则被激活(即,R1),功能特征搜索集的内容将默认包含<feature-content-map >元素,在这种情况下,它只是R2。 |
{R2} |
R1:激活、执行 R2:取消激活 |
4. |
XML阅读器读取<的开始标记。颜色>元素: 映射规则R2在特征搜索集中匹配<颜色>元素。R2被激活。没有全新的FME功能,因为R2在<feature-content-map >元素。的
的特征映射规则R2有一个<属性>元素,R2为正在构造的FME特性提供这些属性。 |
{R2} |
R1:激活,暂停 R2:激活、执行 |
5. |
<颜色>元素结束标记被读取。这
特征搜索集不会改变,因为至少有一个已激活特征映射规则,这是R1。 |
{R2} |
R1:激活、执行 R2:取消激活 |
6. |
步骤4)和5)在接下来的两个<颜色>元素。 |
{R2} |
… |
7. |
<点>元素结束标记被读取。 R1取消激活。XML阅读器认为构建中的FME特性在什么时候完成R1不活跃,这是因为R1是一个特征映射规则在<特征映射>元素。 没有特征映射规则是激活的,所以映射规则定义在
|
{R1} |
R1:取消激活 R2:取消激活 |
8. |
步骤3)到步骤7)对于第二个<点>元素。 |
… |
… |
9. |
<分>元素结束标记被读取。XML阅读器已经读完了输入的XML文档。 |
{} |
R1:取消激活 R2:取消激活 |
考虑另一个例子:
points3.xml
0.324 0.233 0.596 0.874 0.948 0.554
feature_content2.xmp
当points3.xml,feature_content2.xmp将文档输入XML阅读器,输出以下FME特性:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
功能类型:myPoint_0”
属性:fill_color。蓝色的值是0。596
属性:fill_color。green' has value 0.233'
属性:fill_color。红色'值为0.324'
属性:位置。x '的值为10.0'
属性:位置。y '的值是0.0'
属性:outline_color。蓝色“有值1.0”
属性:outline_color。绿色“有价值1.0”
属性:outline_color。红色“值为1.0”
属性:xml_type'的值为xml_no_geom'
几何类型:未知(0)
=============================================================
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
功能类型:myPoint_1”
属性:fill_color。blue' has value 0.554"'
属性:fill_color。green' has value 0.948'
属性:fill_color。红色'值为0.874'
属性:位置。x '有值5.0'
属性:位置。y '有值5.0'
属性:outline_color。蓝色'有值0.5'
属性:outline_color。绿色'有值0.5'
属性:outline_color。红色'有值0.5'
属性:xml_type'的值为xml_no_geom'
几何类型:未知(0)
=============================================================