vCard 3.0学习笔记

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
原文: rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"> rel="themeData" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"> rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml">  http://www.w3.org/TR/vcard-rdf

rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"> rel="themeData" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"> rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml">

vCard 3.0

Technical Report: http://www.w3.org/TR/vcard-rdf

The namespace: http://www.w3.org/2001/vcard-rdf/3.0#

Basic Properties

FN

NICKNAME

BDAY

MAILER

GEO

TITLE

ROLE

CATEGORIES

NAME:此Name并不是指当前描述的人的名字

SOURCE:对应RDF中的about属性,用于描述唯一的指定一个人

NOTE

PRODID

REV

SORT-STRING

CLASS

e.g. <vCard:FN> Corky Crystal </vCard:FN>

      <vCard:BDAY> 1980-01-01 </vCard:BDAY>

      <vCard:TITLE> Computer Officer Class 3 </vCard:TITLE>

      <vCard:ROLE> Programmer </vCard:ROLE>

Grouping & Ordering

vCard某个属性有多个值,RDF提供三种机制:Bags多值且顺序不重要,Sequences多值且顺序重要,Alternatives多者择一且第一个为默认值,Group

e.g. <vCard:ROLE>          <rdf:bag>
            <rdf:li> Programmer </rdf:li>
            <rdf:li> Fire Warden </rdf:li>
         </rdf:bag>
     </vCard:ROLE>

 

      <vCard:TITLE>          <rdf:seq>
            <rdf:li> Principal Research Scientist </rdf:li>
            <rdf:li> Visiting Professor </rdf:li>
         </rdf:seq>
     </vCard:TITLE>

 

     <vCard:EMAIL>          <rdf:alt>
            <rdf:li> corky@qqqfoo.com </rdf:li>
            <rdf:li> info@qqqfoo.com </rdf:li>
            <rdf:li> corky2000cool@hotmail.com </rdf:li>
         </rdf:alt>
     </vCard:EMAIL>

 

   <vCard:GROUP>
     <rdf:bag>
       <rdf:li rdf:parseType="Resource">
         <vCard:NICKNAME> Corky Porky </vCard:NICKNAME>
         <vCard:NOTE> Only used by close friends </vCard:NOTE>
       </rdf:li>        <rdf:li rdf:parseType="Resource">
         <vCard:NICKNAME> Princess Corky </vCard:NICKNAME>
         <vCard:NOTE> Only used by my Mother </vCard:NOTE>
       </rdf:li>
     </rdf:bag>
   </vCard:GROUP>

rdf:parseType=Resource指明,虽然<rdf:li>是一个<rdf:Description>的元素,但是也要进行处理(应该是指在智能代理中进行分析,不能单单把它当作一个<rdf:Description>的元素)。

Properties with Attributes

使用http://www.w3.org/2001/vcard-rdf/3.0#<type>来声明一个资源的类型,其中<type>是正式定义的vCard类型,而属性值必须通过<rdf:value>给出

e.g. <vCard:TEL rdf:parseType="Resource">
    <rdf:value> +61 7 555 5555 </rdf:value>
    <rdf:type rdf:resource="http://www.w3.org/2001/vcard-rdf/3.0#work"/>
    <rdf:type rdf:resource="http://www.w3.org/2001/vcard-rdf/3.0#voice"/>
   </vCard:TEL>

vCard属性可能有的类型参数:

   vCard Property  Type Parameter Values
   --------------  -----------------------------------------------
    TEL            home, msg, work, pref, voice, fax, cell, video,
                   pager, bbs, modem, car, isdn, pcs
    EMAIL          internet, x400, pref
    ADR            dom, intl, postal, parcel, home, work, pref
    LABEL          dom, intl, postal, parcel, home, work, pref
    TZ             text

如果这个类型参数是在外部定义的(即不是vCard中的已有类型),就需要使用"vCard:TYPE"来声明。

e.g. UID指定为"United States Social Security Number"类型

    <vCard:UID vCard:TYPE="US-SSN">987-65-4320</vCard:UID>

