电子名片输出格式通用规范
1 电子名片输出格式
1.1 电子名片文件内容
本标准定义的电子名片输出格式文件内容参考vCard3.0规范,每个vCard对象均以BEGIN:VCARD开始,以END:VCARD结束。一个电子名片文件包含一个或多个vCard对象,文件扩展名为vcf或vcard。
从存储格式、交换格式或解析方式上说,vCard是包含了一个或多个vCard对象的数据流。单个的vCard定义,可以从vCard数据流中识别并进行语法分析。vCard数据流的表现形式可与文件系统、档案管理组成单元形式相一致,也可存在于两个网络终端之间的网络连结,或任何其他的可对字节流解释抽象的数字传输系统。
从概念上讲,vCard写入器指创建vCard数据流的软模块,vCard读入器则为解释vCard数据流的软模块,vCard读入器和写入器,既可集成实现,也可分开应用。至于如何实现这些读写过程,则超出本标准。
1.1.1 vCard对象所含内容
从逻辑上说,每个vCard对象是单个或多个属性的集合,每个属性具有唯一的属性名。多个属性可以在vCard对象内形成属性组。例如,电话号码和注解可以归为一组,以保持对这个电话的注释。除了属性分组,一个vCard对象还能包括其他的、嵌套vCard对象,这一特点使vCard可以记录和某人或对象相关的其他人或对象。此外,还可以描述由多个vCard对象组成的分发列表或工作组。
1.2 编码特征
1.2.1 电子名片对象
电子名片数据流可以包括一至多个电子名片对象。数据流内的单个名片对象由名片分隔符:
[group "."] "BEGIN" ":" "VCARD" 1*CRLF
开始,这个前导字串必须作为数据流或某行中的第一个字符串。
名片对象的结束,必须是:名片对象开始行后面某行,其首位字符段出现
[group "."] "END" ":" "VCARD" 1*CRLF
的特征字符串。
1.2.2 属性行
每个电子名片表示对象基本组成单位是属性行。每个属性行则由属性名、属性参数列表、属性取值三部分组成,其中属性名与属性参数之间用分号隔开,属性名与属性值之间则用冒号隔开。按照RFC 822所定义的语法规范,属性行可以表现为如下形式:
PropertyName [‘;‘ PropertyParameters] ’:‘ PropertyValue
示例:EMAIL;TYPE=internet:jqpublic@xyz.dom1.com
属性行可以包括一行或多行文本。属性名和属性参数名是预定义好的、大小写非敏感的字符串。
属性值可以由属性参数列表进一步分类,属性参数列表由一系列的属性参数表达式组成,表达式之间由分号“;”进行分隔,属性参数表达式可以形式为:“name=value”,也可以直接取为参数值字串,但要求取值意义明确,不得有歧义性。
1.2.3 属性参数
1.2.3.1 编码
电子名片对象的默认编码是8位, 但可以用属性参数“ENCODING”单独指定。
1.2.3.2 语言
可以由属性参数 “LANGUAGE”确定。这个属性参数值是一个与RFC 1766规范一致的字串,以作为语言标识。这个属性参数一般可用于任何属性,但对于属性如: PHOTO, LOGO, SOUND, TEL,可能没有意义。汉语的取值可以为zh-CN、 zh-TW、zh-SG或zh-HK。
示例 :ADR;LANGUAGE=zh-CN:…
示例 :ADR;LANGUAGE=zh-TW:…
对于其他的属性语句中的LANGUAGE参数取值,指定的中文语言,其作用域仅限于这个参数表达式所在的属性行。
1.2.3.3 字符集
字符集由字符集属性参数 “CHARSET”取值确定。这个属性参数只能出现在头信息的Content-Type字段中,规定整个名片对象内的属性取值,而不能出现在其他位置。
任何在IANA(Internet Assigned Numbers Authority)上登记的所有汉字的字符集,都可以作为该参数取值。作为中文可能的字符集,主要有:GB12345,GB13000.1,GB18030等。
1.2.4 属性值类型
属性值类型详见表1:
表1 属性值类型
类型 |
意义 |
Text |
可读文本,其中的逗号和分号前需加反斜线转义。 |
Uri |
表示所引用的外部值,其定义见RFC 1738。 |
date、time、date-time、utc-offset |
日期、时间,其定义见ISO 8601标准。 |
Boolean |
布尔值 |
Integer |
以十进制表示的有符号整数,默认为正整数。 |
Float |
实数,默认为正实数。 |
1.3 vCard格式
本格式包括两个部分:预定义属性和基本属性。
1.3.1 预定义属性
1.3.1.1 开始
表2 “开始“属性的说明
标签 |
BEGIN |
名称 |
开始 |
用途 |
表示一个内容实体的开始,BEGIN属性的值必须是”VCARD”。 |
示例 |
BEGIN:VCARD |
1.3.1.2 结束
表3 “结束“属性的说明
标签 |
END |
名称 |
结束 |
用途 |
表示一个内容实体的结束,END属性的值必须是”VCARD”。 |
示例 |
END: VCARD |
1.3.1.3 来源名称
表4 “来源名称“属性的说明
标签 |
NAME |
名称 |
来源名称 |
用途 |
如果在内容中出现NAME属性,那么它的值是一个可以显示的,描述vCard来源的文本。 |
编码 |
8bit |
取值 |
一个text值 |
示例 |
NAME:王刚的名片信息 |
1.3.1.4 规范
表5 “规范“属性的说明
标签 |
PROFILE |
名称 |
规范 |
用途 |
用于表示该规范为VCARD规范。 |
备注 |
如果出现PROFILE属性,那么它的值必须是“VCARD”。 |
示例 |
PROFILE:vCard |
1.3.1.5 出处
表6 “出处“属性的说明
标签 |
SOURCE |
名称 |
出处 |
用途 |
如果包含SOURCE类型,它的值提供一些关于如何找到vCard源的信息。 |
编码 |
8bit |
取值 |
一个uri值 |
示例 |
SOURCE;CONTEXT=LDAP:ldap://ldap.host/cn=Babs%20Jensen, %20o=Babsco,%20c=US |
1.3.2 基本属性
1.3.2.1 个人标识属性
1.3.2.1.1 格式化名称
表7 “格式化名称“属性的说明
标签 |
FN |
名称 |
格式化名称 |
用途 |
vCard对象的格式化名称,每个vCard对象均需包含该属性。 |
编码 |
8bit |
取值 |
一个text值 |
备注 |
该属性遵循GB/T 16264.6-2008公共名属性的语义 |
示例 |
FN:王刚 |
1.3.2.1.2 名称
表8 “名称“属性的说明
标 签 |
N |
名 称 |
名称 |
用 途 |
表示这个vCard对象名称的组成部分,每个vCard对象均需包含该属性。 |
编 码 |
8bit |
取 值 |
一个结构化的text值 |
备 注 |
一个结构化的text值,各个组成部分可以用分号分隔,每个组成部分内部可以用逗号分隔。这个属性值的第一个字段为姓氏,第二个字段为人名,第三个字段为本人的英文名称或拼音注释,第四个字段为学位,第五个字段可以表示为职称、荣誉头衔、尊称等多种名称要素。其中第三、四、五字段可有可无,亦可以只有一个字段,但分隔符(即分号";")不能少。 |
示 例 |
N:王;刚;;; N:Public;John;Quinlan;Mr.;Esq. |
1.3.2.1.3 别名
表9 “别名“属性的说明
标 签 |
NICKNAME |
名 称 |
别名 |
用 途 |
指定vCard对象的别名。 |
编 码 |
8bit |
取 值 |
一个或多个用逗号分隔的text值 |
备 注 |
|
示 例 |
NICKNAME:小马 |
1.3.2.1.4 图像
表10 “图像“属性的说明
标 签 |
PHOTO |
名 称 |
图像 |
用 途 |
vCard对象的图像信息 |
编 码 |
如果使用二进制数据表示图片信息,那么需使用ENCODING=b;如果是引用外部的URI值,则编码为8 bit,此时无需ENCODING参数。 |
取 值 |
默认为二进制图像数据,也可为指示外部图像数据的uri值。 |
备 注 |
通过属性参数TYPE指定图像格式。它的值应为IANA注册的格式,或者是一种非标准的格式。 |
示 例 |
PHOTO;ENCODING=b;TYPE=JPEG:MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcN AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0
PHOTO;VALUE=uri:http://www.abc.com/pub/photos/jqpublic.gif |
1.3.2.1.5 生日
表11 “生日“属性的说明
标 签 |
BDAY |
名 称 |
生日 |
用 途 |
指定了名片个体的出生日期 |
编 码 |
8bit |
取 值 |
默认为一个date值,也可为一个date-time值。 |
备 注 |
|
示 例 |
BDAY:1996-06-15 |
1.3.2.2 邮政地址属性
1.3.2.2.1 邮递地址
表12 “邮递地址“属性的说明
标 签 |
ADR |
名 称 |
邮递地址 |
用 途 |
是一个组合,用来表示vCard对象的邮递地址信息 |
编 码 |
8bit |
取 值 |
用分号分开的结构化的text值 |
备 注 |
该结构化的text值由一系列用分号分隔的地址子部分组成。这些子部分必须按着如下的顺序排列:邮政信箱,扩充地址,街道地址,当地地址,所处地区,邮政编码,国家名称。当某些子部分没有时,相应的分隔符仍需保留。其中,一个子部分可以包括多个值,用逗号分隔。 可以通过属性参数TYPE指定邮递地址的类型。这个属性参数可以选取以下的值: dom:国内地址 intl:国际地址(默认) postal:邮政投递地址(默认) parcel:包裹投递地址(默认) home:家庭投递地址 work:工作投递地址(默认) pref:首选的地址(当有多个地址时) |
示 例 |
ADR; TYPE=dom,home,postal,parcel:;;街道地址;深圳;广东;433330;中国 |
1.3.2.2.2 邮寄标签
表13 “邮寄标签“属性的说明
标 签 |
LABEL |
名 称 |
邮寄标签 |
用 途 |
用于指定与邮递地址对应的格式化文本 |
编 码 |
8bit |
取 值 |
一个text值 |
备 注 |
可以通过属性参数TYPE指定邮递地址的类型。这个属性参数可以选取以下的值: dom:国内地址 intl:国际地址(默认) postal:邮政投递地址(默认) parcel:包裹投递地址(默认) home:家庭投递地址 work:工作投递地址(默认) pref:首选的地址 和ADR不同的是 ADR的值是用分号分隔的数据,而LABEL就是一个格式化的文本。 |
示 例 |
LABEL;TYPE=dom,home,postal,parcel:海淀北大街123号\,海淀区\,北京\,100080 |
1.3.2.3 通信地址属性
1.3.2.3.1 电话
表14 “电话“属性的说明
标 签 |
TEL |
名 称 |
电话 |
用 途 |
指定一个电话号码 |
编 码 |
8bit |
取 值 |
一个phone-number值,原则上应依据GB/T 16264.6电话号码属性规定 |
备 注 |
可以通过属性参数TYPE指定电话的类型。这个属性参数可以选取以下的值: home:家庭电话 msg:支持语音留言功能的电话 work:工作电话 pref:首选的电话 voice:语音电话(默认) fax: 传真号码 cell: 蜂窝式移动电话 video: 视频电话 pager: 寻呼机号码 bbs: 公告板服务号码 modem: 连接了调制解调器的电话号码 car: 车载电话 isdn: 开通了ISDN服务的电话号码 pcs: 个人通信服务电话 assistant: 助理电话 telegraph: 电报电话 tty/tdd: tty/tdd电话 |
示 例 |
TEL;TYPE=work,voice,pref:++86-132-666-1234 |
1.3.2.3.2 电子邮件
表15 “电子邮件“属性的说明
标 签 |
|
名 称 |
电子邮件 |
用 途 |
表示一个电子邮件地址 |
编 码 |
8bit |
取 值 |
一个text值 |
备 注 |
可以通过属性参数TYPE指定电子邮件地址的类型。这个属性参数可以选取以下的值: internet:internet类型地址(默认) x400:X.400类型地址 pref:首选的电子邮件地址(当有多个地址时) tlx:表示电报电话 |
示 例 |
EMAIL;TYPE=internet:jqpublic@xyz.dom1.com |
1.3.2.3.3 电子邮件软件
表16 “电子邮件软件“属性的说明
标 签 |
MAILER |
名 称 |
电子邮件软件 |
用 途 |
指明vCard对象中的个人所使用的电子邮件软件类型 |
编 码 |
8bit |
取 值 |
一个text值 |
备 注 |
|
示 例 |
MAILER:PigeonMail 2.1 |
1.3.2.4 地理属性
1.3.2.4.1 时区
表17 “时区“属性的说明
标 签 |
TZ |
名 称 |
时区 |
用 途 |
表示时区信息 |
编 码 |
8bit |
取 值 |
缺省为一个utc-offset值,也可以是一个text值 |
备 注 |
|
示 例 |
TZ:-05:00 TZ;VALUE=text:-05:00\;北京时间 |
1.3.2.4.2 经纬度
表18 “经纬度“属性的说明
标 签 |
GEO |
名 称 |
经纬度 |
用 途 |
表示地理位置信息 |
编 码 |
8bit |
取 值 |
一个由两个用分号分隔的float值所构成的结构化的值 |
备 注 |
纬度在前,经度在后。 |
示 例 |
GEO:37.386013;-122.082932 |
1.3.2.5 组织机构或单位属性
1.3.2.5.1 头衔
表19 “头衔“属性的说明
标 签 |
TITLE |
名 称 |
头衔 |
用 途 |
指定与名片对象相关的个人在组织内的工作头衔,职位或作用。 |
编 码 |
8bit |
取 值 |
一个text值 |
备 注 |
基于 GB/T 16264.6标准中有关 TITLE属性定义 |
示 例 |
TITLE:研发经理 |
1.3.2.5.2 业务类别
表20 “业务类别“属性的说明
标 签 |
ROLE |
名 称 |
业务类别 |
用 途 |
指定组织系统内电子名片对象所属的角色、职业或业务类别。 |
编 码 |
8bit |
取 值 |
一个text值 |
备 注 |
基于GB/T 16264标准中的业务类别解释属性 |
示 例 |
ROLE:行政管理 |
1.3.2.5.3 徽标
表21 “徽标“属性的说明
标 签 |
LOGO |
名称 |
徽标 |
用途 |
表示公司logo,是一个图像信息 |
编码 |
binary 或 8bit,如果使用二进制数据表示图片信息,那么需使用ENCODING=b。 |
取值 |
默认为二进制图像数据,也可为指示外部图像数据的uri值。 |
备注 |
通过属性参数TYPE指定图像格式。它的值应为IANA注册的格式,或者是一种非标准的格式。 |
示例 |
LOGO;VALUE=uri:http://www.abc.com/pub/logos/abccorp.jpg LOGO;ENCODING=b;TYPE=JPEG:MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcN AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0 |
1.3.2.5.4 代理
表22 “代理“属性的说明
标签 |
AGENT |
名称 |
代理 |
用途 |
指定代表与vCard对象相关的个人或资源的另一个个体的信息 |
编码 |
8bit |
取值 |
默认为一个vCard值,也可为一个text值或uri值。 |
备注 |
这个属性代表着一个公司的地区性负责人、助理、或秘书职位。代理属性的主要特征是它表示一个具有独立地址的个人或事物。 |
示例 |
AGENT:BEGIN:VCARD\nFN:Joe Friday\nTEL:+1-919-555-7878\n TITLE:Area Administrator\, Assistant\n EMAIL\;TYPE=INTERN\n ET:jfriday@host.com\nEND:VCARD\n |
1.3.2.5.5 组织
表23 “组织“属性的说明
标 签 |
ORG |
名称 |
组织 |
用途 |
表示一个组织机构或单位的名称 |
编码 |
8bit |
取值 |
一个由分号分隔的子部分组成的结构化text值 |
备注 |
基于GB/T 16264.6组织名属性及组织下级单位属性。这个属性值包括的各级组织成分,用分号分隔。各级组织成分,主要指组织名称(第一个字段)、组织下级单位(第二个字段)、更下级的单位名称(第三个字段),依此递推。 |
示例 |
ORG:汉王科技;研发中心;OCR软件部 |
1.3.2.6 解释性信息属性
1.3.2.6.1 类别
表24 “类别“属性的说明
标签 |
CATEGORIES |
名称 |
类别 |
用途 |
vCard的应用分类信息 |
编码 |
8bit |
取值 |
一个或多个用逗号分隔的text值 |
备注 |
|
示例 |
CATEGORIES:因特网,信息技术 |
1.3.2.6.2 注释
表25 “注释“属性的说明
标签 |
NOTE |
名称 |
注释 |
用途 |
vCard对象相关的补充信息或注释 |
编码 |
8bit |
取值 |
一个text值 |
备注 |
基于GB/T 16264.6描述属性定义 |
示例 |
NOTE:注释信息. |
1.3.2.6.3 产品ID
表26 “产品ID“属性的说明
标签 |
PRODID |
名称 |
产品ID |
用途 |
指定创建vCard对象的产品的ID |
编码 |
8bit |
取值 |
一个text值 |
备注 |
生成方法参见GB/T 15537 |
示例 |
PRODID: 12312784-974320-819738238730-8634 |
1.3.2.6.4 最近修正时间
表27 “最近修正时间“属性的说明
标签 |
REV |
名称 |
最近修正时间 |
用途 |
表示出当前vCard的最近修正时间 |
编码 |
8bit |
取值 |
默认为一个date-time值,也可为一个date值。 |
备注 |
|
示例 |
REV:1995-10-31T22:27:10Z REV:1997-11-15 |
1.3.2.6.5 排序名称
表28 “排序名称“属性的说明
标签 |
SORT-STRING |
名称 |
排序名称 |
用途 |
指定姓氏或名称以用于对FN和N属性排序 |
编码 |
8bit |
取值 |
一个text值 |
备注 |
|
示例 |
FN:Rene van der Harten N:van der Harten;Rene;J.;Sir;R.D.O.N. SORT-STRING:Harten |
1.3.2.6.6 声音
表29 “声音“属性的说明
标 签 |
SOUND |
名称 |
声音 |
用途 |
指定vCard的数字声音信息,缺省是指vCard对象的name属性的发音信息 |
编码 |
binary 或 8bit,如果使用二进制数据表示声音信息,那么需使用ENCODING=b。 |
取值 |
默认为二进制声音数据,也可为指示外部声音数据的uri值。 |
备注 |
可以通过属性参数TYPE指定采用的声音的格式。它的值应为IANA注册的格式,或者是一种非标准的格式。 |
示例 |
SOUND;TYPE=BASIC;VALUE=uri:CID:JOHNQPUBLIC.part8.19960229T0800 00.xyzMail@host1.com SOUND;TYPE=BASIC;ENCODING=b:MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcN AQEEBQAwdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENvbW11bm ljYXRpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0 |
1.3.2.6.7 唯一标识符
表30 “唯一标识符“属性的说明
标签 |
UID |
名称 |
唯一标识符 |
用途 |
指定一个标识该vCard相关的个人或资源的全球唯一标识符 |
编码 |
8bit |
取值 |
一个text值 |
备注 |
生成方法参见GB/T 15537 |
示例 |
UID: 49878357-347530-347093847304-8347 |
1.3.2.6.8 统一资源定位器
表31 “统一资源定位器“属性的说明
标签 |
URL |
名称 |
统一资源定位器 |
用途 |
指定该vCard相关的网址 |
编码 |
8bit |
取值 |
一个uri值 |
备注 |
|
示例 |
URL:http://www.hanwang.com.cn |
1.3.2.6.9 版本
表32 “版本“属性的说明
标签 |
VERSION |
名称 |
版本 |
用途 |
指定该vCard所使用的vCard规范的版本 |
编码 |
8bit |
取值 |
一个text值 |
备注 |
|
示例 |
VERSION:3.0 |
1.3.2.7 名片安全属性
1.3.2.7.1 访问级别
表33 “访问级别“属性的说明
标签 |
CLASS |
名称 |
访问级别 |
用途 |
指定vCard对象的访问级别 |
编码 |
8bit |
取值 |
一个text值 |
备注 |
访问级别需要参考目录服务的访问级别 |
示例 |
CLASS:PUBLIC CLASS:PRIVATE CLASS:CONFIDENTIAL |
1.3.2.7.2 公用密钥
表34 “公用密钥“属性的说明
标 签 |
KEY |
名称 |
公用密钥 |
用途 |
指定vCard的公共钥匙值(加密解密时使用)或者是授权认证 |
编码 |
binary 或 8bit |
取值 |
默认为二进制数据,也可为text值。 |
备注 |
|
示例 |
KEY;ENCODING=b:MIICajCCAdOgAwIBAgICBEUwDQYJKoZIhvcNAQEEBQA wdzELMAkGA1UEBhMCVVMxLDAqBgNVBAoTI05ldHNjYXBlIENbW11bmljYX Rpb25zIENvcnBvcmF0aW9uMRwwGgYDVQQLExNJbmZvcm1hdGlvbiBTeXN0 ZW1zMRwwGgYDVQQDExNyb290Y2EubmV0c2NhcGUuY29tMB4XDTk3MDYwNj E5NDc1OVoXDTk3MTIwMzE5NDc1OVowgYkxCzAJBgNVBAYTAlVTMSYwJAYD VQQKEx1OZXRzY2FwZSBDb21tdW5pY2F0aW9ucyBDb3JwLjEYMBYGA1UEAx MPVGltb3RoeSBBIEhvd2VzMSEwHwYJKoZIhvcNAQkBFhJob3dlc0BuZXRz Y2FwZS5jb20xFTATBgoJkiaJk/IsZAEBEwVob3dlczBcMA0GCSqGSIb3DQ EBAQUAA0sAMEgCQQC0JZf6wkg8pLMXHHCUvMfL5H6zjSk4vTTXZpYyrdN2 dXcoX49LKiOmgeJSzoiFKHtLOIboyludF90CgqcxtwKnAgMBAAGjNjA0MB EGCWCGSAGG+EIBAQQEAwIAoDAfBgNVHSMEGDAWgBT84FToB/GV3jr3mcau +hUMbsQukjANBgkqhkiG9w0BAQQFAAOBgQBexv7o7mi3PLXadkmNP9LcIP mx93HGp0Kgyx1jIVMyNgsemeAwBM+MSlhMfcpbTrONwNjZYW8vJDSoi//y rZlVt9bJbs7MNYZVsyF1unsqaln4/vy6Uawfg8VUMk1U7jt8LYpo4YULU7 UZHPYVUaSgVttImOHZIKi4hlPXBOhcUQ== |