<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
	Licensed to the Apache Software Foundation (ASF) under one or more
	contributor license agreements.  See the NOTICE file distributed with
	this work for additional information regarding copyright ownership.
	The ASF licenses this file to You under the Apache License, Version 2.0
	(the "License"); you may not use this file except in compliance with
	the License.  You may obtain a copy of the License at
	
	http://www.apache.org/licenses/LICENSE-2.0
	
	Unless required by applicable law or agreed to in writing, software
	distributed under the License is distributed on an "AS IS" BASIS,
	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
	See the License for the specific language governing permissions and
	limitations under the License.
-->
<rss version="0.91">
    <channel>
      <title>TestChannel</title>
      <link>http://test.channel.com/</link> 
      <description>Sample RSS File for Junit test</description> 
      <language>en-us</language>
      
      <item>
        <title>Home Page of Chris Mattmann</title>
        <link>http://www-scf.usc.edu/~mattmann/</link>
        <description>Chris Mattmann's home page</description>
      </item>
      <item>
        <title>Awesome Open Source Search Engine</title> 
        <link>http://www.nutch.org/</link> 
        <description>Yup, that's what it is</description> 
      </item>
   </channel>
</rss>