除了UID之外,vCard中还未指定的参数类型包括:

   vCard Property  Type Parameter Values
   --------------  -----------------------------------------------
    UID            Any IANA registered or non-standard identifier formats
    LOGO           Any IANA registered or non-standard image formats
    PHOTO          Any IANA registered or non-standard image formats
    SOUND          Any IANA registered or non-standard audio formats
注意1URL属性的值必须是已验证的URIRDF提供了一个速记机制即使用"rdf:resource"属性对其进行编码,如<vCard:URL rdf:resource="http://qqqfoo.com/me.html"/>
2LABEL property可能有一个包含XML标记的格式化文本,可以通过将"rdf:parseType"设置为Literal来指定不解释这个文本,而是当作纯文本进行处理,如
  <vCard:LABEL rdf:parseType="Resource">
    <rdf:type rdf:resource="http://www.w3.org/2001/vcard-rdf/3.0#postal"/>
    <rdf:value rdf:parseType="Literal">
      Corky Crystal<br/>
      <b>qqqfoo.com Pty Ltd</b><br/>
      PO Box 555<br/>
      Coolville, AUSTRALIA
    </rdf:value>
  </vCard:LABEL>
Structured Properties
   
很多vCard属性定义了子结构,维护和表达它们很重要,而且RDF模式下完全支持这种子结构。
    vCard Property  Substructure Name      Property Type Name
    --------------  --------------------   ------------------
     N              Family Name            Family
                    Given Name             Given
                    Additional Names       Other
                    Honorific Prefixes     Prefix
                    Honorific Suffixes     Suffix
        ADR            Post Office Box        Pobox
                    Extended Address       Extadd
                    Street Address         Street
                    Locality               Locality
                    Region                 Region
                    Postal Code            Pcode
                    Country                Country
     ORG            Organisation Name      Orgname
                    Organisation Unit      Orgunit
e.g.     <vCard:N rdf:parseType="Resource">
        <vCard:Family> Crystal </vCard:Family>
        <vCard:Given>  Corky </vCard:Given>
        <vCard:Other>  Jacky </vCard:Other>
        <vCard:Prefix> Dr </vCard:Prefix>
        <vCard:Suffix> III </vCard:Suffix>
     </vCard:N>
注意 1、即使Label propery有使用NADR定义的相同的结构,我们也不能使用这些值,因为Label的值是不准备被解释说明的格式化文本
2Organisational Units隐含了顺序特征(由高到低),所以需要使用<rdf:seq>来声明。
Binary Values
   

vCard中很多属性可以通过两种方式指定二进制值:内部的可以编码成Base64,或这通过URI引用外部的。这些属性有:

PHOTO

LOGO

SOUND

KEY

