Header:上图蓝色和浅绿色文字。

A header is a single line defining a mapping of the following value lines to the type system. A header applies to all processed value lines until the next header or until the end of file, whichever comes first. You can put any number of headers into a CSV file.

定义了接下来value line和type系统的映射关系。

格式:

mode type[modifier=value];attribute[modifier=value];attribute[modifier=value];attribute[modifier=value][;...];attribute[modifier=value]

方框里的modifier:Gives additional information for translating a value record to the mapped type attribute

例子:INSERT_UPDATE

category;code[unique=true];name[lang=de];name[lang=en];$supercategories;$thumbnail;description[lang=de];order

This header states that each following value line creates or updates a category instance, until another header occurs. 注意,大小写无关。

INSERT Address;firstname;owner(Principal.uid|AbstractOrder.code)
;Hans;admin
;Klaus;O-K2006-C0000-001

由|分隔开的语法叫alternative pattern.

When importing the first value line ;Hans;admin, the ImpEx extension searches all instances of the Principal type to verify if any instance exists where the uid attribute is set to admin.

Impex extension首先查找所有principal实例,看是否存在其uid属性值为admin的实例。

注意我们现在是试图插入Address数据,如果上述的搜索命中,则将Impex语句里的address值维护到搜索命中的admin Principal实例去。

If an instance exists (and there is, by platform default), the new instance of the Address type has its owner attribute set to a reference to that Principal type instance.

如果并没有Pricipal实例,其uid属性等于admin,那么进行第二轮搜索,根据AbstractOrder的code字段进行搜索。

Attribute modifier:

...;attribute[modifier=value,modifier=value,modifier=value];...
或者
...;attributemodifier=value[modifier=value];...

The value of the $catalog macro sets the catalog id. The value of the $version macro sets the version string of the catalog version to export.

$catalog=clothescatalog
$version=Staged

宏的实现:

$catalog=catalog(id)
$catalogVersion=catalogVersion($catalog,version)


注销
1k 声望1.6k 粉丝

invalid