特征表示

LandXML是一种基于XML的格式,因此所有特性都具有XML特定的格式属性,也具有LandXML特定的格式属性。

该表列出了特定于landxml的格式属性。

属性名称

内容

landxml_landxml_type

该特性所属的LandXML元素类型。在写入LandXML的特性中,这将是确定该特性应该被写入何种LandXML元素类型的第一个地方。可能的值是那些受支持的元素类型(如格式概述部分所述)。

landxml_retwall_offset_
以上

在表面特征上,决定如何解释几何上的垂直偏移。

landxml_retwall_offset_
正确的

在表面特征上,决定如何解释几何上的水平偏移。

landxml_element_id

标识此特性的属性。它用于跟踪LandXML文档中元素的层次结构。

landxml_parent_id

标识此特性的父特性的属性。它用于跟踪LandXML文档中元素的层次结构。

landxml_children_id

一个逗号分隔的值属性,用于标识该特性的子特性(通过landxml_element_id值)。它用于跟踪LandXML文档中元素的层次结构。

landxml_equipment_type

该属性确定用于调查的设备类型。仅在调查特征类型中发现。当前可能的值为“equipment_laser_details”,“equipment_instrument_details”,“equipment_gps_reciever_details”,“equipment_gps_antenna_details”。

特别是,landxml_element_id、landxml_parent_id和landxml_children_id共同提供关于原始LandXML文档中元素层次结构的信息。这些属性是记账属性,它们将信息存储在放置原始LandXML文档中元素的属性,但不是元素本身的属性。也就是说,没有与landxml_parent_id属性对应的元素或属性,而是将元素本身的位置记录在这些格式属性中。

作为使用这些属性的一个例子,考虑下面的LandXML片段

<包裹名="AirPorts"> <包裹名="AirPort_01"> <包裹名="Runways_01"/>  <包裹名="AirPort_02"> <包裹名="Runways_02"> <包裹名="Runway_02_01"/>   

这里我们看到一个包裹功能,它包含两个包裹功能,每个包裹功能依次包含一个单独的包裹功能,其中一个嵌入的包裹功能包含一个单独的包裹功能。将生成以下特性(为了清晰起见,省略了几何形状和无关属性)。

包裹名称:机场landxml_element_id: 1 landxml_children: 2、4包裹名称:AirPort_01 landxml_element_id: 2 landxml_parent_id: 1 landxml_children: 3包裹名称:Runways_01 landxml_element_id: 3 landxml_parent_id: 2包裹名称:AirPort_02 landxml_element_id: 4 landxml_parent_id: 1 landxml_children: 5包裹名称:Runways_02 landxml_element_id: 5 landxml_parent_id: 3 landxml_children: 6包裹名:Runway_02_01 landxml_element_id: 6 landxml_parent_id: 5

因此,在FME中,可以使用这些id来重建文档的原始结构。在阅读器中,每个特性的landxml_element_id都是唯一的,尽管编写器在使用这些属性来确定相关特性的层次结构时并不依赖于这种唯一性。写入器使用landxml_element_id和landxml_parent_id属性来确定目标数据的包含关系。在过滤或复制改变了由landxml_element_id和landxml_parent_id决定的关系的情况下,丢失的父元素或重复的元素id将导致使用默认容器。

请注意,虽然可以创建循环包含层次结构(例如,使用一个Parcel特性引用一个Parcel特性作为它的父特性,而后者反过来引用这个Parcel特性作为它的父母)。这将导致转换失败,并警告检测到循环关系。将检测到Self循环(在这种循环中,特性将自己称为父特性),父引用将更改为文档中的默认父特性。

在目前读取的功能类型中,只有Parcel/Parcel和CgPoints元素可以创建循环。包裹元素是包裹元素的容器,而包裹元素可以包含包裹元素。在CgPoints的情况下,一个CgPoints元素可以包含其他CgPoints元素。