生成FME模式特性

当请求模式特性时,XML Reader可以切换给定的xfMap和XML输入文档。这可以通过模式类型< >元素的<生成>元素。

<生成>元素包含两个必需的属性xfMap文档属性。它们指定在请求XML Reader提供模式特性时要使用的xfMap和XML文档。换句话说,XML Reader可以通过使用<生成>元素。

考虑以下输入XML文档。(是一样的points1.xml为方便起见,请在此复制之前使用过的文件。)

points1.xml

<?xml version = " 1.0 " encoding = " utf - 8 " ?>   0.324 0.233 0.596      0.874 0.948 0.554    

下面的xfMap文档,generate_points1.xmp中映射的元素points1.xml文件进入FME功能:

generate_points1.xmp

<?xml version = " 1.0 " ?>  This xfMap document maps elements from the points1.xml document.   <生成xfMap = " generate_points1_schemas。xmp generate_points1_schemas.xml“文档= />                      <文字expr = "、" / > <提取expr = "。/颜色/绿色/ > <文字expr = "、" / > <提取expr = "。/color/blue"/>       <文字expr = "、" / > <提取expr = "。/位置[@y] " / > < /数据> < /几何> < /映射> < /特征映射> < / xfMap >

points1.xmlgenerate_points1.xmp输入XML Reader并请求FME数据特征,然后输出以下特征:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 功能类型:“点”属性(string):“颜色”值0.324,0.233,0.596的属性(字符串):“fme_geometry”价值“fme_point”属性(string):“数量”“0”属性值(字符串):“xml_type”有价值的xml_point几何类型:点坐标(1)号码:1——坐标尺寸:2——坐标系统:“(10,0 ) ================================================================== ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 功能类型:“点”属性(string):“颜色”值0.874,0.948,0.554的属性(字符串):“fme_geometry”价值“fme_point”属性(string):' 1 '属性“数量”值(字符串):“xml_type”有价值的xml_point几何类型:点坐标(1)数量:1——坐标尺寸:2——坐标系统:“(5,5 ) ==================================================================

请注意,generate_points1.xmpxfMap包含一个模式类型< >元素。它的子元素是<生成>元素的属性,xfMap文档属性,表示xfMap (generate_points1_schemas.xmp)及XML文件(generate_points1_schemas.xml),在请求XML Reader获取模式特性时使用。

generate_points1_schemas.xml文档包含一个<模式特性>元素;该元素描述了我们想要的FME数据特性的FME模式特性points1.xml文档通过generate_points1.xmpxfMap。

generate_points1_schemas.xml

<?xml version = " 1.0 " encoding = " utf - 8 " ?>       

The的用法<生成>元素要求用户知道模式特征在FME中是如何表示的。每个FME模式特性必须有一个fme_geometry {}属性,列出模式特性的可能几何类型。对于XML Reader,fme_geometry {}属性列表:xml_no_geomxml_textxml_pointxml_linexml_area,xml_text.如果一个主题或特征类型能够包含多个几何图形(例如,点、线和区域),则fme_geometry {}List属性应该包含3个成员:

fme_geometry {0} = " xml_point "
fme_geometry {1} = " xml_line "
fme_geometry {2} = " xml_area "

用户属性的类型,即属性的值,必须是预定义的FME类型之一:xml_char (#)xml_int16xml_int32xml_real32xml_real64xml_decimal (# #),或xml_boolean

以下xfMapgenerate_points1_schemas.xmp地图的<模式特性>元素进入FME特性。

<?xml version = " 1.0 " ?>  This xfMap document maps elements from the generate_points1_schema.xml document.                       

注意:没有什么规定xfMap生成_points1_schemas。XMP和generate_points1_schemas.xml文档应该采用上面示例的形式。使用元素时需要的是,XML Reader使用XML文档(在文档属性中指定)和xfMap(在xfMap属性中指定)构造的FME特性必须符合FME模式特性的定义。构造的FME模式特性必须包含一个fme_geometry{}列表属性,并且为特性定义的属性的值必须等于FME类型之一:xml_char(#)、xml_int16、xml_int32、xml_real32、xml_real64、xml_decimal(#、#)或xml_boolean。

元素中的document属性可以使用特殊值#dataset,该值指示XML Reader将给定的输入XML文档保存为用于生成FME模式特性的文档。

例子:

模式类型< > <生成xfMap = "模式。数据集xmp "文档= " # " / > < /模式类型>

#self标记可以用于元素中的xfMap属性。这指示XML Reader使用当前的xfMap来生成FME模式特性。使用#self允许xfMap在不显式知道文件名的情况下引用自己。

例子: