用户属性

有关此对话框中的参数的信息,这些参数对于所有读者都是通用的,请参阅:

有关此对话框中所有写入程序共用的参数的信息,请参阅:

这个部分的 _def语句定义表的属性。

  • FME映射文件中指定的必须遵守以下规则:
    • 属性名大小写必须符合底层RDBMS数据库的约定和限制。在写入个人或文件地理数据库时,将保留大小写,但在写入企业地理数据库时,是否保留大小写取决于基础数据库(即,在Oracle中,属性名称将变为大写,而在ArcSDE 9.2或更高版本的Microsoft SQL Server中,将保留大小写)。
    • 属性名称必须遵守地理数据库的所有长度和字符限制。写入地理数据库时,有限制为30个字符。

      注:如果正在创建一个表,并且其中一个属性名称与地理数据库系统字段(即,对象ID或形状字段之一)冲突,则将为系统字段选择另一个名称并记录警告消息。

  • <属性名称>定义定义了类型并具有表单
    <属性类型>

支持的属性类型如下所示:

smallint(n)

此类型用于表示小于或等于n位的小整数值。

如果为该数据类型指定了无效的宽度,则FME将更正该值并输出一个警告,说明它已这样做。宽度的有效值介于1和5之间(含1和5)。

注:这仅适用于地理数据库SDE。它将表现在其他地理数据库中的常规Smallint。

整数

此类型用于表示32位整数值。

整数(n)

此类型用于表示具有小于或等于n个数字的整数值。

如果为此数据类型指定了无效宽度,则FME将纠正该值并输出它所做的警告。宽度的有效值位于1到10之间的含量。

注:这仅适用于地理数据库SDE。它的行为类似于其他地理数据库中的正则整数。

漂浮

此类型用于表示32位浮点值。

浮子(n,m)

此类型用于表示具有不超过n的精度的浮点值,并且不超过m的比例。

如果为该数据类型指定了无效的宽度和/或小数点,则FME将更正该值并输出一个警告,说明它已这样做。宽度的有效值介于1和6之间(含1和6)。小数的有效值介于0和宽度(含)之间。

注:这仅适用于地理数据库SDE。它的行为就像其他地理数据库中的常规浮点。

双倍的

此类型用于表示64位浮点值。

双(n,m)

此类型用于表示具有不超过n的精度的双值,并且不超过m的比例。

如果为此数据类型指定了无效的宽度和/或十进制,则FME将纠正值并输出警告说它已完成。宽度的有效值位于1至38之间。十进制的有效值在于0和宽度的值之间的值。

注:这仅适用于地理数据库SDE。它的行为就像其他地理数据库中的常规浮点。

布尔基

此类型用于表示布尔值。可能的值是真的错误的.

字符(n)

此类型用于表示长度不超过的字符值人物。FME将使用UTF-16编码读取和写入地理数据库。

日期

这用于存储和检索地理数据库中的日期信息。

当地理数据库读取器读取日期字段时,它将使用表单放置在FME功能中HHMMSS.,YYYYMMDD年,或yyyymmddhhmmss..时间部分使用24小时时钟指定。写入时,日期属性也必须是这三种形式中的一种。这些形式与所有其他FME日期兼容。

注:当地理数据库写入器创建一个新表时,除对象ID字段之外的所有字段将被定义为允许空值。

guid

这用于存储和检索地理数据库中的GUID。当地理数据库读取器读取GUID字段时,它将放置在FME功能中,而无需周围的括号。

地理数据库编写器将接受带或不带大括号的GUID值。

亚型

子类型允许您基于字段定义表的子分类。例如,一个名为可能有一个叫做的领域健康)状况它可以有值好的,坏的, 和悲惨的.在地理数据库中,该字段必须是某种整数类型,以便能够在其上创建子类型。

对于Geodatabase writer,在DEF行上使用以下语法创建新表时可以创建子类型

<属性名称>子类型(value1:value2:value3:..... valuen)

或者

<属性名称> subtype_codes(code1:val1:code2:val2:.... coden:Valn)

注:参数列表(即,括号之间的所有内容)必须是分离的,并且必须使用特殊的XML样编码进行编码。Workbench自动正确编码列表。您可以联系安全软件以获取帮助。亚搏在线

在第一种情况下,描述可以作为字符串提供描述,在这种情况下,地理数据库编写器以零开始地生成码。在第二种情况下,输入列表由成对的代码和相应的描述组成。

列表中的第一个代码将用作默认子类型代码。在仅指定描述的第一种情况下,为其创建的代码价值1将用作默认子类型代码。例如,如果def行指定如下

子类型代码(1:a:3:b:4:c:5:d)

