/**
	 * Output a single feed entry.
	 */
	function outEntry( WlSyndicationEntry $entry ) {
		echo Xml::openElement( 'entry' ) . "\n";

		echo Xml::element( 'id', null, $entry->getId() ) . "\n";
		echo self::formatTextData( 'title', $entry->getTitle() );

		foreach ( $entry->getLinks() as $rel => $links ) {
			foreach ( $links as $link ) {
				echo Xml::element( 'link', array( 'rel' => $rel ) + $link ) . "\n";
			}
		}

		foreach ( $entry->getAuthors() as $author ) {
			echo self::formatPersonData( 'author', $author ) . "\n";
		}

		foreach ( $entry->getContributors() as $contributor ) {
			echo self::formatPersonData( 'contributor', $contributor ) . "\n";
		}

		foreach ( $entry->getCategories() as $category ) {
			echo Xml::element( 'category', $category ) . "\n";
		}

		echo Xml::element( 'published', null,
			$this->formatTime( $entry->getPublished() ) ) . "\n";

		echo Xml::element( 'updated', null,
			$this->formatTime( $entry->getUpdated() ) ) . "\n";

		echo self::formatTextData( 'rights', $entry->getRights() );

		$source = $entry->getSource();
		if ( $source instanceof WlSyndicationFeed ) {
			echo Xml::tags( 'source', array(
				'xml:lang' => $source->getLanguage()
			), $source->formatFeedMetadata() );
		}

		echo self::formatTextData( 'summary', $entry->getSummary() );
		echo self::formatTextData( 'content', $entry->getContent() );

		echo Xml::closeElement( 'entry' ) . "\n";
	}