記錄聯系方式對所有商務應用程序都非常重要,通過有效的 XML 結構來捕獲這些信息可以簡化此類數據的處理。
聯系信息變化可能很大,因此應該選擇 XML 。比如,有些公司和個人可能有多個地址、電話號碼和電子郵件帳戶。在 XML 結構中很容易聲明多個此類信息片段。
vCard 結構經常在 Internet 上用於表示聯系信息,它獨立於平台,很容易生成和導入不同的應用程序。它支持 XML 結構的某些靈活性,但實際上是一種基於文本的簡單格式,使用聲明性字段和擴展來提供信息。不同於 XML,vCard 格式是扁平文本,就是說不能直接向各種元素增加信息。電話號碼是一個很好的例子,它不一定和某個地址關聯,而僅僅作為記錄中的另一個電話號碼。
W3 聯盟提出一種 vCard 格式的 XML,它采用 RDF XML 標准,以便於格式化和交換聯系信息。采用 RDF 框架可以在聲明過程中保留一些結構化信息。比如,RDF 標准支持使用包、序列和替代來描述數據。包支持多次聲明一個對象(比如多種角色),並且可以在序列不重要時使用包。序列用於定義對象的次序,比如機構中人員角色的層次結構。替代允許從列表中選擇一項,比如多個電子郵件地址。
清單 6 顯示了虛擬人物 Charles Perston 的 vCard。
清單 6. Charles Perston 的 vCard
BEGIN:VCARD
VERSION:3.0
N:Perston;Charles;;;
FN:Charles Perston
ORG:Perston Technology;
EMAIL;type=INTERNET;type=WORK;type=pref:null@perston.co.uk
TEL;type=WORK;type=pref:01234 567890
item1.ADR;type=WORK;type=pref:;;Perston House;Perston;Perstonshire;P1 0NS;UK
item1.X-ABADR:gb
X-ABUID:5AE47BB6-4E0F-4558-980C-BD3066FA6154“:ABPerson
END:VCARD
采用 vCard XML 標准,可用清單 7 中的結構表示同樣的信息。
清單 7. 使用 vCard XML 標准表示 Charles Perston
vCard:vCard XMLns:rdf=#
XMLns:geo=#
XMLns:foaf= vCard:version=3.0
XMLns:rdfs=# vCard:class=PUBLIC
xmlns:vCard=x-urn:cpan:ascope:XML-generator-vcard#
vCard:fnCharles Perston/vCard:fn
vCard:n
vCard:familyPerston/vCard:family
vCard:givenCharles/vCard:given
/vCard:n
vCard:adr vCard:del.type=pref;work
vCard:streetPerston House/vCard:street
vCard:localityPerston/vCard:locality
vCard:regionPerstonshire/vCard:region
vCard:pcodeP1 0NS/vCard:pcode
vCard:countryUK/vCard:country
/vCard:adr
vCard:email vCard:email.type=internet;pref;worknull@perston.co.uk
/vCard:email
vCard:org
vCard:orgnamPerston Technology/vCard:orgnam
/vCard:org
/vCard:vCard
XML 格式更長,但容易理解所看的內容以及各部分之間的關系。這種格式可以了解更詳細的信息和細節。比方說,很容易在地址中找到需要的國家,在標准 vCard 輸出中該信息是比較隱含的。
再比如,很容易使用 XPath 或者 SAX 事件提取國家的列表,以便了解位於不同地區的聯系人的數目。