然后1将用作默认代码(哪个映射到)。

创建子类型时应用以下限制:

  • 每个表只能拥有一个子类型。
  • 所有代码都必须是唯一且有效的整数。
  • 所有的值,描述对必须是独一无二的。
  • 不能向现有表中添加子类型。如果你这么做了def行将忽略线路定义,表将使用现有子类型,如果存在一个。如果表格上存在子类型,则将在其中进行比较def行定义和现有的子类型定义。如果它们不同,将记录警告消息。

写入功能时,子类型属性必须包含代码(由地理数据库存储为整数)。要提供描述而不是要素的代码,请使用特殊属性geodb_subtype_name.. 如果未指定子类型属性,则编写器将查找geodb_subtype_name.属性并将描述将描述转换为其相应的代码。看看写子类型和域名欲获得更多信息。

例子:

_def路\
类型BïU多段线\
条件子类型代码(0:好的:1:坏的:2:悲惨的) \
......... \
.........

域名

可以使用以下语法在def行中指定域:

<属性名称>范围\域(域名:Field_type.:min_val.:max_val)
<属性名称>coded_domain(domain_name.:Field_type.:姓名\u 1:value_1.:…..
姓名\n:value_n)

此语法用于与新字段一起创建新域。上面定义的域被添加到工作区和表的字段中。如果工作区中已存在域名,则会与现有定义进行比较。如果它们不同,将发出警告,并使用现有域。

注:参数列表(即,括号之间的所有内容)必须是分离的,并且必须使用特殊的XML样编码进行编码。Workbench自动正确编码列表。在映射文件或FME对象中手动编码参数列表,请参阅替换映射文件中的字符串在FME基础上在线帮助文​​件。您还可以联系安全软件以获取帮助。亚搏在线

例1:

要定义具有以下代码和浮动字段类型的代码和值的域:

代码

价值

1.2

Val1.

3.6

谷2,谷3

4.5

在这里测试“报价”

您将使用以下格式:

Coded_Domain(FloatCodeddom:Float:1.2:Val1:3.6:Val2 <逗号> Val3:4.5:
测试这里

要使用现有域,可以使用以下短语语法:

Range_Domain(Domain_Name)
编码域(域名)

如果在工作区中不存在域或未使用长语法(即,在本节开始时指定的语法)的域中未在其他地方定义错误,则会生成错误。

注:如果在翻译中多次引用相同的新域,则只需要在一个属性上指定长语法形式;所有其他实例都可以使用短表格。在映射文件或工作区中指定了长表单的属性无关紧要。

要在指定现有域时指定文本字段的长度,可以使用短语的以下变体:

编码域_名称:char

注:这个是应用FME的XML的方式逃避某些角色的结果。如果需要更多信息亚搏在线,请联系安全软件,请记住工作台在创建新域和子类型时自动执行此编码。

例如,

coded_domain(TextDomain.:char50)

必须注意:

  • 此简短语法的变体仅允许用于文本字段。
  • 由于ArcGIS允许文本字段仅具有编码值域,因此使用此字段类型Range_domain.将导致错误。
  • 如果没有为文本字段指定文本长度,即使用的语法为:

编码域(域名)

然后FME将插入254个字符的默认长度。

例2:

完整的DEF线示例如下所示:

geodatabase_mdb_out_def q1_line \
geodb_type geodb_polyline \
GEODB\ U DROP\ U表格是\
GEODB\ U TRUNCATE\ U表格编号\
geodb_object_id_name object_id \
geodb_object_id_name object_id \
GEODB\u OBJECT\u ID\u别名“OBJECT ID”\
geodb_shape_name形状\
GEODB\u形状\u别名形状\
geodb_config_keyword默认值\
geodb_feature_dataset“”\
geodb_grid {1} $(_ geodboutgrid1)\
GEODB_AVG_NUM_POINTS“”\
geodb_has_measures no \
geodb_has_z_values $(_ geodboutdimension)\
geodb_xorigin“”\
GEODBïu YORIGIN“”\
geodb_zorigin“”\
geodb_xyscale“”\
geodb_zscale“”\
大地基准比例尺\
geodb_oid整数
IGDS_CLASS DOUBLE \
IGDS_COLOR DOUBLE \
igds_graphic_group double \
Igds_style double \
igds重量加倍\
对象ID整数\
形长双\
属性范围\u域(intDomain:整数:0:100) \
testVal范围\u域(r域:双:0.5:25.5) \
textVal编码域(textVal:字符50:a:全部:b:坏)\
floatVal编码的\u域(floatCodedDom:浮动:1.2:val1:3.6:val2<逗号>val3:
4.5: test 引号 这里