xml-line

This is a composite builder that constructs a line geometry. The coordinates of the line may be given via the data-string parameter or via point geometries.

builder type: composite: accepts point geometries.

geometry constructed: line geometry.

data parameters:

Data Name

Value

Required/Optional

data-string

The string containing the coordinate data.

Range: String

Optional

axis-order

Indicates the axis order for a coordinate.

Range: A permutation of the numbers 1..N, where N is the number of dimensions.

Each number is separated by a comma “,”.

Default: “1,2,...,N”

Optional

dimension

The dimension of the coordinates.

Range: String representing a positive integer, or the “implicit” literal, which forces the dimension to be automaticallly determined even if axis-order is specified.

Default: When not specified the dimension will be automatically determined.

Optional

axis-separator

The string separating each axis of a coordinate in the data-string.

Range: String | “whitespace” this includes the tab, newline, and space characters.

Default: “,”

Optional

coord-separator

The string separating each coordinate in the data-string.

Range: String

Default:whitespace” this includes the tab, newline, and space characters.

Optional

decimal

The string representing the decimal point for each real number in the data-string.

Range: String

Default: “.”

Optional

coordinate-system

Specifies the coordinate system name. If the expression sequence for the coordinate-system evaluates to the empty string, then the coordinate system for the feature being built will not be set.

Range: String

Optional

demote-incomplete-geometry

A line is incomplete if it doesn’t have at least two distinct points, if only one coordinate is given then the line geometry builder will halt on error, setting this optional parameter to true allows a point geometry to be constructed when only one coordinate is given.

Range: false | true

Default: false

Optional

allow-incomplete-geometry

A line is incomplete if it doesn’t have at least two distinct points, setting this optional parameter to true allows a degenerate one coordinate line geometry to be constructed. Note that this parameter overrides the demote-incomplete-geometry parameter.

Range: false | true

Default: false

Optional

keep-duplicate-coordinates

Consecutive duplicate coordinates coming from the data-string or from geometry points are not be discarded when this parameter is set to true.

Range: false | true

Default: false

Optional

name

Specifies the geometry’s name.

Range: String

Optional

The document below contains two different type of line elements that we wish to map into FME features:

lines.xml

<?xml version="1.0"?>
<lines>
	<line1>
		0.0 0.0 1.0
		10.0 10.0 1.0
		20.0 30.0 1.0
	</line1>	
	<line2 coords="50.5,50.4 30.8,15.2 0,0"/>
</lines>

The following xfMap document uses the xml-line geometry builder:

xml_line.xmp

<?xml version="1.0"?>
<!DOCTYPE xfMap SYSTEM "xfMap.dtd">

<xfMap>
	<feature-map>
		<mapping match="line1">
			<feature-type> <literal expr="line1"/> </feature-type>
			<geometry activate="xml-line">
				<data name="data-string"> <extract expr="."/> </data>
				<data name="dimension"> <literal exptr="3"/> </data>
			</geometry>
		</mapping>

		<mapping match="line2">
			<feature-type> <literal expr="line2"/> </feature-type>
			<geometry activate="xml-line">
				<data name="data-string"> 
					<extract expr="@coords"/>
				</data>
			</geometry>
		</mapping>
	</feature-map>
</xfMap>

When the lines.xml and xml_line.xmp documents are fed into the XML Reader the following FME features are output:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Feature Type: line1'
Attribute: fme_geometry' has value fme_line'
Attribute: xml_type' has value xml_line'
Geometry Type: Line (2)
Number of Coordinates: 3 -- Coordinate Dimension: 3 -- Coordinate System: '
(0,0,1) (10,10,1) (20,30,1)
===========================================================================
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Feature Type: line2'
Attribute: fme_geometry' has value fme_line'
Attribute: xml_type' has value xml_line'
Geometry Type: Line (2)
Number of Coordinates: 3 -- Coordinate Dimension: 2 -- Coordinate System: '
(50.5,50.4) (30.8,15.2) (0,0)
===========================================================================