Главная Публикации.txt Описание hCard

Описание hCard

hCard это простой, открытый, формат для представления контактов людей, компаний, организаций, и мест, используя представление один в один как vCard (RFC2426) . hCard является одним из нескольких открытых стандартов микроформатов подходящих для внедрения в HTML, XHTML, Atom, RSS, и в произвольном XML.

Хотите создать hCard? Используйте hCard редактор (http://microformats.org/code/hcard/creator) чтобы создать контактную информацию и опубликовать ее, или добавьте hCard разметку для своей страницы с контактами.

Спецификация

Редакторы
Tantek Çelik (http://tantek.com/, и ранее на Technorati, Inc. (http://technorati.com), и на Microsoft Corporation (http://microsoft.com/))
Авторы
Tantek Çelik (http://tantek.com/)
Brian Suda (http://suda.co.uk/)
 

Введение

Стандарт vCard (RFC2426), является широко применяемым инструментом (например в Apple "Address Book", приложение поставляющееся с MacOSX).

Большое количество блоггеров указывают свои данные при общении со своей семьей или друзьями, если к этому добавить всего немного структурированности таким образом, чтобы поисковые пауки и другие средства сбора информации могли автоматически конвертировать ее в формат vCards, то открываются огромные возможности по использованию этих карточек во множестве приложений и сервисов.

В этой спецификации описан формат hCard, который повторяет свойства значения и представление vCard один к одному, в семантическом HTML. Блоггеры смогут добавить разметку hCards на свои страницы, и смогут визуализировать ее, как им вздумается, средствами CSS. Плюс ко всему, hCard позволит приложениям получать контактную информацию напрямую с веб страницы без использования каких либо дополнительных файлов.

Используйте hCard редактор (http://microformats.org/code/hcard/creator) и скопируйте HTML сгенерированный им в свой блог или на веб сайт, чтобы опубликовать свою контактную информацию.

Указания "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", и "OPTIONAL" в этом документе описываются и поясняются в RFC 2119.

Формат

Общее

Стандарт vCard (RFC2426) формирует основу hCard.

Основой формата hCard, является идея использовать имена объектов и свойств vCard в качестве имен классов, а так же повторение вложенности объектов vCard в структуре HTML

Имя корневого класса

Имя корневого класса для hCard это "vcard".

Свойства

Свойства hCard представляют собой элементы внутри hCard. Содержание элементов классами, поименованными списком свойств, являются значениями этих свойств. Некоторые свойства имеют свои свобственные дочерние свойства, которые в свою очередь представлены элементами внутри родительских элементов (свойств).

Список свойств

свойства hCard (в скобках указывается дочернее свойство)

Required:

  • fn
  • n1 (family-name, given-name, additional-name, honorific-prefix, honorific-suffix)

Optional:

  • nickname, sort-string
  • url, email (type, value), tel2 (type, value)
  • adr (post-office-box, extended-address, street-address, locality, region, postal-code, country-name, type, value), label
  • geo (latitude, longitude), tz
  • photo, logo, sound, bday
  • title, role, org (organization-name, organization-unit)
  • category, note
  • class, key, mailer, uid, rev

Пояснения

1. : Свойство 'n' опционально (OPTIONAL) если присутствуют любые предпологаемые оптимизационные правила 'n'.
2. : tel - авторы могут (MAY) следовать стандарту E.123 (http://en.wikipedia.org/wiki/E.123) написания значений телефонных номеров. Буквенные значения (например +1-555-FORMATS) должны (MUST) быть переведены в цифровые. Используйте abbr чтобы показать буквы и предоставьте цифровое значение одновременно, например <abbr title="+15553676287">+1-555-FORMATS</abbr>.

Единичные и Множественные свойства

Единичные свойства: 'fn', 'n', 'bday', 'tz', 'geo', 'sort-string', 'uid', 'class'. Для единичных свойств с этим классом только первый потомок будет (SHOULD) иметь значение, все остальные будут проигнорированы.

Все остальные свойства могут ( MAY) быть множественными. Каждый класс таких свойств создает новый экземпляр свойства.

Чтение пользователями и машинами

Видимое пользователю содержание элемента для свойства является значением этого свойства, но с несколькими исключениями:

Если элементе <abbr> используется в качестве свойства, то атрибут 'title' (если присутствует) элемента <abbr> будет являться значением свойства, взамен содержания элемента, которое в свою очередь может быть более репрезентативным для восприятия человеком.

Если элемент <a> для одного или более свойств, он должен (MUST) быть оформлен в соответствии с правилами ниже:

  1. Для свойства 'photo' и для любых других свойств, которые в качестве значения имеют URL, атрибут href="..." является значением свойства.
  2. Для остальных свойств, содержание элемента является значением свойства.

Если элемент <img> используется для одного или более свойств, он должен (MUST) быть оформлен в соответствии с правилами ниже:

  1. Для свойства 'photo' и для любых других свойств, которые в качестве значения имеют URL, атрибут src="..." является значением свойства.
  2. Для остальных свойств,атрибут 'alt' элемента <img> является значением свойства.

Если элемент <object> используется для одного или более свойств, он должен (MUST) быть оформлен в соответствии с правилами ниже:

  1. Для свойства 'photo' и для любых других свойств, которые в качестве значения имеют URLатрибут data="..."является значением свойства.
  2. Для остальных свойств, содержание элемента является значением свойства.

Выборка значений

Иногда только часть элемента, который является свойством, используется как значение свойства. Это обычно возникает, когда свойство имеет подтипы, например 'tel'. Для таких целей используют специальный класс "value", который используют для обозначения того подтипа, который является значением свойства, для примера представлен фрагмент hCard отмечающий номер домашнего телефона:

vCard:

TEL;TYPE=HOME:+1.415.555.1212  

hCard:

<span class="tel">
<span class="type">home</span>:
<span class="value">+1.415.555.1212</span>
</span>

Этот фрагмент hCard будет выведен как:

home: +1.415.555.1212

 

Выборка свойств

vCard имеет несколько свойств, которые уже заключены в контексте страницы. Эта секция описывает что с ними делать или не делать.

  1. Свойства vCard NAME, PROFILE, SOURCE, PRODID, VERSION определяются в RFC2426 в разделах 2.1.2, 2.1.3, 2.1.4, 3.6.3, 3.6.9. Авторы не должны (MUST NOT) использовать эти свойства в своих hCards, a hCard парсеры должны игнорировать (MUST IGNORE) эти свойства, если они обнаружены внутри hCard. Вместо этого конвертеры hCard в vCard должны (SHOULD) использовать заголовок страницы где расположен hCard (элемент <title> в структуре HTML документа) для свойства NAME, могут (MAY) приниматься значения PROFILE "VCARD" по RFC2426, для этого должны использоваться (SHOULD) URL страницы, где расположен hCard, свойство SOURCE (возмоно как параметр URL/сервиса конвертирующего hCards в vCards), для выходного vCard (.vcf файла). Только сервисы/приложения, которые выдают действующий файл vCard должны записывать свойство PRODID. Пододбным образом, только такие сервисы/приложения должны записывать свойство VERSION, с значением "3.0" (без кавычек) по RFC2426 Раздел 3.6.9.

Контактная информация организаций

Если "FN" и "ORG" свойства имеют фактически теже значения (потому что они расположены в том же элементе, например class="fn org"), тогда hCard предостовляет контактную информацию компании, организации или места, и она должна быть оформлена (SHOULD) в соответствии с определенными условиями. В таком случае автор также не должен (MUST NOT) объявлять свойство "N", или объявить его (и любые подсвойства) явно пустым "". Парсеры должны (SHOULD) описать отсутствующее свойство "N", устанавливая для него и для всех его подсвойств пустые значения.

Обработка неявного "n"

Хотя vCard требует наличия свойства "N", авторы спецификации vCard (RFC2426) не включают свойство "N" в свои vCard в конце спецификации (p.38). Это явное противоречие может быть устранено разрешением свойству "FN" включать в себя значения свойства "N" в типичных примерах спецификации, такая же ситуация и с hCard.

Если "FN" и "ORG" не одно и то же (см. предыдущий раздел), и значение свойства "FN" это два слова разделенные пробелом, и свойство "N" не знадано явно, тогда свойство "N" берется из свойства "FN". Для "FN" с одним двумя словами смотри ниже, а для трех и более слов, автор должен (MUST) явно выделить "N", за исключением случая контактов организации, см выше.

  1. Содержание "FN" разделено на два слова пробелом
  2. Первое слово в "FN" интерпреттируется как "given-name" для свойства "N".
  3. Второе (последнее) слово "FN" интерпретируется как "family-name" для свойства "N"
  4. Исключение: если первое слово оканчивается на "," (запятую) ИЛИ второе слово имеет один символ (опционально следующий за точкой "."), тогда первое слово (минус запятая вконце, если есть) интерпретируется как "family-name"и второе как "given-name".

Это позволяет упростить обычный вариант контактов:

  • given-name (space) family-name
  • family-name (comma) given-name
  • family-name (comma) given-name-first-initial
  • family-name (space) given-name-first-initial (optional period)

Обработка неявного "nickname"

С учетом повсеместного распространения ников/имен пользователей и т.д. при публикации контента в сети (например авторы статей reviews), hCard также имеет оптимизацию "nickname" для таких случаев.

Также как и для "n", если "FN" и "ORG" разные, и значение свойства "FN" всего одно слово, и нет явного свойства "N", тогда:

  1. Содержание "FN" долно быть ( MUST ) интерпретировано как значение свойства "nickname".
  2. Парсеры должны (SHOULD) описать отсутствующее свойство "N" заполняя пустым значением все подсвойства "N".

Несмотря на то, что парсеры обязаны (MUST) следовать оптимизации nickname, авторы должны (SHOULD) явно объявлять "nickname" даже в этом классе, например.:

<span class="vcard">   
<span class="fn nickname">daveman692</span>
</span>

hCard может (MAY) иметь дополнительно объявленное значение свойства "nickname" помимо вложенного.

Обработка вложенного "organization-name"

Свойство "ORG" имеет два подсвойства, organization-name и organization-unit. Очень часто авторы указывают только organization-name. Если же свойство "ORG" не имеет указанного "organization-name", то весь контент должен (MUST) быть принят за "organization-name".

Теги как Категории

Категории в hCard могут (MAY) представляться тегами с rel-tag. Когда свойство категория имеет rel-tag, тег (объявленный с rel-tag) используется для этой категории.

значения подсвойства type

Подсвойство 'type' принимает различные значения в зависимости от того подсвойством какого свойства является. Значения этих подсвойств 'type' нечуствительны к регистру, например "Home" и "home" это одно и тоже, они также многозначны, например tel может быть home(домашний) и preferred (предпочтительный):

vCard:

TEL;TYPE=HOME,PREF:+1.415.555.1212  

hCard:

<span class="tel">
<span class="type">Home</span> (<span class="type">pref</span>erred):
<span class="value">+1.415.555.1212</span>
</span>

это будет отображено как:

Home (preferred): +1.415.555.1212

type с неустановленным значением

Когда свойство type задано, и нет явно заданного значения, тогда все в свойстве, кроме type принимается за значение свойства, например:

<span class="tel"><span class="type">Home</span> +1.415.555.1212</span>  

эквивалентно:

<span class="tel">
<span class="type">Home</span>
<span class="value"> +1.415.555.1212</span>
</span>

здесь type объявлено как "home" и значение как "+1.415.555.1212".

adr tel email types

Смотреть RFC2426 разделы 3.2.1 ADR, 3.3.1 TEL, и 3.3.2 EMAIL в указанном порядке для нормативных типов значений, здесь они перечислены для удобства. Поумолчанию значения подсвойства type это первое в списке и обозначенное заглавными (ALL CAPS). типы могут иметь не одно значение.

  • adr type: INTL, POSTAL, PARCEL, WORK, dom, home, pref
  • tel type: VOICE, home, msg, work, pref, fax, cell, video, pager, bbs, modem, car (http://flickr.com/photos/tags/carcellphone/), isdn, pcs
  • email type: INTERNET, x400, pref, "other IANA registered address types"

Примеры

Простой vCard

Вот пример простого vCard:

BEGIN:VCARD  VERSION:3.0  N:Çelik;Tantek  FN:Tantek Çelik  URL:http://tantek.com/  END:VCARD  

и его эквивалент в hCard с различными элементами оптимизированными должным образом.

<div class="vcard"> 
<a class="url fn" href="http://tantek.com/">Tantek Çelik</a>
</div>

Этот hCard может быть отображен как:

Tantek Çelik

Замечание: Информация о версии не обязательна в hCard разметке, версия будет выбрана из профиля hCard который выбирается из атрибута 'profile' из элемента <head>.

Живой пример

Вот контактная информация Commercenet (http://www.commerce.net/), этот hCard будет спокойно обработан на сранице парсерами микроформатов:

CommerceNet
http://www.commerce.net/
Work:
169 University Avenue

Palo Alto, CA  94301

USA
Work +1-650-289-4040
Fax +1-650-289-4041
Email info@commerce.net

Ниже приведен код, чтобы можно было детально просмотреть разметку:

<div class="vcard">  
<a class="fn org url" href="http://www.commerce.net/">CommerceNet</a>
<div class="adr">
<span class="type">Work</span>:
<div class="street-address">169 University Avenue</div>
<span class="locality">Palo Alto</span>,<abbr class="region" title="California">CA</abbr>  
<span class="postal-code">94301</span>
<div class="country-name">USA</div>
</div>
<div class="tel">
<span class="type">Work</span> +1-650-289-4040</div>
<div class="tel"><span class="type">Fax</span> +1-650-289-4041</div>
<div>Email:<span class="email">info@commerce.net</span></div>
</div>

Кнопки

Вы можете использовать эти кнопки на страницах с hCards.

  • hcard.png (зеркало: mf_hcard.png)
  • hcard.png
  • microformat_hcard.png

tagshCardмикроформатыверстка 

13.09.2008, 3969 просмотров.