Schema

此扩展提供了一种描述GeoPackage中的表列的方法,比SQL表定义可以直接捕获的更详细。此扩展提供的信息可由应用程序使用,例如,以更用户友好的方式呈现GeoPackage中包含的数据或实现数据验证逻辑。该扩展最初设计用于描述的架构 功能 但它可以应用于任何具有用户定义列的用户定义表。

gpkg_extensions

要使用此扩展,请将以下行添加到此表中,如表1中所述。

表1: gpkg_extensions :宽度:20 15 15 40 10:标题-行:1

table_name

column_name

extension_name

definition

scope

gpkg_data_columns

NULL

gpkg_schema

http://www.geopackage.org/spec130/#extension_schema

read-write

gpkg_data_column_constraints

NULL

gpkg_schema

http://www.geopackage.org/spec130/#extension_schema

read-write

gpkg_data_columns

在此表中为需要进一步描述的每列添加一行,如表2中所述。

表2: gpkg_data_columns :宽度:20 80:标题-行:1

价值

table_name

user-defined table name

column_name

user-defined column name

name

column_name内容的人类可读标识符(例如,简称

title

column_name内容的人类可读的正式标题

description

COLUMN_NAME内容的人类可读描述

mime_type

如果为BLOB类型,则MIME类型为COLUMN_NAME

constraint_name

通过引用gpkg_data_column_constraint指定的列值约束名称(小写)。约束名称(见下文)

使用此扩展

定义枚举

要定义列的枚举,请将一行添加到 gpkg_data_column_constraints 对于表3中描述的每个枚举值。(其他值可以是 NULL 并将被忽略。)

表3: gpkg_data_column_constraints 对于枚举:宽度:20 80:标题行:1

价值

constraint_name

约束名称(小写)

constraint_type

enum

value

指定的区分大小写的值

description

枚举值的说明

定义范围

要定义列的数字范围,请将一行添加到 gpkg_data_column_constraints 如表4所述。(其他值可以是 NULL 并将被忽略。)

定义GLOB

A GLOB 是模式匹配表达式。您可以为列添加GLOB约束,以将值约束到与指定模式匹配的值。要执行此操作,请将一行添加到 gpkg_data_column_constraints 如表5所述。

表5: gpkg_data_column_constraints 对于范围:宽度:20 80:标题-行:1

价值

constraint_name

约束名称(小写)

constraint_type

glob

value

实际GLOB表达式

description

约束的描述

为Blob定义MIME类型

若要将BLOB列约束为特定的MIME类型,请将 mime_type 中该行的列 gpkg_data_columns 。( constraint_name 列为 gpkg_data_columns 可以是 NULL 以及 gpkg_data_column_constraints 表不适用。)

备注

此约束必须通过软件控制-SQLite不可能直接控制此约束。