You are here: Popular FormatsXML (Extensible Markup Language) Reader/WriterxfMapMapping Rules (Optional Elements)Use-Mappings Element (limiting the active-search-set)
Use-Mappings Element (limiting the active-search-set)
The <use-mappings> element of an executing mapping rule changes the default contents of an active-search-set (see the Contents of an active-search-set (Default Contents)). It limits the contents of an active-search-set to the mapping rules listed under its <use> elements.
For example, if the following is a feature mapping rule:
<mapping match=”...”> ... <use-mappings> <use name=”mr1”/> <use name=”mr2”/> </use-mappings> </mapping>
Then, when the above feature mapping rule is executing, its feature-search-set (recall that the feature-search-set is the feature mapping rule’s active-search-set) will only contain the feature mapping rules mr1 and mr2.
Consider the following input XML document:
drawing.xml
<?xml version=”1.0”?> <drawing> <figure> <color type=”background”> <component type=”red”>0.949</component> <component type=”green”>0.357</component> <component type=”blue”>0.283</component> </color> <color type=”foreground”> <component type=”red”>0.532</component> <component type=”green”>0.899</component> <component type=”blue”>0.521</component> </color> </figure> </drawing>
The following xfMap document maps the above <figure> element into an FME feature:
drawing.xmp
<?xml version=”1.0”?> <!DOCTYPE xfMap SYSTEM ”xfMap.dtd”> <xfMap> <feature-map> <mapping match=”figure”> <feature-type> <literal expr=”figure”/> </feature-type> </mapping> </feature-map> <feature-content-map> <mapping match=”color”> <!-- The use-mappings element will limit the feature-search-set to contain only the mr_colors mapping rule. The value of the type attribute from the color element is passed as an argument to the mr_colors mapping rule.--> <use-mappings> <use name=”mr_colors”> <args> <arg> <extract expr=”@type”/> </arg> </args> </use> </use-mappings> </mapping> <mapping match=”component”> <-- The signature of this mapping rule has 1 named parameter called colorType, its value is passed as an argument from the mapping rule above. --> <signature name=”mr_colors”> <params> <param name=”colorType”/> </params> </signature> <attributes> <attribute> <name> <!-- Access the colorType parameter. --> <parmval expr=”colorType”/> <literal expr=”.”/> <extract expr=”@type”/> </name> <value> <extract expr=”.”/> </value> </attribute> </attributes> <-- NOTE: This mapping rule does not have a use-mappings element. When this mapping rule is executing the feature-search-set is set to its default contents. That is, all of the feature mapping rules defined under the feature-content-map --> </mapping> </feature-content-map> </xfMap>
The FME feature created is:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Feature Type: `figure' Attribute: `background.blue' has value `0.283' Attribute: `background.green' has value `0.357' Attribute: `background.red' has value `0.949' Attribute: `foreground.blue' has value `0.521' Attribute: `foreground.green' has value `0.899' Attribute: `foreground.red' has value `0.532' Attribute: `xml_type' has value `xml_no_geom' Geometry Type: Unknown (0) =======================================================================