The XML Bookmark Exchange Language (XBEL)
The XML Bookmark Exchange Language, or XBEL, is an Internet "bookmarks" interchange format. It was designed by the Python XML Special Interest Group on the group's mailing list.
The original intent was to create an interesting, fun project which was both useful and would demonstrate the Python XML processing software which was being developed at the time. Mark Hammond contributed the original idea, and other members of the SIG chimed in to add support for their favorite browser features. After debate which ranged far afield from the original idea, compromises were reached which allow XBEL to be a useful language for describing bookmark data for a range of browsers, including the major browsers and a number of less widely used browsers.
At this time, the formal document type definition (DTD) was finalized and documentation was written. These are available online here.
The documentation is also available in non-HTML versions, for those who like to play with leaves:
Supporting software is provided as part
of the Python XML "omnibus" package. This software is located in the
Ken Schenke's BookmarkBridge is an open source bookmark management tool. It is used to merge bookmarks from different browsers, and uses Python for at least a portion of it's regression testing.
David Faure (firstname.lastname@example.org) has made XBEL the bookmarks format for Konqueror, the KDE web browser since KDE 2.1. KDE also features a separate application to edit XBEL bookmarks, keditbookmarks.
linkaGoGo is a commercial online bookmark/favorites "service" which supports import and export in several formats, including XBEL.
Alco Blom's URL Manager Pro, a Mac OS shareware application for managing bookmarks, supports reading files in the XBEL format. See the home page of URL Manager Pro for more information.
XBEL Bookmarks Editor is "a platform and browser bookmark representation that allows content-based retrieval. A platform [independent] application [for easy] bookmark [management]."
ELinks-0.4.0+, an advanced text WWW browser has built-in XBEL bookmarks support. Basic bookmarks operations (same as in the native format) and conversion from/to native ELinks' bookmarks format.
be Bookmarks Editor is a Java-based editor to manage bookmarks in XBEL format.
XML::Filter::Glossary , a Per SAX2 filter for keyword lookup and replacement, with support rimarily for XBEL files.
op2xbel.pl is a Perl script Dan Loda wrote to convert Opera bookmarks to XBEL.
xbel-1.0.xsl is an XSLT script by Jürgen Hermann for converting an XBEL document into a HTML directory.
Merging XBEL Bookmark files, by Uche Ogbuji, is a Python recipe for merging 2 XBEL files.
xbelmark.py is a short python script for converting XBEL XML bookmarks into readable HTML, by Lennart Poettering.
OperaToXBEL.py is a Python script for converting Opera bookmarks to XBEL, by Eddy L O Jansson.
XBELette, a "Client-server solution for managing your bookmarks".
Rebel: A RE(ST API for X)BEL is a convntion proposed for managing the XBEL hierarchicy, and accessing this hierarchy using URL conventions.
Apache::XBEL is an Apache mod_perl handler that uses XSLT to transform XBEL files into dynamic HTML documents.
Favorez is an AxtiveX IE 5+ plug-in program that creates web pages from the users' favorites. It uses XBEL, and includes an XSLT stylsheet for converting XBEL to a dynamic folder-based view. See this announcement for more details and examples.
Waitman C. Gobble, II has posted a sample of PHP code to parse XBEL, in particular XBEL bookmarks generated by Firefox.
Rowan Rodrik has a collection of XBEL tools, including a set of XSLT sheets to transform an XBEL file to a directory of XHTML files or one, big monolithic XHTML file; and an XSLT sheet to alphabetically sort an XBEL file.