用户属性
有关此对话框中的参数的信息,这些参数对于所有读者都是通用的,请参阅:
有关此对话框中所有写入程序共用的参数的信息,请参阅:
这个部分的
语句定义表的属性。
- 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.属性并将描述将描述转换为其相应的代码。看看写子类型和域名欲获得更多信息。
例子:
类型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
注:这个
例如,
coded_domain(TextDomain.:char
必须注意:
- 此简短语法的变体仅允许用于文本字段。
- 由于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:字符
floatVal编码的\u域(floatCodedDom:浮动:1.2:val1:3.6:val2<逗号>val3:
4.5: test
引号
)