内部:     <vCard:PHOTO vCard:ENCODING="b" vCard:TYPE="image/jpeg">
          MSJD9s99DS(S@W99329(#9....</vCard:PHOTO>
外部:     <vCard:PHOTO vCard:TYPE="image/gif" rdf:resource="http://qqqfoo.com/me.gif"/>

Agent Property

Agent属性允许声明描述另一个vCard资源。RDF允许一个vCard资源内联在另一个里。

e.g. <vCard:FN> Corky Crystal </vCard:FN>
      <vCard:TITLE> Research Director </vCard:TITLE>
      <vCard:AGENT rdf:parseType="Resource">
         <vCard:FN>    John Mutton </vCard:FN>
         <vCard:TITLE> Personal Assistant </vCard:TITLE>
         <vCard:EMAIL> john@qqqfoo.com </vCard:EMAIL>
      </vCard:AGENT>

也可以通过URI指定对一个外部资源的引用:

      <vCard:FN> Corky Crystal </vCard:FN>
      <vCard:TITLE> Research Director </vCard:TITLE>
      <vCard:AGENT rdf:resource="http://qqqfoo.com/staff/mutton/"/>

RDF vCard Language

使用"xml:lang"属性(取值定义在RFC1766文档中)来指定vCard中属性值的语言类型:

      <vCard:FN xml:lang="en"> Corky Crystal </vCard:FN>
      <vCard:TITLE xml:lang="en"> Computer Officer Class 3 </vCard:TITLE>
      <vCard:ROLE xml:lang="en"> Programmer </vCard:ROLE>

也可以使用Alternative来指定同一个概念的不用语言表示:

     <vCard:ROLE>          <rdf:alt>
            <rdf:li xml:lang="en"> Programmer </rdf:li>
            <rdf:li xml:lang="fr"> Programmeur </rdf:li>
            <rdf:li xml:lang="it"> Programmatore </rdf:li>
         </rdf:alt>
     </vCard:ROLE>
解析vCard 3.0:提取电子名片中的姓名 N:LastName;FirstName;;;END:VCARD和END:VCARD标记数据块的开始和结束。N字段存储结构化姓名(分号分隔)。FN字段为直接可读的显示名称。其他字段如TELEMAIL等保存联系信息。 阅读详情

相关推荐

Python脚本:vCard3.0vCard2.1格式的实现

vCard是一种虚拟卡片的文件格式标准,它允许人们通过电子方式交换联系信息。最初由Versit联盟在1990年代开发,随后成为互联网标准的一部分,被广泛用于电子邮件客户端、社交媒体和各种通讯平台。vCard格式定义了一套标准字段,这些字段包含了个人或组织的信息,如姓名、地址、电话号码等。

weixin_35826166的博客 1240

rcard:ncurses VCard 3.0联系人管理编辑器-开源

为ncurses开发的vcard 3.0联系人管理编辑器。 它可以:-加载vcf文件-显示列表中的所有联系人-显示有关单个联系人的更多信息-在联系人列表中执行简单的搜索-编辑联系人-支持UTF-8(当前不在WIN32上,尽管我我不确定WIN32控制台是否真的能够支持UTF-8)-将VCF转换为Pine / Alpine通讯簿格式-从文件中将图像导入为联系人照片这个想法基于rolo(您可以在SourceForge.net上找到) ,也是如此),但是没有原始代码保留下来。 仍然无法正常工作:-显示漂亮的联系人详细信息屏幕(目前,它只是以vcard格式转储信息)

vcard2to3:将vcard从2.1版转换为3.0

vcard2to3vcard从2.1版转换为3.0版。 我编写了这些脚本来转换从Android 4.x手机导出的联系人并将其导入Nextcloud。 它对我有用,您的行程可能会有所不同。 这些脚本非常简单,没有涵盖2.1和3.0之间的所有差异。 vcard2to3.py vcard2to3.py是转换脚本。 快速开始: git clone https://github.com/jowave/vcard2to3.git cd vcard2to3 ./vcard2to3.py your_file.vcf 输出将是文件your_file.vcf.converted 。 要显示可用的命令行参数,请运行: ./vcard2to3.py --help usage: vcard2to3.py [-h] [--in_encoding IN_ENCODING]

二维码名片的格式 - vcard

二维码名片的格式 - vcard如果你希望生成的二维码名片可以被智能设备识别,并可以直接导入到通讯录中,那么就应遵循某种标准格式。常见的是生成vcard标准格式。一个简单的vcard名片格式例子参考如下: BEGIN:VCARD VERSION:3.0 FN:任侠 TEL;CELL;VOICE:15201280000 TEL;WORK;VOICE:010-62100000 TEL;WORK;FAX

祝紫山(大可山人)博客[GDI+,WPF, .Net图形图像] 3万+

话说VCARD

话说VCARD

Working harder, getting stronger! 2582

vCard学习笔记

vCard学习笔记 转载时请注明出处:http://blog.csdn.net/absurd/ vCard?看起来像个专业术语,一下让人敬畏三分。当然这全仰仗着第一个字母v了,如果把v去掉,剩下的Card就是名片的意思,简单得不能再简单了。事实上vCard就是一个描述名片的规范。为什么前面加个v呢,据说这个规范最初是由Versit联盟提出的,至于为什么v是小写的,据说是出于技术限制

国产开源 GUI 引擎 AWTK 7511

VCARD3.0通讯录名片在Android系统…

研究了几天VCARD3.0,发现网上资料太少,特别是在Android平台的。特此记录。 输出名片类范例: public class WriteExample {     public static void main(String[] args) throws Exception {         OutputStreamWriter writer = new OutputStreamW

无语僧 2340

用python实现vCard3.0vCard2.1

1、环境  Windows 7或Windows 10+ Python3.7 2、代码 ''' Function: 将手机联系人备份从vCard3.0文件转为vCard2.1文件(旧式手机需要) Comment: 在Python3.7下可运行,不支持头像转换。 DATE: 2019-01-23 Author: me ''' import pdb def str_to...

ltbook的专栏 2278

vcard规范 二维码名片的格式

转自:http://blog.csdn.net/johnsuna/article/details/8482454 二维码名片的格式 - vcard 如果你希望生成的二维码名片可以被智能设备识别,并可以直接导入到通讯录中,那么就应遵循某种标准格式。常见的是生成vcard标准格式。一个简单的vcard名片格式例子参考如下:   BEGIN:VCARD VERSION:3

xfyangle的博客 1万+

MTK phonebook vCard 2 1 和vCard 3 0 有何不同

MTK phonebook vCard 2 1 和vCard 3 0 有何不同

hffyfdt的博客 379

Vcard踩坑记录

问题背景 遇到这样一个问题,生成的vcard不能被微信识别,查找这个问题的过程中发现生成的vcard字符串出现了错误。 生成错误的vcard字符串如下所示: 正确的应该是: 对比两张图片可以看出,结束字符串“END:VCARD”并没有放置在最后,而是放在了VERSION:3.0下方, 格式不正确所以导致了微信无法识别。 问题排查 生成vcard的工具使用的是Android原生提供的VcardB...

我是黄大仙 4295

vCard3:有个性的简历网页模板,用于个人主页,个人网站

vCard3 有个性的简历网页模板,用于个人主页,个人网站

Vcard2.1&3.0

Vcard2.1&3.0Vcard2.1&3.0Vcard2.1&3.0Vcard2.1&3.0Vcard2.1&3.0

Python实现vCard3.0vCard2.1(已更新)

将手机联系人备份从vCard3.0文件转为vCard2.1文件(旧式手机需要) 。 在Python3.7下可运行,不支持头像转换。

MTK phonebook vCard 2.1 和vCard 3.0 有何不同?

<br /><br /> <br />Difference between vcard 2.1 and vcard3.0 is mainly from vcard 2.1 and vcard3.0 profile, from mmi view, we can not see the difference. In version3.0 they have introduced some new fields.<br />As far as i know following is the list of pro

曹浩洋的专栏 4498

vcard2to3 项目使用教程

vcard2to3 项目使用教程 项目介绍 vcard2to3 是一个开源的 Python 脚本工具,主要用于将 vCard 2.1 格式的联系人文件转换为 vCard 3.0 格式。这个工具特别适用于需要将旧版 vCard 格式升级到更现代且广泛支持的格式的场景,例如从老式智能手机或电子邮箱系统中导出的联系人数据迁移,以及与云服务如 Nextcloud 的集成。 项目快速启动 安装 首先,确保你...

gitblog_00494的博客 409

【转】二维码名片的格式 - vcard

如果你希望生成的二维码名片可以被智能设备识别,并可以直接导入到通讯录中,那么就应遵循某种标准格式。常见的是生成vcard标准格式。一个简单的vcard名片格式例子参考如下: BEGIN:VCARD VERSION:3.0 FN:任侠 TEL;CELL;VOICE:15201280000 TEL;WORK;VOICE:010-62100000 TEL;WORK;FAX:010-62100...

3523

vCard通讯录格式说明

原帖:http://freesoftman.iteye.com/blog/622705 最在网络上面查找关于vcard格式的技术资料,发现中文的资料很少,只能阅读 vCard MIME Directory Profile(rfc-2426) 翻译它需要花太多的时间,现在把自己的理解做下记录,希望对大家有帮助 VCard 数据格式的标识符是VCARD l 预...

Coding 2012
上一篇: 谁来变革IM?
下一篇: Cool URIs for the Semantic Web学习笔记
堆烟
博客等级 码龄21年 31粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值