XML::Generator::vCard::RDF - generate RDF/XML SAX2 events for vCard 3.0


XML-Generator-vCard-RDF documentation  | view source Contained in the XML-Generator-vCard-RDF distribution.

Index


NAME

Top

XML::Generator::vCard::RDF - generate RDF/XML SAX2 events for vCard 3.0

SYNOPSIS

Top

 use XML::SAX::Writer;
 use XML::Generator::vCard::RDF;

 my $writer = XML::SAX::Writer->new();
 my $driver = XML::Generator::vCard::RDF->new(Handler=>$writer);

 $driver->parse_files("test.vcf");

DESCRIPTION

Top

Generate RDF/XML SAX2 events for vCard 3.0

DOCUMENT FORMAT

Top

SAX2 events map to the Representing vCard Objects in RDF/XML W3C note:

 http://www.w3.org/TR/2001/NOTE-vcard-rdf-20010222/

Additionally, an extra description will be added for each unique email address. Each description will be identified by the value of SHA1 digest of the address and simply point back to the vCard description.

For example, the test file for this package contains the email address senzala@example.com which will cause the following description to be added to the final output :

 <rdf:RDF>
  <rdf:Description rdf:about = 't/Senzala.vcf'>
   <!-- vcard data here -->
  </rdf:Description>

  <!-- c0e0c54660f33a3ec7f22f902d0e5ead8bd4e4f4 == SHA1(senzala@example.com) -->

  <rdf:Description rdf:about='http://xmlns.com/foaf/0.1/mbox_sha1sum#c0e0c54660f33a3ec7f22f902d0e5ead8bd4e4f4'>
   <rdfs:seeAlso rdf:resource='t/Senzala.vcf' /></rdf:Description>
  </rdf:Description>
 </rdf:RDF>

This is done to facilitate merging vCard data with RDF representations of email messages, using XML::Generator::RFC822::RDF. For example :

 <rdf:RDF>

  <rdf:Description rdf:about='x-urn:ietf:params:rfc822#5b0c8c9f9b2b782375f515a0b24b3a821a59a34a'>
   <rfc822:To rdf:resource='http://xmlns.com/foaf/0.1/mbox_sha1sum#c0e0c54660f33a3ec7f22f902d0e5ead8bd4e4f4' />
   <!-- ... -->
  </rdf:Description>

  <rdf:Description rdf:about='http://xmlns.com/foaf/0.1/mbox_sha1sum#c0e0c54660f33a3ec7f22f902d0e5ead8bd4e4f4'>
   <vCard:FN>Senzala Restaurant</vCard:FN>
   <vCard:EMAIL>senzala@example.com</vCard:EMAIL>
  </rdf:Description>

 </rdf:RDF>

PACKAGE METHODS

Top

__PACKAGE__->new(%args)

This method inherits from XML::SAX::Base

OBJECT METHODS

Top

OBJECT METHODS

Top

$pkg->parse_files(@files)

Generate SAX2 events for one, or more, vCard files.

Returns true or false.

$pkg->parse_files(@files)

PRIVATE METHODS

Top

Private methods are documented below in case you need to subclass this package to tweak its output.

$obj->_render_doc(\@vcards)

$obj->_render_card(Text::vCard)

$obj->_render_fn(Text::vCard)

$obj->_render_n(Text::vCard)

$obj->_render_nickname(Text::vCard)

$obj->_render_photo(Text::vCard)

$obj->_render_bday(Text::vCard)

$obj->_render_adrs(Text::vCard)

$obj->_render_labels(Text::vCard)

$obj->_render_tels(Text::vCard)

$obj->_render_emails(Text::vCard)

$obj->_render_instantmessaging(Text::vCard)

$obj->_render_mailer(Text::vCard)

$obj->_render_tz(Text::vCard)

$obj->_render_geo(Text::vCard)

$obj->_render_org(Text::vCard)

$obj->_render_title(Text::vCard)

$obj->_render_role(Text::vCard)

$obj->_render_logo(Text::vCard)

$obj->_render_categories(Text::vCard)

$obj->_render_note(Text::vCard)

$self->_render_sound(Text::vCard)

$self->_render_url(Text::vCard)

$obj->_render_key(Text::vCard)

$obj->_render_custom(Text::vCard)

By default this method does nothing. It is here to be subclassed.

$obj->_im_services()

Returns a hash ref mapping an instant messaging service type to an XML element. Default is :

 {"aim"    => "foaf:aimChatID",
  "yahoo"  => "foaf:yahooChatID",
  "msn"    => "foaf:msnChatID",
  "jabber" => "foaf:JabberID",
  "icq"    => "foaf:icqChatId"}

This is called by the _render_instantmessaging method.

NAMESPACES

Top

This package generates SAX events using the following XML namespaces :

* vCard
 http://www.w3.org/2001/vcard-rdf/3.0#

* rdf
 http://www.w3.org/1999/02/22-rdf-syntax-ns#

* foaf:
 http://xmlns.com/foaf/0.1/

* geo
 http://www.w3.org/2003/01/geo/wgs84_pos#

VERSION

Top

1.4

DATE

Top

$Date: 2004/12/28 21:50:27 $

AUTHOR

Top

Aaron Straup Cope <ascope@cpan.org>

SEE ALSO

Top

Text::vCard

XML::Generator::vCard

XML::Generator::RFC822::RDF

BUGS

Top

vCards containg binary PHOTO images may cause Perl to segfault on Mac OSX and come flavours of Linux (but not FreeBSD.) The source of this problem has been traced, I think, to a regular expression issue in the Perl Text::ParseWords library. A bug report has been filed.

Please report all other bugs via http://rt.cpan.org

LICENSE

Top

Copyright (c) 2004, Aaron Straup Cope. All Rights Reserved.

This is free software, you may use it and distribute it under the same terms as Perl itself.


XML-Generator-vCard-RDF documentation  | view source Contained in the XML-Generator-vCard-RDF distribution.