You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2006/09/29 23:22:54 UTC

svn commit: r451450 [3/4] - in /incubator/abdera/java/trunk: client/src/test/java/org/apache/abdera/test/client/app/ core/src/main/java/org/apache/abdera/model/ core/src/main/java/org/apache/abdera/parser/ core/src/main/java/org/apache/abdera/util/ cor...

Modified: incubator/abdera/java/trunk/parser/src/test/java/org/apache/abdera/test/parser/stax/FeedValidatorTest.java
URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/parser/src/test/java/org/apache/abdera/test/parser/stax/FeedValidatorTest.java?view=diff&rev=451450&r1=451449&r2=451450
==============================================================================
--- incubator/abdera/java/trunk/parser/src/test/java/org/apache/abdera/test/parser/stax/FeedValidatorTest.java (original)
+++ incubator/abdera/java/trunk/parser/src/test/java/org/apache/abdera/test/parser/stax/FeedValidatorTest.java Fri Sep 29 14:22:50 2006
@@ -20,8 +20,6 @@
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
-import java.net.URI;
-import java.net.URISyntaxException;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.List;
@@ -45,14 +43,16 @@
 import org.apache.abdera.model.Source;
 import org.apache.abdera.model.Text;
 import org.apache.abdera.util.URIHelper;
+import org.apache.abdera.util.iri.IRI;
+import org.apache.abdera.util.iri.IRISyntaxException;
 import org.apache.axiom.om.OMException;
 
 public class FeedValidatorTest 
   extends BaseParserTestCase { //extends TestCase {
 
-  private static URI baseURI = null;
+  private static IRI baseURI = null;
   
-  private static <T extends Element> Document<T> get(URI uri) {
+  private static <T extends Element> Document<T> get(IRI uri) {
     try {
       //return Parser.INSTANCE.parse(uri.toURL().openStream(), uri);
       return parse(uri);
@@ -63,7 +63,7 @@
 
   @Override
   protected void setUp() throws Exception {
-    baseURI = new URI("http://feedvalidator.org/testcases/atom/");
+    baseURI = new IRI("http://feedvalidator.org/testcases/atom/");
     super.setUp();
   }
 
@@ -71,7 +71,7 @@
   public static void testSection11BriefNoError() throws Exception {
     
     // http://feedvalidator.org/testcases/atom/1.1/brief-noerror.xml
-    URI uri = baseURI.resolve("1.1/brief-noerror.xml");
+    IRI uri = baseURI.resolve("1.1/brief-noerror.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Feed feed = doc.getRoot();
@@ -86,7 +86,7 @@
     assertEquals(1, links.size());
     for (Link link : links) {
       assertNull(link.getRel()); // it's an alternate link
-      assertEquals(link.getHref(), new URI("http://example.org/"));
+      assertEquals(link.getHref(), new IRI("http://example.org/"));
       assertNull(link.getHrefLang());
       assertNull(link.getMimeType());
       assertNull(link.getTitle());
@@ -110,7 +110,7 @@
     assertNull(person.getUri());
     IRIElement id = feed.getIdElement();
     assertNotNull(id);
-    assertEquals(id.getValue(), new URI("urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6"));
+    assertEquals(id.getValue(), new IRI("urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6"));
     List<Entry> entries = feed.getEntries();
     assertEquals(entries.size(), 1);
     for (Entry entry : entries) {
@@ -123,7 +123,7 @@
       assertEquals(1, links.size());
       for (Link link : links) {
         assertNull(link.getRel()); // it's an alternate link
-        assertEquals(link.getHref(), new URI("http://example.org/2003/12/13/atom03"));
+        assertEquals(link.getHref(), new IRI("http://example.org/2003/12/13/atom03"));
         assertNull(link.getHrefLang());
         assertNull(link.getMimeType());
         assertNull(link.getTitle());
@@ -135,7 +135,7 @@
       assertEquals(links.size(),0);
       id = entry.getIdElement();
       assertNotNull(id);
-      assertEquals(id.getValue(), new URI("urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a"));
+      assertEquals(id.getValue(), new IRI("urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a"));
       assertNotNull(entry.getUpdatedElement());
       dte = entry.getUpdatedElement();
       dt = dte.getValue();
@@ -154,7 +154,7 @@
   public static void testSection11ExtensiveNoError() throws Exception {
     
     //http://feedvalidator.org/testcases/atom/1.1/extensive-noerror.xml
-    URI uri = baseURI.resolve("1.1/extensive-noerror.xml");
+    IRI uri = baseURI.resolve("1.1/extensive-noerror.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Feed feed = doc.getRoot();
@@ -170,14 +170,14 @@
     assertNotNull(feed.getUpdatedElement().getValue().getDate());
     assertNotNull(feed.getIdElement());
     assertTrue(feed.getIdElement() instanceof IRIElement);
-    assertEquals(feed.getIdElement().getValue(), new URI("tag:example.org,2003:3"));
+    assertEquals(feed.getIdElement().getValue(), new IRI("tag:example.org,2003:3"));
     List<Link> links = feed.getLinks(Link.REL_ALTERNATE);
     assertEquals(links.size(), 1);
     for (Link link : links) {
       assertEquals(link.getRel(), "alternate");
       assertEquals(link.getMimeType().toString(), "text/html");
       assertEquals(link.getHrefLang(), "en");
-      assertEquals(link.getHref(), new URI("http://example.org/"));
+      assertEquals(link.getHref(), new IRI("http://example.org/"));
       assertNull(link.getTitle());
       assertEquals(link.getLength(),-1);
     }
@@ -186,7 +186,7 @@
     for (Link link : links) {
       assertEquals(link.getRel(), "self");
       assertEquals(link.getMimeType().toString(), "application/atom+xml");
-      assertEquals(link.getHref(), new URI("http://example.org/feed.atom"));
+      assertEquals(link.getHref(), new IRI("http://example.org/feed.atom"));
       assertNull(link.getHrefLang());
       assertNull(link.getTitle());
       assertEquals(link.getLength(),-1);
@@ -196,7 +196,7 @@
     assertEquals(feed.getRightsElement().getValue(), "Copyright (c) 2003, Mark Pilgrim");
     assertNotNull(feed.getGenerator());
     Generator generator = feed.getGenerator();
-    assertEquals(generator.getUri(), new URI("http://www.example.com/"));
+    assertEquals(generator.getUri(), new IRI("http://www.example.com/"));
     assertEquals(generator.getVersion(), "1.0");
     assertNotNull(generator.getText());
     assertEquals(generator.getText().trim(), "Example Toolkit");
@@ -212,7 +212,7 @@
       for (Link link : links) {
         assertEquals(link.getRel(), "alternate");
         assertEquals(link.getMimeType().toString(), "text/html");
-        assertEquals(link.getHref(), new URI("http://example.org/2005/04/02/atom"));
+        assertEquals(link.getHref(), new IRI("http://example.org/2005/04/02/atom"));
         assertNull(link.getHrefLang());
         assertNull(link.getTitle());
         assertEquals(link.getLength(),-1);
@@ -222,13 +222,13 @@
       for (Link link : links) {
         assertEquals(link.getRel(), "enclosure");
         assertEquals(link.getMimeType().toString(), "audio/mpeg");
-        assertEquals(link.getHref(), new URI("http://example.org/audio/ph34r_my_podcast.mp3"));
+        assertEquals(link.getHref(), new IRI("http://example.org/audio/ph34r_my_podcast.mp3"));
         assertEquals(link.getLength(),1337);
         assertNull(link.getHrefLang());
         assertNull(link.getTitle());
       }
       assertNotNull(entry.getIdElement());
-      assertEquals(entry.getIdElement().getValue(), new URI("tag:example.org,2003:3.2397"));
+      assertEquals(entry.getIdElement().getValue(), new IRI("tag:example.org,2003:3.2397"));
       assertNotNull(entry.getUpdatedElement());
       assertNotNull(entry.getPublishedElement());
       Person person = entry.getAuthor();
@@ -236,20 +236,20 @@
       assertEquals(person.getName(),"Mark Pilgrim");
       assertEquals(person.getEmail(), "f8dy@example.com");
       assertNotNull(person.getUriElement());
-      assertEquals(person.getUriElement().getValue(), new URI("http://example.org/"));
+      assertEquals(person.getUriElement().getValue(), new IRI("http://example.org/"));
       List<Person> contributors = entry.getContributors();
       assertNotNull(contributors);
       assertEquals(contributors.size(),2);
       assertNotNull(entry.getContentElement());
       assertEquals(entry.getContentElement().getContentType(), Content.Type.XHTML);
       assertEquals(entry.getContentElement().getLanguage(), "en");
-      assertEquals(entry.getContentElement().getBaseUri(), new URI("http://diveintomark.org/"));
+      assertEquals(entry.getContentElement().getBaseUri(), new IRI("http://diveintomark.org/"));
     }
   }
   
   public static void testSection12MissingNamespace() throws Exception {
     //http://feedvalidator.org/testcases/atom/1.2/missing-namespace.xml
-    URI uri = baseURI.resolve("1.2/missing-namespace.xml");
+    IRI uri = baseURI.resolve("1.2/missing-namespace.xml");
     Document doc = null;
     doc = get(uri);
     assertNotNull(doc);
@@ -258,7 +258,7 @@
   
   public static void testSection12PrefixedNamespace() throws Exception {
     //http://feedvalidator.org/testcases/atom/1.2/prefixed-namespace.xml
-    URI uri = baseURI.resolve("1.2/prefixed-namespace.xml");
+    IRI uri = baseURI.resolve("1.2/prefixed-namespace.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Feed feed = doc.getRoot();
@@ -268,7 +268,7 @@
   
   public static void testSection12WrongNamespaceCase() throws Exception {
     //http://feedvalidator.org/testcases/atom/1.2/wrong-namespace-case.xml
-    URI uri = baseURI.resolve("1.2/wrong-namespace-case.xml");
+    IRI uri = baseURI.resolve("1.2/wrong-namespace-case.xml");
     Document doc = null;
     doc = get(uri);
     assertNotNull(doc);
@@ -277,7 +277,7 @@
 
   public static void testSection12WrongNamespace() throws Exception {
     //http://feedvalidator.org/testcases/atom/1.2/wrong-namespace.xml
-    URI uri = baseURI.resolve("1.2/wrong-namespace.xml");
+    IRI uri = baseURI.resolve("1.2/wrong-namespace.xml");
     Document doc = null;
     doc = get(uri);
     assertNotNull(doc);
@@ -286,7 +286,7 @@
   
   public static void testSection2BriefEntry() throws Exception {
     //http://feedvalidator.org/testcases/atom/2/brief-entry-noerror.xml
-    URI uri = baseURI.resolve("2/brief-entry-noerror.xml");
+    IRI uri = baseURI.resolve("2/brief-entry-noerror.xml");
     Document<Entry> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot();
@@ -306,7 +306,7 @@
   
   public static void testSection2InfosetAttrOrder() throws Exception {
     //http://feedvalidator.org/testcases/atom/2/infoset-attr-order.xml
-    URI uri = baseURI.resolve("2/infoset-attr-order.xml");
+    IRI uri = baseURI.resolve("2/infoset-attr-order.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Feed feed = doc.getRoot();
@@ -321,7 +321,7 @@
   
   public static void testSection2InfosetCDATA() throws Exception {
     //http://feedvalidator.org/testcases/atom/2/infoset-cdata.xml
-    URI uri = baseURI.resolve("2/infoset-cdata.xml");
+    IRI uri = baseURI.resolve("2/infoset-cdata.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Feed feed = doc.getRoot();
@@ -338,7 +338,7 @@
   @SuppressWarnings("deprecation")
   public static void testSection2InfosetCharRef() throws Exception {
     //http://feedvalidator.org/testcases/atom/2/infoset-char-ref.xml
-    URI uri = baseURI.resolve("2/infoset-char-ref.xml");
+    IRI uri = baseURI.resolve("2/infoset-char-ref.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Feed feed = doc.getRoot();
@@ -354,19 +354,19 @@
   
   public static void testSection2InfosetElementWhitespace() throws Exception {
     //http://feedvalidator.org/testcases/atom/2/infoset-element-whitespace.xml
-    URI uri = baseURI.resolve("2/infoset-element-whitespace.xml");
+    IRI uri = baseURI.resolve("2/infoset-element-whitespace.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Feed feed = doc.getRoot();
     assertNotNull(feed);
     Link link = feed.getAlternateLink();
-    assertEquals(link.getResolvedHref(), new URI("http://example.org/"));
+    assertEquals(link.getResolvedHref(), new IRI("http://example.org/"));
     // the feed has a second alternate link that we will ignore
   }
   
   public static void testSection2InfosetEmpty1() throws Exception {
     //http://feedvalidator.org/testcases/atom/2/infoset-empty1.xml
-    URI uri = baseURI.resolve("2/infoset-empty1.xml");
+    IRI uri = baseURI.resolve("2/infoset-empty1.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Feed feed = doc.getRoot();
@@ -377,7 +377,7 @@
   
   public static void testSection2InfosetEmpty2() throws Exception {
     //http://feedvalidator.org/testcases/atom/2/infoset-empty2.xml
-    URI uri = baseURI.resolve("2/infoset-empty2.xml");
+    IRI uri = baseURI.resolve("2/infoset-empty2.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Feed feed = doc.getRoot();
@@ -388,28 +388,28 @@
   
   public static void testSection2InfosetSingleQuote() throws Exception {
     //http://feedvalidator.org/testcases/atom/2/infoset-quote-single.xml
-    URI uri = baseURI.resolve("2/infoset-quote-single.xml");
+    IRI uri = baseURI.resolve("2/infoset-quote-single.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
-    assertEquals(doc.getRoot().getAlternateLink().getResolvedHref(), new URI("http://example.org/"));
+    assertEquals(doc.getRoot().getAlternateLink().getResolvedHref(), new IRI("http://example.org/"));
   }
   
   public static void testSection2InvalidXmlBase() throws Exception {
     //http://feedvalidator.org/testcases/atom/2/invalid-xml-base.xml
-    URI uri = baseURI.resolve("2/invalid-xml-base.xml");
+    IRI uri = baseURI.resolve("2/invalid-xml-base.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Feed feed = doc.getRoot();
     try {
       feed.getBaseUri();
     } catch (Exception e) {
-      assertTrue(e instanceof URISyntaxException);
+      assertTrue(e instanceof IRISyntaxException);
     }
   }
   
   public static void testSection2InvalidXmlLang() throws Exception {
     //http://feedvalidator.org/testcases/atom/2/invalid-xml-lang.xml
-    URI uri = baseURI.resolve("2/invalid-xml-lang.xml");
+    IRI uri = baseURI.resolve("2/invalid-xml-lang.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     assertFalse(java.util.Locale.US.equals(doc.getRoot().getLocale()));
@@ -417,7 +417,7 @@
   
   public static void testSection2Iri() throws Exception {
     //http://feedvalidator.org/testcases/atom/2/iri.xml
-    URI uri = baseURI.resolve("2/iri.xml");
+    IRI uri = baseURI.resolve("2/iri.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -430,32 +430,32 @@
   
   public static void testSection2XmlBaseAmbiguous() throws Exception {
     //http://feedvalidator.org/testcases/atom/2/xml-base-ambiguous.xml
-    URI uri = baseURI.resolve("2/xml-base-ambiguous.xml");
+    IRI uri = baseURI.resolve("2/xml-base-ambiguous.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
-    assertEquals(doc.getRoot().getAlternateLink().getResolvedHref(), new URI("http://example.org/"));
+    assertEquals(doc.getRoot().getAlternateLink().getResolvedHref(), new IRI("http://example.org/"));
   }
   
   public static void testSection2XmlBaseElemEqDoc() throws Exception {
     //http://feedvalidator.org/testcases/atom/2/xml-base-elem-eq-doc.xml
-    URI uri = baseURI.resolve("2/xml-base-elem-eq-doc.xml");
+    IRI uri = baseURI.resolve("2/xml-base-elem-eq-doc.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
-    assertEquals(entry.getAlternateLink().getResolvedHref(), new URI("http://www.feedvalidator.org/2003/12/13/atom03"));
+    assertEquals(entry.getAlternateLink().getResolvedHref(), new IRI("http://www.feedvalidator.org/2003/12/13/atom03"));
   }
   
   public static void testSection2XmlBaseElemNeDoc() throws Exception {
     //http://feedvalidator.org/testcases/atom/2/xml-base-elem-ne-doc.xml
-    URI uri = baseURI.resolve("2/xml-base-elem-ne-doc.xml");
+    IRI uri = baseURI.resolve("2/xml-base-elem-ne-doc.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
-    assertEquals(doc.getRoot().getSelfLink().getResolvedHref(),new URI("http://www.feedvalidator.org/testcases/atom/2/xml-base-elem-ne-doc.xml"));
+    assertEquals(doc.getRoot().getSelfLink().getResolvedHref(),new IRI("http://www.feedvalidator.org/testcases/atom/2/xml-base-elem-ne-doc.xml"));
   }
   
   public static void testSection2XmlBase() throws Exception {
     //http://feedvalidator.org/testcases/atom/2/xml-base.xml
-    URI uri = baseURI.resolve("2/xml-base.xml");
+    IRI uri = baseURI.resolve("2/xml-base.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -463,13 +463,13 @@
     assertNotNull(feed);
     List<Link> links = feed.getLinks();
     for (Link link : links) {
-      assertEquals(link.getResolvedHref(), new URI("http://example.org/index.html"));
+      assertEquals(link.getResolvedHref(), new IRI("http://example.org/index.html"));
     }
   }
   
   public static void testSection2XmlLangBlank() throws Exception {
     //http://feedvalidator.org/testcases/atom/2/xml-lang-blank.xml
-    URI uri = baseURI.resolve("2/xml-lang-blank.xml");
+    IRI uri = baseURI.resolve("2/xml-lang-blank.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     assertNull(doc.getRoot().getLocale());
@@ -477,7 +477,7 @@
   
   public static void testSection2XmlLang() throws Exception {
     //http://feedvalidator.org/testcases/atom/2/xml-lang.xml
-    URI uri = baseURI.resolve("2/xml-lang.xml");
+    IRI uri = baseURI.resolve("2/xml-lang.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -489,7 +489,7 @@
   
   public static void testSection3WsAuthorUri() throws Exception {
     //http://feedvalidator.org/testcases/atom/3/ws-author-uri.xml
-    URI uri = baseURI.resolve("3/ws-author-uri.xml");
+    IRI uri = baseURI.resolve("3/ws-author-uri.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -499,13 +499,13 @@
     try {
       author.getUriElement().getValue();
     } catch (Exception e) {
-      assertTrue(e instanceof URISyntaxException);
+      assertTrue(e instanceof IRISyntaxException);
     }
   }
   
   public static void testSection3WsCategoryScheme() throws Exception {
     //http://feedvalidator.org/testcases/atom/3/ws-category-scheme.xml
-    URI uri = baseURI.resolve("3/ws-category-scheme.xml");
+    IRI uri = baseURI.resolve("3/ws-category-scheme.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -519,7 +519,7 @@
         try {
           cat.getScheme();
         } catch (Exception e) {
-          assertTrue(e instanceof URISyntaxException);
+          assertTrue(e instanceof IRISyntaxException);
         }
       }
     }
@@ -527,7 +527,7 @@
   
   public static void testSection3WsContentSrc() throws Exception {
     //http://feedvalidator.org/testcases/atom/3/ws-content-src.xml
-    URI uri = baseURI.resolve("3/ws-content-src.xml");
+    IRI uri = baseURI.resolve("3/ws-content-src.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -541,14 +541,14 @@
       try {
         content.getSrc();
       } catch (Exception e) {
-        assertTrue(e instanceof URISyntaxException);
+        assertTrue(e instanceof IRISyntaxException);
       }
     }
   }
   
   public static void testSection3WsEntryId() throws Exception {
     //http://feedvalidator.org/testcases/atom/3/ws-entry-id.xml
-    URI uri = baseURI.resolve("3/ws-entry-id.xml");
+    IRI uri = baseURI.resolve("3/ws-entry-id.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -562,14 +562,14 @@
       try {
         id.getValue();
       } catch (Exception e) {
-        assertTrue(e instanceof URISyntaxException);
+        assertTrue(e instanceof IRISyntaxException);
       }
     }
   }
   
   public static void testSection3WsEntryPublished() throws Exception {
     //http://feedvalidator.org/testcases/atom/3/ws-entry-published.xml
-    URI uri = baseURI.resolve("3/ws-entry-published.xml");
+    IRI uri = baseURI.resolve("3/ws-entry-published.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -588,7 +588,7 @@
   
   public static void testSection3WsEntryUpdated() throws Exception {
     //http://feedvalidator.org/testcases/atom/3/ws-entry-updated.xml
-    URI uri = baseURI.resolve("3/ws-entry-updated.xml");
+    IRI uri = baseURI.resolve("3/ws-entry-updated.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -607,7 +607,7 @@
   
   public static void testSection3WsFeedIcon() throws Exception {
     //http://feedvalidator.org/testcases/atom/3/ws-feed-icon.xml
-    URI uri = baseURI.resolve("3/ws-feed-icon.xml");
+    IRI uri = baseURI.resolve("3/ws-feed-icon.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -616,13 +616,13 @@
     try {
       feed.getIconElement().getValue();
     } catch (Exception e) {
-      assertTrue(e instanceof URISyntaxException);
+      assertTrue(e instanceof IRISyntaxException);
     }
   }
 
   public static void testSection3WsFeedId() throws Exception {
     //http://feedvalidator.org/testcases/atom/3/ws-feed-id.xml
-    URI uri = baseURI.resolve("3/ws-feed-id.xml");
+    IRI uri = baseURI.resolve("3/ws-feed-id.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -631,13 +631,13 @@
     try {
       feed.getIdElement().getValue();
     } catch (Exception e) {
-      assertTrue(e instanceof URISyntaxException);
+      assertTrue(e instanceof IRISyntaxException);
     }
   }
   
   public static void testSection3WsFeedLogo() throws Exception {
     //http://feedvalidator.org/testcases/atom/3/ws-feed-logo.xml
-    URI uri = baseURI.resolve("3/ws-feed-logo.xml");
+    IRI uri = baseURI.resolve("3/ws-feed-logo.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -646,13 +646,13 @@
     try {
       feed.getLogoElement().getValue();
     } catch (Exception e) {
-      assertTrue(e instanceof URISyntaxException);
+      assertTrue(e instanceof IRISyntaxException);
     }
   }
   
   public static void testSection3WsFeedUpdated() throws Exception {
     //http://feedvalidator.org/testcases/atom/3/ws-feed-updated.xml
-    URI uri = baseURI.resolve("3/ws-feed-updated.xml");
+    IRI uri = baseURI.resolve("3/ws-feed-updated.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -667,7 +667,7 @@
   
   public static void testSection3WsGeneratorUri() throws Exception {
     //http://feedvalidator.org/testcases/atom/3/ws-generator-uri.xml
-    URI uri = baseURI.resolve("3/ws-generator-uri.xml");
+    IRI uri = baseURI.resolve("3/ws-generator-uri.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -678,13 +678,13 @@
     try {
       gen.getUri();
     } catch (Exception e) {
-      assertTrue(e instanceof URISyntaxException);
+      assertTrue(e instanceof IRISyntaxException);
     }
   }
   
   public static void testSection3WsLinkHref() throws Exception {
     //http://feedvalidator.org/testcases/atom/3/ws-link-href.xml
-    URI uri = baseURI.resolve("3/ws-link-href.xml");
+    IRI uri = baseURI.resolve("3/ws-link-href.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -695,14 +695,14 @@
       try {
         link.getHref();
       } catch (Exception e) {
-        assertTrue(e instanceof URISyntaxException);
+        assertTrue(e instanceof IRISyntaxException);
       }
     }
   }
   
   public static void testSection3WsLinkRel() throws Exception {
     //http://feedvalidator.org/testcases/atom/3/ws-link-rel.xml
-    URI uri = baseURI.resolve("3/ws-link-rel.xml");
+    IRI uri = baseURI.resolve("3/ws-link-rel.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     assertNull(doc.getRoot().getAlternateLink());
@@ -710,7 +710,7 @@
   
   public static void testSection3WsXmlBase() throws Exception {
     //http://feedvalidator.org/testcases/atom/3/ws-xml-base.xml
-    URI uri = baseURI.resolve("3/ws-xml-base.xml");
+    IRI uri = baseURI.resolve("3/ws-xml-base.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -721,14 +721,14 @@
       try {
         entry.getBaseUri();
       } catch (Exception e) {
-        assertTrue(e instanceof URISyntaxException);
+        assertTrue(e instanceof IRISyntaxException);
       }
     }
   }
   
   public static void testSection311SummaryTypeMime() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.1.1/summary_type_mime.xml
-    URI uri = baseURI.resolve("3.1.1/summary_type_mime.xml");
+    IRI uri = baseURI.resolve("3.1.1/summary_type_mime.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -743,7 +743,7 @@
   
   public static void testSection3111EscapedText() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.1.1.1/escaped_text.xml
-    URI uri = baseURI.resolve("3.1.1.1/escaped_text.xml");
+    IRI uri = baseURI.resolve("3.1.1.1/escaped_text.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -761,7 +761,7 @@
   
   public static void testSection3111ExampleTextTitle() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.1.1.1/example_text_title.xml
-    URI uri = baseURI.resolve("3.1.1.1/example_text_title.xml");
+    IRI uri = baseURI.resolve("3.1.1.1/example_text_title.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -779,7 +779,7 @@
   
   public static void testSection3111SummaryTypeMime() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.1.1.1/summary_type_mime.xml
-    URI uri = baseURI.resolve("3.1.1.1/summary_type_mime.xml");
+    IRI uri = baseURI.resolve("3.1.1.1/summary_type_mime.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -794,7 +794,7 @@
   
   public static void testSection3112ExampleHtmlTitle() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.1.1.2/example_html_title.xml
-    URI uri = baseURI.resolve("3.1.1.2/example_html_title.xml");
+    IRI uri = baseURI.resolve("3.1.1.2/example_html_title.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -811,7 +811,7 @@
   
   public static void testSection3112InvalidHtml() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.1.1.2/invalid_html.xml
-    URI uri = baseURI.resolve("3.1.1.2/invalid_html.xml");
+    IRI uri = baseURI.resolve("3.1.1.2/invalid_html.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
@@ -820,7 +820,7 @@
   
   public static void testSection3112TextWithEscapedHtml() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.1.1.2/text_with_escaped_html.xml
-    URI uri = baseURI.resolve("3.1.1.2/text_with_escaped_html.xml");
+    IRI uri = baseURI.resolve("3.1.1.2/text_with_escaped_html.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
@@ -829,7 +829,7 @@
   
   public static void testSection3112ValidHtml() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.1.1.2/valid_html.xml
-    URI uri = baseURI.resolve("3.1.1.2/valid_html.xml");
+    IRI uri = baseURI.resolve("3.1.1.2/valid_html.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
@@ -839,7 +839,7 @@
   
   public static void testSection3113ExampleXhtmlSummary1() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.1.1.3/example_xhtml_summary1.xml
-    URI uri = baseURI.resolve("3.1.1.3/example_xhtml_summary1.xml");
+    IRI uri = baseURI.resolve("3.1.1.3/example_xhtml_summary1.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -857,7 +857,7 @@
   
   public static void testSection3113ExampleXhtmlSummary2() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.1.1.3/example_xhtml_summary2.xml
-    URI uri = baseURI.resolve("3.1.1.3/example_xhtml_summary2.xml");
+    IRI uri = baseURI.resolve("3.1.1.3/example_xhtml_summary2.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -875,7 +875,7 @@
   
   public static void testSection3113ExampleXhtmlSummary3() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.1.1.3/example_xhtml_summary3.xml
-    URI uri = baseURI.resolve("3.1.1.3/example_xhtml_summary3.xml");
+    IRI uri = baseURI.resolve("3.1.1.3/example_xhtml_summary3.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -893,7 +893,7 @@
   
   public static void testSection3113MissingXhtmlDiv() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.1.1.3/missing_xhtml_div.xml
-    URI uri = baseURI.resolve("3.1.1.3/missing_xhtml_div.xml");
+    IRI uri = baseURI.resolve("3.1.1.3/missing_xhtml_div.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -911,7 +911,7 @@
   
   public static void testSection3113XhtmlNamedEntity() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.1.1.3/xhtml_named_entity.xml
-    URI uri = baseURI.resolve("3.1.1.3/xhtml_named_entity.xml");
+    IRI uri = baseURI.resolve("3.1.1.3/xhtml_named_entity.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Feed feed = doc.getRoot();
@@ -930,7 +930,7 @@
   
   public static void testSection321MultipleNames() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.2.1/multiple-names.xml
-    URI uri = baseURI.resolve("3.2.1/multiple-names.xml");
+    IRI uri = baseURI.resolve("3.2.1/multiple-names.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     assertEquals(doc.getRoot().getContributors().get(0).getName(),"George Washington");
@@ -938,7 +938,7 @@
   
   public static void testSection321NoName() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.2.1/no-name.xml
-    URI uri = baseURI.resolve("3.2.1/no-name.xml");
+    IRI uri = baseURI.resolve("3.2.1/no-name.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     assertNull(doc.getRoot().getContributors().get(0).getName());
@@ -946,7 +946,7 @@
   
   public static void testSection322InvalidUri() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.2.2/invalid-uri.xml
-    URI uri = baseURI.resolve("3.2.2/invalid-uri.xml");
+    IRI uri = baseURI.resolve("3.2.2/invalid-uri.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -957,22 +957,22 @@
       try {
         person.getUriElement();
       } catch (Exception e) {
-        assertFalse(e instanceof URISyntaxException);
+        assertFalse(e instanceof IRISyntaxException);
       }
     }
   }
   
   public static void testSection322MultipleUris() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.2.2/multiple-uris.xml
-    URI uri = baseURI.resolve("3.2.2/multiple-uris.xml");
+    IRI uri = baseURI.resolve("3.2.2/multiple-uris.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
-    assertEquals(doc.getRoot().getContributors().get(0).getUri(), new URI("http://example.com/~jane/"));
+    assertEquals(doc.getRoot().getContributors().get(0).getUri(), new IRI("http://example.com/~jane/"));
   }
   
   public static void testSection322RelativeRef() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.2.2/relative-ref.xml
-    URI uri = baseURI.resolve("3.2.2/relative-ref.xml");
+    IRI uri = baseURI.resolve("3.2.2/relative-ref.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -980,14 +980,14 @@
     assertNotNull(feed);
     List<Person> contr = feed.getContributors();
     for (Person person : contr) {
-      assertEquals(person.getUriElement().getValue(), new URI("~jane/"));
+      assertEquals(person.getUriElement().getValue(), new IRI("~jane/"));
       assertEquals(person.getUriElement().getResolvedValue(), uri.resolve("~jane/"));
     }
   }
   
   public static void testSection323EmailRss20Style() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.2.3/email-rss20-style.xml
-    URI uri = baseURI.resolve("3.2.3/email-rss20-style.xml");
+    IRI uri = baseURI.resolve("3.2.3/email-rss20-style.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -996,16 +996,16 @@
     List<Person> contr = feed.getContributors();
     for (Person person : contr) {
       try {
-        new URI(person.getEmail()); 
+        new IRI(person.getEmail()); 
       } catch (Exception e) {
-        assertTrue(e instanceof URISyntaxException);
+        assertTrue(e instanceof IRISyntaxException);
       }
     }
   }
   
   public static void testSection323EmailWithName() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.2.3/email-with-name.xml
-    URI uri = baseURI.resolve("3.2.3/email-with-name.xml");
+    IRI uri = baseURI.resolve("3.2.3/email-with-name.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1014,16 +1014,16 @@
     List<Person> contr = feed.getContributors();
     for (Person person : contr) {
       try {
-        new URI(person.getEmail()); 
+        new IRI(person.getEmail()); 
       } catch (Exception e) {
-        assertTrue(e instanceof URISyntaxException);
+        assertTrue(e instanceof IRISyntaxException);
       }
     }
   }  
   
   public static void testSection323EmailWithPlus() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.2.3/email-with-plus.xml
-    URI uri = baseURI.resolve("3.2.3/email-with-plus.xml");
+    IRI uri = baseURI.resolve("3.2.3/email-with-plus.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1031,13 +1031,13 @@
     assertNotNull(feed);
     List<Person> contr = feed.getContributors();
     for (Person person : contr) {
-      new URI(person.getEmail()); 
+      new IRI(person.getEmail()); 
     }
   }
 
   public static void testSection323InvalidEmail() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.2.3/invalid-email.xml
-    URI uri = baseURI.resolve("3.2.3/invalid-email.xml");
+    IRI uri = baseURI.resolve("3.2.3/invalid-email.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1046,16 +1046,16 @@
     List<Person> contr = feed.getContributors();
     for (Person person : contr) {
       try {
-        new URI(person.getEmail());
+        new IRI(person.getEmail());
       } catch (Exception e) {
-        assertTrue(e instanceof URISyntaxException);
+        assertTrue(e instanceof IRISyntaxException);
       }
     }
   }
   
   public static void testSection323MultipleEmails() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.2.3/multiple-emails.xml
-    URI uri = baseURI.resolve("3.2.3/multiple-emails.xml");
+    IRI uri = baseURI.resolve("3.2.3/multiple-emails.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     assertEquals(doc.getRoot().getContributors().get(0).getEmail(), "jane@example.com");
@@ -1063,7 +1063,7 @@
   
   public static void testSection33DuplicateUpdated() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/duplicate-updated.xml
-    URI uri = baseURI.resolve("3.3/duplicate-updated.xml");
+    IRI uri = baseURI.resolve("3.3/duplicate-updated.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Date d = AtomDate.parse("2003-12-13T18:30:02Z");
@@ -1075,7 +1075,7 @@
   
   public static void testSection33LowercaseUpdated() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/lowercase-updated.xml
-    URI uri = baseURI.resolve("3.3/lowercase-updated.xml");
+    IRI uri = baseURI.resolve("3.3/lowercase-updated.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1090,7 +1090,7 @@
   
   public static void testSection33PublishedBadDay() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_bad_day.xml
-    URI uri = baseURI.resolve("3.3/published_bad_day.xml");
+    IRI uri = baseURI.resolve("3.3/published_bad_day.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Date d = AtomDate.parse("2003-07-32T15:51:30-05:00");
@@ -1099,7 +1099,7 @@
   
   public static void testSection33PublishedBadDay2() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_bad_day2.xml
-    URI uri = baseURI.resolve("3.3/published_bad_day2.xml");
+    IRI uri = baseURI.resolve("3.3/published_bad_day2.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     // this is an invalid date, but we don't care because we're not doing
@@ -1110,7 +1110,7 @@
   
   public static void testSection33PublishedBadHours() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_bad_hours.xml
-    URI uri = baseURI.resolve("3.3/published_bad_hours.xml");
+    IRI uri = baseURI.resolve("3.3/published_bad_hours.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Date d = AtomDate.parse("2003-07-01T25:51:30-05:00");
@@ -1119,7 +1119,7 @@
   
   public static void testSecton33PublishedBadMinutes() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_bad_minutes.xml
-    URI uri = baseURI.resolve("3.3/published_bad_minutes.xml");
+    IRI uri = baseURI.resolve("3.3/published_bad_minutes.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Date d = AtomDate.parse("2003-07-01T01:61:30-05:00");
@@ -1128,7 +1128,7 @@
   
   public static void testSection33PublishedBadMonth() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_bad_month.xml
-    URI uri = baseURI.resolve("3.3/published_bad_month.xml");
+    IRI uri = baseURI.resolve("3.3/published_bad_month.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Date d = AtomDate.parse("2003-13-01T15:51:30-05:00");
@@ -1137,7 +1137,7 @@
   
   public static void testSection33PublishedBadSeconds() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_bad_seconds.xml
-    URI uri = baseURI.resolve("3.3/published_bad_seconds.xml");
+    IRI uri = baseURI.resolve("3.3/published_bad_seconds.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Date d = AtomDate.parse("2003-07-01T01:55:61-05:00");
@@ -1146,7 +1146,7 @@
   
   public static void testSection33PublishedDateOnly() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_date_only.xml
-    URI uri = baseURI.resolve("3.3/published_date_only.xml");
+    IRI uri = baseURI.resolve("3.3/published_date_only.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1164,7 +1164,7 @@
   
   public static void testSection33PublishedExtraSpaces() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_extra_spaces.xml
-    URI uri = baseURI.resolve("3.3/published_extra_spaces.xml");
+    IRI uri = baseURI.resolve("3.3/published_extra_spaces.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1182,7 +1182,7 @@
   
   public static void testSection33PublishedExtraSpaces2() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_extra_spaces2.xml
-    URI uri = baseURI.resolve("3.3/published_extra_spaces2.xml");
+    IRI uri = baseURI.resolve("3.3/published_extra_spaces2.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1200,7 +1200,7 @@
   
   public static void testSection33PublishedExtraSpaces3() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_extra_spaces3.xml
-    URI uri = baseURI.resolve("3.3/published_extra_spaces3.xml");
+    IRI uri = baseURI.resolve("3.3/published_extra_spaces3.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1218,7 +1218,7 @@
   
   public static void testSection33PublishedExtraSpaces4() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_extra_spaces4.xml
-    URI uri = baseURI.resolve("3.3/published_extra_spaces4.xml");
+    IRI uri = baseURI.resolve("3.3/published_extra_spaces4.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1236,7 +1236,7 @@
   
   public static void testSection33PublishedExtraSpaces5() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_extra_spaces5.xml
-    URI uri = baseURI.resolve("3.3/published_extra_spaces5.xml");
+    IRI uri = baseURI.resolve("3.3/published_extra_spaces5.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1254,7 +1254,7 @@
   
   public static void testSection33PublishedFractionalSecond() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_fractional_second.xml
-    URI uri = baseURI.resolve("3.3/published_fractional_second.xml");
+    IRI uri = baseURI.resolve("3.3/published_fractional_second.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1268,7 +1268,7 @@
   
   public static void testSection33PublishedHoursMinutes() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_hours_minutes.xml
-    URI uri = baseURI.resolve("3.3/published_hours_minutes.xml");
+    IRI uri = baseURI.resolve("3.3/published_hours_minutes.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1286,7 +1286,7 @@
   
   public static void testSection33PublishedNoColons() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_no_colons.xml
-    URI uri = baseURI.resolve("3.3/published_no_colons.xml");
+    IRI uri = baseURI.resolve("3.3/published_no_colons.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1304,7 +1304,7 @@
   
   public static void testSection33PublishedNoHyphens() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_no_hyphens.xml
-    URI uri = baseURI.resolve("3.3/published_no_hyphens.xml");
+    IRI uri = baseURI.resolve("3.3/published_no_hyphens.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1322,7 +1322,7 @@
   
   public static void testSection33PublishedNoT() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_no_t.xml
-    URI uri = baseURI.resolve("3.3/published_no_t.xml");
+    IRI uri = baseURI.resolve("3.3/published_no_t.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1340,7 +1340,7 @@
   
   public static void testSection33PublishedNoTimezoneColon() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_no_timezone_colon.xml
-    URI uri = baseURI.resolve("3.3/published_no_timezone_colon.xml");
+    IRI uri = baseURI.resolve("3.3/published_no_timezone_colon.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1358,7 +1358,7 @@
   
   public static void testSection33PublishedNoYear() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_no_year.xml
-    URI uri = baseURI.resolve("3.3/published_no_year.xml");
+    IRI uri = baseURI.resolve("3.3/published_no_year.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1376,7 +1376,7 @@
 
   public static void testSection33PublishedSeconds() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_seconds.xml
-    URI uri = baseURI.resolve("3.3/published_seconds.xml");
+    IRI uri = baseURI.resolve("3.3/published_seconds.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1390,7 +1390,7 @@
   
   public static void testSection33PublishedUtc() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_utc.xml
-    URI uri = baseURI.resolve("3.3/published_utc.xml");
+    IRI uri = baseURI.resolve("3.3/published_utc.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1404,7 +1404,7 @@
   
   public static void testSection33PublishedWrongFormat() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_wrong_format.xml
-    URI uri = baseURI.resolve("3.3/published_wrong_format.xml");
+    IRI uri = baseURI.resolve("3.3/published_wrong_format.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1422,7 +1422,7 @@
   
   public static void testSection33PublishedYearAndMonth() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_year_and_month.xml
-    URI uri = baseURI.resolve("3.3/published_year_and_month.xml");
+    IRI uri = baseURI.resolve("3.3/published_year_and_month.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1440,7 +1440,7 @@
   
   public static void testSection33PublishedYearOnly() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/published_year_only.xml
-    URI uri = baseURI.resolve("3.3/published_year_only.xml");
+    IRI uri = baseURI.resolve("3.3/published_year_only.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1458,7 +1458,7 @@
   
   public static void testSection33UpdatedExample2() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/updated-example2.xml
-    URI uri = baseURI.resolve("3.3/updated-example2.xml");
+    IRI uri = baseURI.resolve("3.3/updated-example2.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1472,7 +1472,7 @@
   
   public static void testSection33UpdatedExample3() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/updated-example3.xml
-    URI uri = baseURI.resolve("3.3/updated-example3.xml");
+    IRI uri = baseURI.resolve("3.3/updated-example3.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1486,7 +1486,7 @@
   
   public static void testSection33UpdatedExample4() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/updated-example4.xml
-    URI uri = baseURI.resolve("3.3/updated-example4.xml");
+    IRI uri = baseURI.resolve("3.3/updated-example4.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1500,7 +1500,7 @@
   
   public static void testSection33UpdatedFuture() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/updated-future.xml
-    URI uri = baseURI.resolve("3.3/updated-future.xml");
+    IRI uri = baseURI.resolve("3.3/updated-future.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);    
     Date d = AtomDate.parse("2103-12-13T18:30:02Z");
@@ -1509,7 +1509,7 @@
   
   public static void testSection33UpdatedPast() throws Exception {
     //http://feedvalidator.org/testcases/atom/3.3/updated-past.xml
-    URI uri = baseURI.resolve("3.3/updated-past.xml");
+    IRI uri = baseURI.resolve("3.3/updated-past.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);    
     Date d = AtomDate.parse("0103-12-13T18:30:02Z");
@@ -1518,7 +1518,7 @@
   
   public static void testSection411AuthorAtEntryOnly() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/author-at-entry-only.xml
-    URI uri = baseURI.resolve("4.1.1/author-at-entry-only.xml");
+    IRI uri = baseURI.resolve("4.1.1/author-at-entry-only.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1532,7 +1532,7 @@
   
   public static void testSection411AuthorAtFeedAndEntry() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/author-at-feed-and-entry.xml
-    URI uri = baseURI.resolve("4.1.1/author-at-feed-and-entry.xml");
+    IRI uri = baseURI.resolve("4.1.1/author-at-feed-and-entry.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1547,7 +1547,7 @@
   
   public static void testSection411AuthorAtFeedOnly() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/author-at-feed-only.xml
-    URI uri = baseURI.resolve("4.1.1/author-at-feed-only.xml");
+    IRI uri = baseURI.resolve("4.1.1/author-at-feed-only.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1562,7 +1562,7 @@
   
   public static void testSection411AuthorlessWithNoEntries() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/authorless-with-no-entries.xml
-    URI uri = baseURI.resolve("4.1.1/authorless-with-no-entries.xml");
+    IRI uri = baseURI.resolve("4.1.1/authorless-with-no-entries.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1573,7 +1573,7 @@
   
   public static void testSection411AuthorlessWithOneEntry() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/authorless-with-one-entry.xml
-    URI uri = baseURI.resolve("4.1.1/authorless-with-one-entry.xml");
+    IRI uri = baseURI.resolve("4.1.1/authorless-with-one-entry.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1588,7 +1588,7 @@
   
   public static void testSection411DuplicateEntries() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/duplicate-entries.xml
-    URI uri = baseURI.resolve("4.1.1/duplicate-entries.xml");
+    IRI uri = baseURI.resolve("4.1.1/duplicate-entries.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry e1 = doc.getRoot().getEntries().get(0);
@@ -1599,25 +1599,25 @@
   
   public static void testSection411LinkRelFull() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/link-rel-full.xml
-    URI uri = baseURI.resolve("4.1.1/link-rel-full.xml");
+    IRI uri = baseURI.resolve("4.1.1/link-rel-full.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Link link = doc.getRoot().getLink("http://xmlns.com/foaf/0.1/");
     assertNotNull(link);
-    assertEquals(link.getResolvedHref(), new URI("http://example.org/foaf"));
+    assertEquals(link.getResolvedHref(), new IRI("http://example.org/foaf"));
   }
   
   public static void testSection411MisplacedMetadata() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/misplaced-metadata.xml
-    URI uri = baseURI.resolve("4.1.1/misplaced-metadata.xml");
+    IRI uri = baseURI.resolve("4.1.1/misplaced-metadata.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
-    assertEquals(doc.getRoot().getId(),new URI("urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6"));
+    assertEquals(doc.getRoot().getId(),new IRI("urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6"));
   }
   
   public static void testSection411MissingId() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/missing-id.xml
-    URI uri = baseURI.resolve("4.1.1/missing-id.xml");
+    IRI uri = baseURI.resolve("4.1.1/missing-id.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     assertNull(doc.getRoot().getId());
@@ -1625,7 +1625,7 @@
   
   public static void testSection411MissingSelf() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/missing-self.xml
-    URI uri = baseURI.resolve("4.1.1/missing-self.xml");
+    IRI uri = baseURI.resolve("4.1.1/missing-self.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     assertNull(doc.getRoot().getSelfLink());
@@ -1633,7 +1633,7 @@
   
   public static void testSection411MissingTitles() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/missing-titles.xml
-    URI uri = baseURI.resolve("4.1.1/missing-titles.xml");
+    IRI uri = baseURI.resolve("4.1.1/missing-titles.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     assertNull(doc.getRoot().getTitle());
@@ -1641,7 +1641,7 @@
   
   public static void testSection411MissingUpdated() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/missing-updated.xml
-    URI uri = baseURI.resolve("4.1.1/missing-updated.xml");
+    IRI uri = baseURI.resolve("4.1.1/missing-updated.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     assertNull(doc.getRoot().getUpdated());
@@ -1649,7 +1649,7 @@
   
   public static void testSection411MultipleAlternatesDiffering() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/multiple-alternates-differing.xml
-    URI uri = baseURI.resolve("4.1.1/multiple-alternates-differing.xml");
+    IRI uri = baseURI.resolve("4.1.1/multiple-alternates-differing.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1661,15 +1661,15 @@
   
   public static void testSection411MultipleAlternatesMatching() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/multiple-alternates-matching.xml
-    URI uri = baseURI.resolve("4.1.1/multiple-alternates-matching.xml");
+    IRI uri = baseURI.resolve("4.1.1/multiple-alternates-matching.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
-    assertEquals(doc.getRoot().getAlternateLink().getResolvedHref(), new URI("http://example.org/front-page.html"));
+    assertEquals(doc.getRoot().getAlternateLink().getResolvedHref(), new IRI("http://example.org/front-page.html"));
   }
   
   public static void testSection411MultipleAuthors() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/multiple-authors.xml
-    URI uri = baseURI.resolve("4.1.1/multiple-authors.xml");
+    IRI uri = baseURI.resolve("4.1.1/multiple-authors.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1681,7 +1681,7 @@
   
   public static void testSection411MultipleCategories() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/multiple-categories.xml
-    URI uri = baseURI.resolve("4.1.1/multiple-categories.xml");
+    IRI uri = baseURI.resolve("4.1.1/multiple-categories.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1693,7 +1693,7 @@
   
   public static void testSection411MultipleContributors() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/multiple-contributors.xml
-    URI uri = baseURI.resolve("4.1.1/multiple-contributors.xml");
+    IRI uri = baseURI.resolve("4.1.1/multiple-contributors.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1705,52 +1705,52 @@
   
   public static void testSection411MultipleGenerators() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/multiple-generators.xml
-    URI uri = baseURI.resolve("4.1.1/multiple-generators.xml");
+    IRI uri = baseURI.resolve("4.1.1/multiple-generators.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Generator g = doc.getRoot().getGenerator();
-    assertEquals(g.getResolvedUri(), new URI("http://www.example.com/"));
+    assertEquals(g.getResolvedUri(), new IRI("http://www.example.com/"));
     assertEquals(g.getText().trim(), "Example Toolkit");
   }
   
   public static void testSection411MultipleIcons() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/multiple-icons.xml
-    URI uri = baseURI.resolve("4.1.1/multiple-icons.xml");
+    IRI uri = baseURI.resolve("4.1.1/multiple-icons.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
-    assertEquals(doc.getRoot().getIcon(),new URI("http://feedvalidator.org/big.icon"));
+    assertEquals(doc.getRoot().getIcon(),new IRI("http://feedvalidator.org/big.icon"));
   }
   
   public static void testSection411MultipleIds() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/multiple-ids.xml
-    URI uri = baseURI.resolve("4.1.1/multiple-ids.xml");
+    IRI uri = baseURI.resolve("4.1.1/multiple-ids.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
-    assertEquals(doc.getRoot().getId(), new URI("urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6"));
+    assertEquals(doc.getRoot().getId(), new IRI("urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6"));
   }  
   
   public static void testSection411MultipleLogos() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/multiple-logos.xml
-    URI uri = baseURI.resolve("4.1.1/multiple-logos.xml");
+    IRI uri = baseURI.resolve("4.1.1/multiple-logos.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
-    assertEquals(doc.getRoot().getLogo(),new URI("http://feedvalidator.org/small.jpg"));
+    assertEquals(doc.getRoot().getLogo(),new IRI("http://feedvalidator.org/small.jpg"));
   }
   
   public static void testSection411MultipleRelatedMatching() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/multiple-related-matching.xml
-    URI uri = baseURI.resolve("4.1.1/multiple-related-matching.xml");
+    IRI uri = baseURI.resolve("4.1.1/multiple-related-matching.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     List<Link> links = doc.getRoot().getLinks("related");
     assertEquals(links.size(),2);
-    assertEquals(links.get(0).getResolvedHref(), new URI("http://example.org/front-page.html"));
-    assertEquals(links.get(1).getResolvedHref(), new URI("http://example.org/second-page.html"));
+    assertEquals(links.get(0).getResolvedHref(), new IRI("http://example.org/front-page.html"));
+    assertEquals(links.get(1).getResolvedHref(), new IRI("http://example.org/second-page.html"));
   }
   
   public static void testSection411MultipleRights() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/multiple-rights.xml
-    URI uri = baseURI.resolve("4.1.1/multiple-rights.xml");
+    IRI uri = baseURI.resolve("4.1.1/multiple-rights.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     assertEquals(doc.getRoot().getRights(),"Public Domain");
@@ -1758,7 +1758,7 @@
   
   public static void testSection411MultipleSubtitles() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/multiple-subtitles.xml
-    URI uri = baseURI.resolve("4.1.1/multiple-subtitles.xml");
+    IRI uri = baseURI.resolve("4.1.1/multiple-subtitles.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     assertEquals(doc.getRoot().getSubtitle(), "A unique feed, just like all the others");
@@ -1766,7 +1766,7 @@
   
   public static void testSection411MultipleTitles() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/multiple-titles.xml
-    URI uri = baseURI.resolve("4.1.1/multiple-titles.xml");
+    IRI uri = baseURI.resolve("4.1.1/multiple-titles.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     assertEquals(doc.getRoot().getTitle(), "Example Feed");
@@ -1774,7 +1774,7 @@
   
   public static void testSection411MultipleUpdateds() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/multiple-updateds.xml
-    URI uri = baseURI.resolve("4.1.1/multiple-updateds.xml");
+    IRI uri = baseURI.resolve("4.1.1/multiple-updateds.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Date d = AtomDate.parse("2003-12-13T18:30:02Z");
@@ -1783,7 +1783,7 @@
   
   public static void testSection411ZeroEntries() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1/zero-entries.xml
-    URI uri = baseURI.resolve("4.1.1/zero-entries.xml");
+    IRI uri = baseURI.resolve("4.1.1/zero-entries.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1794,7 +1794,7 @@
   
   public static void testSection4111ContentSrc() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1.1/content-src.xml
-    URI uri = baseURI.resolve("4.1.1.1/content-src.xml");
+    IRI uri = baseURI.resolve("4.1.1.1/content-src.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1809,7 +1809,7 @@
   
   public static void testSection4111EmptyContent() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1.1/empty-content.xml
-    URI uri = baseURI.resolve("4.1.1.1/empty-content.xml");
+    IRI uri = baseURI.resolve("4.1.1.1/empty-content.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     assertEquals(doc.getRoot().getEntries().get(0).getContent(),"");
@@ -1817,7 +1817,7 @@
   
   public static void testSection4111EmptyTitle() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1.1/empty-title.xml
-    URI uri = baseURI.resolve("4.1.1.1/empty-title.xml");
+    IRI uri = baseURI.resolve("4.1.1.1/empty-title.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     assertEquals(doc.getRoot().getEntries().get(0).getTitle(),"");
@@ -1825,7 +1825,7 @@
   
   public static void testSection4111NoContentOrSummary() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.1.1/no-content-or-summary.xml
-    URI uri = baseURI.resolve("4.1.1.1/no-content-or-summary.xml");
+    IRI uri = baseURI.resolve("4.1.1.1/no-content-or-summary.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
@@ -1835,7 +1835,7 @@
   
   public static void testSection412AlternateNoContent() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/alternate-no-content.xml
-    URI uri = baseURI.resolve("4.1.2/alternate-no-content.xml");
+    IRI uri = baseURI.resolve("4.1.2/alternate-no-content.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1850,7 +1850,7 @@
   
   public static void testSection412ContentBase64NoSummary() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/content-base64-no-summary.xml
-    URI uri = baseURI.resolve("4.1.2/content-base64-no-summary.xml");
+    IRI uri = baseURI.resolve("4.1.2/content-base64-no-summary.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1872,7 +1872,7 @@
   
   public static void testSection412ContentNoAlternate() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/content-no-alternate.xml
-    URI uri = baseURI.resolve("4.1.2/content-no-alternate.xml");
+    IRI uri = baseURI.resolve("4.1.2/content-no-alternate.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1887,17 +1887,17 @@
   
   public static void testSection412ContentSrcNoSummary() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/content-src-no-summary.xml
-    URI uri = baseURI.resolve("4.1.2/content-src-no-summary.xml");
+    IRI uri = baseURI.resolve("4.1.2/content-src-no-summary.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
     assertNull(entry.getSummary());
-    assertEquals(entry.getContentElement().getResolvedSrc(), new URI("http://example.org/2003/12/13/atom03"));
+    assertEquals(entry.getContentElement().getResolvedSrc(), new IRI("http://example.org/2003/12/13/atom03"));
   }
   
   public static void testSection412EntrySourceAuthor() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/entry-source-author.xml
-    URI uri = baseURI.resolve("4.1.2/entry-source-author.xml");
+    IRI uri = baseURI.resolve("4.1.2/entry-source-author.xml");
     Document<Entry> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot();
@@ -1908,7 +1908,7 @@
   
   public static void testSection412LinkFullUri() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/link-full-uri.xml
-    URI uri = baseURI.resolve("4.1.2/link-full-uri.xml");
+    IRI uri = baseURI.resolve("4.1.2/link-full-uri.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1923,7 +1923,7 @@
   
   public static void testSection412LinkSameRelDifferentTypes() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/link-same-rel-different-types.xml
-    URI uri = baseURI.resolve("4.1.2/link-same-rel-different-types.xml");
+    IRI uri = baseURI.resolve("4.1.2/link-same-rel-different-types.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -1938,7 +1938,7 @@
   
   public static void testSection412LinkSameRelTypeDifferentHreflang() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/link-same-rel-type-different-hreflang.xml
-    URI uri = baseURI.resolve("4.1.2/link-same-rel-type-different-hreflang.xml");
+    IRI uri = baseURI.resolve("4.1.2/link-same-rel-type-different-hreflang.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     List<Link> links = doc.getRoot().getEntries().get(0).getLinks("alternate");
@@ -1949,25 +1949,25 @@
   
   public static void testSection412LinkSameRelTypeHreflang() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/link-same-rel-type-hreflang.xml
-    URI uri = baseURI.resolve("4.1.2/link-same-rel-type-hreflang.xml");
+    IRI uri = baseURI.resolve("4.1.2/link-same-rel-type-hreflang.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
-    assertEquals(entry.getAlternateLink().getResolvedHref(), new URI("http://example.org/2003/12/13/atom02"));
+    assertEquals(entry.getAlternateLink().getResolvedHref(), new IRI("http://example.org/2003/12/13/atom02"));
   }
   
   public static void testSection412LinkSameRelTypeNoHreflang() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/link-same-rel-type-no-hreflang.xml
-    URI uri = baseURI.resolve("4.1.2/link-same-rel-type-no-hreflang.xml");
+    IRI uri = baseURI.resolve("4.1.2/link-same-rel-type-no-hreflang.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
-    assertEquals(entry.getAlternateLink().getResolvedHref(), new URI("http://example.org/2003/12/13/atom02"));
+    assertEquals(entry.getAlternateLink().getResolvedHref(), new IRI("http://example.org/2003/12/13/atom02"));
   }
   
   public static void testSection412MissingId() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/missing-id.xml
-    URI uri = baseURI.resolve("4.1.2/missing-id.xml");
+    IRI uri = baseURI.resolve("4.1.2/missing-id.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
@@ -1976,7 +1976,7 @@
 
   public static void testSection412MissingTitle() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/missing-title.xml
-    URI uri = baseURI.resolve("4.1.2/missing-title.xml");
+    IRI uri = baseURI.resolve("4.1.2/missing-title.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
@@ -1985,7 +1985,7 @@
   
   public static void testSection412MissingUpdated() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/missing-updated.xml
-    URI uri = baseURI.resolve("4.1.2/missing-updated.xml");
+    IRI uri = baseURI.resolve("4.1.2/missing-updated.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
@@ -1994,7 +1994,7 @@
   
   public static void testSection412MultiEnclosureTest() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/multi-enclosure-test.xml
-    URI uri = baseURI.resolve("4.1.2/multi-enclosure-test.xml");
+    IRI uri = baseURI.resolve("4.1.2/multi-enclosure-test.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -2009,7 +2009,7 @@
   
   public static void testSection412MultipleCategories() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/multiple-categories.xml
-    URI uri = baseURI.resolve("4.1.2/multiple-categories.xml");
+    IRI uri = baseURI.resolve("4.1.2/multiple-categories.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -2025,7 +2025,7 @@
   public static void testSection412MultipleContents() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/multiple-contents.xml
     //Note: not implemented
-    URI uri = baseURI.resolve("4.1.2/multiple-contents.xml");
+    IRI uri = baseURI.resolve("4.1.2/multiple-contents.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
@@ -2034,7 +2034,7 @@
   
   public static void testSection412MultipleContributors() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/multiple-contributors.xml
-    URI uri = baseURI.resolve("4.1.2/multiple-contributors.xml");
+    IRI uri = baseURI.resolve("4.1.2/multiple-contributors.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -2049,15 +2049,15 @@
   
   public static void testSection412MultipleIds() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/multiple-ids.xml
-    URI uri = baseURI.resolve("4.1.2/multiple-ids.xml");
+    IRI uri = baseURI.resolve("4.1.2/multiple-ids.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
-    assertEquals(doc.getRoot().getEntries().get(0).getId(), new URI("urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a"));
+    assertEquals(doc.getRoot().getEntries().get(0).getId(), new IRI("urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a"));
   }   
   
   public static void testSection412MultiplePublished() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/multiple-published.xml
-    URI uri = baseURI.resolve("4.1.2/multiple-published.xml");
+    IRI uri = baseURI.resolve("4.1.2/multiple-published.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Date d = AtomDate.parse("2003-12-11T11:13:56Z");
@@ -2066,7 +2066,7 @@
   
   public static void testSection412MultipleRights() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/multiple-rights.xml
-    URI uri = baseURI.resolve("4.1.2/multiple-rights.xml");
+    IRI uri = baseURI.resolve("4.1.2/multiple-rights.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
@@ -2075,17 +2075,17 @@
   
   public static void testSection412MultipleSources() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/multiple-sources.xml
-    URI uri = baseURI.resolve("4.1.2/multiple-sources.xml");
+    IRI uri = baseURI.resolve("4.1.2/multiple-sources.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
     Source source = entry.getSource();
-    assertEquals(source.getId(), new URI("urn:uuid:9b056ae0-f778-11d9-8cd6-0800200c9a66"));
+    assertEquals(source.getId(), new IRI("urn:uuid:9b056ae0-f778-11d9-8cd6-0800200c9a66"));
   }   
   
   public static void testSection412MultipleSummaries() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/multiple-summaries.xml
-    URI uri = baseURI.resolve("4.1.2/multiple-summaries.xml");
+    IRI uri = baseURI.resolve("4.1.2/multiple-summaries.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
@@ -2094,7 +2094,7 @@
   
   public static void testSection412MultipleTitles() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/multiple-titles.xml
-    URI uri = baseURI.resolve("4.1.2/multiple-titles.xml");
+    IRI uri = baseURI.resolve("4.1.2/multiple-titles.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
@@ -2103,7 +2103,7 @@
   
   public static void testSection412MultipleUpdated() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/multiple-updated.xml
-    URI uri = baseURI.resolve("4.1.2/multiple-updated.xml");
+    IRI uri = baseURI.resolve("4.1.2/multiple-updated.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
@@ -2113,7 +2113,7 @@
   
   public static void testSection412NoContentOrAlternate() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/no-content-or-alternate.xml
-    URI uri = baseURI.resolve("4.1.2/no-content-or-alternate.xml");
+    IRI uri = baseURI.resolve("4.1.2/no-content-or-alternate.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
@@ -2123,19 +2123,19 @@
   
   public static void testSection412RelatedSameRelTypeHreflang() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/related-same-rel-type-hreflang.xml
-    URI uri = baseURI.resolve("4.1.2/related-same-rel-type-hreflang.xml");
+    IRI uri = baseURI.resolve("4.1.2/related-same-rel-type-hreflang.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
     List<Link> links = entry.getLinks("related");
     assertEquals(links.size(),2);
-    assertEquals(links.get(0).getResolvedHref(), new URI("http://example.org/2003/12/13/atom02"));
-    assertEquals(links.get(1).getResolvedHref(), new URI("http://example.org/2003/12/13/atom03"));
+    assertEquals(links.get(0).getResolvedHref(), new IRI("http://example.org/2003/12/13/atom02"));
+    assertEquals(links.get(1).getResolvedHref(), new IRI("http://example.org/2003/12/13/atom03"));
   }   
       
   public static void testSection412SummaryContentBase64() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/summary-content-base64.xml
-    URI uri = baseURI.resolve("4.1.2/summary-content-base64.xml");
+    IRI uri = baseURI.resolve("4.1.2/summary-content-base64.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -2152,7 +2152,7 @@
   
   public static void testSection412SummaryContentSrc() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.2/summary-content-src.xml
-    URI uri = baseURI.resolve("4.1.2/summary-content-src.xml");
+    IRI uri = baseURI.resolve("4.1.2/summary-content-src.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -2172,7 +2172,7 @@
   
   public static void testSection4131TypeHtml() throws Exception {
    //http://feedvalidator.org/testcases/atom/4.1.3.1/type-html.xml
-    URI uri = baseURI.resolve("4.1.3.1/type-html.xml");
+    IRI uri = baseURI.resolve("4.1.3.1/type-html.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     
@@ -2187,7 +2187,7 @@
   
   public static void testSection413TypeMultipartAlternative() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.3.1/type-multipart-alternative.xml
-    URI uri = baseURI.resolve("4.1.3.1/type-multipart-alternative.xml");
+    IRI uri = baseURI.resolve("4.1.3.1/type-multipart-alternative.xml");
     Document<Feed> doc = get(uri);
     assertNotNull(doc);
     Entry entry = doc.getRoot().getEntries().get(0);
@@ -2196,7 +2196,7 @@
   
   public static void testSection4131TypeTextHtml() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.3.1/type-text-html.xml
-     URI uri = baseURI.resolve("4.1.3.1/type-text-html.xml");
+     IRI uri = baseURI.resolve("4.1.3.1/type-text-html.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      
@@ -2213,7 +2213,7 @@
   
   public static void testSection4131TypeText() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.3.1/type-text.xml
-     URI uri = baseURI.resolve("4.1.3.1/type-text.xml");
+     IRI uri = baseURI.resolve("4.1.3.1/type-text.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      
@@ -2228,7 +2228,7 @@
   
   public static void testSection4131TypeXhtml() throws Exception {
     //http://feedvalidator.org/testcases/atom/4.1.3.1/type-xhtml.xml
-     URI uri = baseURI.resolve("4.1.3.1/type-xhtml.xml");
+     IRI uri = baseURI.resolve("4.1.3.1/type-xhtml.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      
@@ -2243,7 +2243,7 @@
   
    public static void testSection413TypeXml() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.1/type-xhtml.xml
-     URI uri = baseURI.resolve("4.1.3.1/type-xml.xml");
+     IRI uri = baseURI.resolve("4.1.3.1/type-xml.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      
@@ -2258,30 +2258,30 @@
    
    public static void testSection4132ContentSrcExtraChild() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.2/content-src-extra-child.xml
-     URI uri = baseURI.resolve("4.1.3.2/content-src-extra-child.xml");
+     IRI uri = baseURI.resolve("4.1.3.2/content-src-extra-child.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
      Content content = entry.getContentElement();
-     assertEquals(content.getResolvedSrc(), new URI("http://example.org/2003/12/13/atom03"));
+     assertEquals(content.getResolvedSrc(), new IRI("http://example.org/2003/12/13/atom03"));
      assertEquals(entry.getContent().trim(), "extraneous text");
    }
    
    public static void testSection4132ContentSrcExtraText() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.2/content-src-extra-text.xml
      try {
-       URI uri = baseURI.resolve("4.1.3.2/content-src-extra-text.xml");
+       IRI uri = baseURI.resolve("4.1.3.2/content-src-extra-text.xml");
        Document<Feed> doc = get(uri);
        assertNotNull(doc);
        Entry entry = doc.getRoot().getEntries().get(0);
        Content content = entry.getContentElement();
-       assertEquals(content.getResolvedSrc(), new URI("http://example.org/2003/12/13/atom03"));
+       assertEquals(content.getResolvedSrc(), new IRI("http://example.org/2003/12/13/atom03"));
      } catch (Exception e) {}
    }
    
    public static void testSection4132ContentSrcInvalidIri() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.2/content-src-invalid-iri.xml
-     URI uri = baseURI.resolve("4.1.3.2/content-src-invalid-iri.xml");
+     IRI uri = baseURI.resolve("4.1.3.2/content-src-invalid-iri.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      
@@ -2294,36 +2294,36 @@
        try {
          content.getSrc();
        } catch (Exception e) {
-         assertTrue(e instanceof URISyntaxException);
+         assertTrue(e instanceof IRISyntaxException);
        }
      }
    }
    
    public static void testSection4132ContentSrcNoTypeNoError() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.2/content-src-no-type-no-error.xml
-     URI uri = baseURI.resolve("4.1.3.2/content-src-no-type-no-error.xml");
+     IRI uri = baseURI.resolve("4.1.3.2/content-src-no-type-no-error.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
      Content content = entry.getContentElement();
-     assertEquals(content.getResolvedSrc(), new URI("http://example.org/2003/12/13/atom03"));
+     assertEquals(content.getResolvedSrc(), new IRI("http://example.org/2003/12/13/atom03"));
      assertNull(content.getMimeType());
    }
    
    public static void testSection4132ContentSrcNoType() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.2/content-src-no-type.xml
-     URI uri = baseURI.resolve("4.1.3.2/content-src-no-type.xml");
+     IRI uri = baseURI.resolve("4.1.3.2/content-src-no-type.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
      Content content = entry.getContentElement();
-     assertEquals(content.getResolvedSrc(), new URI("http://example.org/2003/12/13/atom03"));
+     assertEquals(content.getResolvedSrc(), new IRI("http://example.org/2003/12/13/atom03"));
      assertNull(content.getMimeType());
    }
    
    public static void testSection4132ContentSrcRelativeRef() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.2/content-src-relative-ref.xml
-     URI uri = baseURI.resolve("4.1.3.2/content-src-relative-ref.xml");
+     IRI uri = baseURI.resolve("4.1.3.2/content-src-relative-ref.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      
@@ -2340,51 +2340,51 @@
    
    public static void testSection4132ContentSrcTypeHtml() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.2/content-src-type-html.xml
-     URI uri = baseURI.resolve("4.1.3.2/content-src-type-html.xml");
+     IRI uri = baseURI.resolve("4.1.3.2/content-src-type-html.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
      assertEquals(entry.getContent(),"");
      assertEquals(entry.getContentType(), Content.Type.HTML);
-     assertEquals(entry.getContentElement().getResolvedSrc(), new URI("http://example.org/2003/12/13/atom03"));
+     assertEquals(entry.getContentElement().getResolvedSrc(), new IRI("http://example.org/2003/12/13/atom03"));
    }
    
    public static void testSection4132ContentSrcTypeTextHtml() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.2/content-src-type-text-html.xml
-     URI uri = baseURI.resolve("4.1.3.2/content-src-type-text-html.xml");
+     IRI uri = baseURI.resolve("4.1.3.2/content-src-type-text-html.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
      assertEquals(entry.getContent(),"");
      assertEquals(entry.getContentType(), Content.Type.MEDIA);
-     assertEquals(entry.getContentElement().getResolvedSrc(), new URI("http://example.org/2003/12/13/atom03"));
+     assertEquals(entry.getContentElement().getResolvedSrc(), new IRI("http://example.org/2003/12/13/atom03"));
    }
    
    public static void testSection4132ContentSrcTypeText() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.2/content-src-type-text.xml
-     URI uri = baseURI.resolve("4.1.3.2/content-src-type-text.xml");
+     IRI uri = baseURI.resolve("4.1.3.2/content-src-type-text.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
      assertEquals(entry.getContent(),"");
      assertEquals(entry.getContentType(), Content.Type.TEXT);
-     assertEquals(entry.getContentElement().getResolvedSrc(), new URI("http://example.org/2003/12/13/atom03"));
+     assertEquals(entry.getContentElement().getResolvedSrc(), new IRI("http://example.org/2003/12/13/atom03"));
    }
    
    public static void testSection4132ContentSrcTypeXhtml() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.2/content-src-type-xhtml.xml
-     URI uri = baseURI.resolve("4.1.3.2/content-src-type-xhtml.xml");
+     IRI uri = baseURI.resolve("4.1.3.2/content-src-type-xhtml.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
      assertNull(entry.getContent());
      assertEquals(entry.getContentType(), Content.Type.XHTML);
-     assertEquals(entry.getContentElement().getResolvedSrc(), new URI("http://example.org/2003/12/13/atom03"));
+     assertEquals(entry.getContentElement().getResolvedSrc(), new IRI("http://example.org/2003/12/13/atom03"));
    }
    
    public static void testSection4133ContentApplicationXhtml() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.3/content-application-xthml.xml
-     URI uri = baseURI.resolve("4.1.3.3/content-application-xthml.xml");
+     IRI uri = baseURI.resolve("4.1.3.3/content-application-xthml.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      
@@ -2400,7 +2400,7 @@
    
    public static void testSection4133ContentHtmlWithChildren() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.3/content-html-with-children.xml
-     URI uri = baseURI.resolve("4.1.3.3/content-html-with-children.xml");
+     IRI uri = baseURI.resolve("4.1.3.3/content-html-with-children.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
@@ -2410,7 +2410,7 @@
    
    public static void testSection4133ContentJpegInvalidBase64() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.3/content-jpeg-invalid-base64.xml
-     URI uri = baseURI.resolve("4.1.3.3/content-jpeg-invalid-base64.xml");
+     IRI uri = baseURI.resolve("4.1.3.3/content-jpeg-invalid-base64.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
@@ -2420,7 +2420,7 @@
    
    public static void testSection4133ContentJpegValidBase64() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.3/content-jpeg-valid-base64.xml
-     URI uri = baseURI.resolve("4.1.3.3/content-jpeg-valid-base64.xml");
+     IRI uri = baseURI.resolve("4.1.3.3/content-jpeg-valid-base64.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
@@ -2437,7 +2437,7 @@
    
    public static void testSection4133ContentNoTypeEscapedHtml() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.3/content-no-type-escaped-html.xml
-     URI uri = baseURI.resolve("4.1.3.3/content-no-type-escaped-html.xml");
+     IRI uri = baseURI.resolve("4.1.3.3/content-no-type-escaped-html.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
@@ -2447,7 +2447,7 @@
    
    public static void testSection4133ContentNoTypeWithChildren() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.3/content-no-type-with-children.xml
-     URI uri = baseURI.resolve("4.1.3.3/content-no-type-with-children.xml");
+     IRI uri = baseURI.resolve("4.1.3.3/content-no-type-with-children.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
@@ -2457,7 +2457,7 @@
    
    public static void testSection4133ContentPlainWithChildren() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.3/content-plain-with-children.xml
-     URI uri = baseURI.resolve("4.1.3.3/content-plain-with-children.xml");
+     IRI uri = baseURI.resolve("4.1.3.3/content-plain-with-children.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
@@ -2467,7 +2467,7 @@
    
    public static void testSection4133ContentSvgMixed() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.3/content-svg-mixed.xml
-     URI uri = baseURI.resolve("4.1.3.3/content-svg-mixed.xml");
+     IRI uri = baseURI.resolve("4.1.3.3/content-svg-mixed.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
@@ -2478,7 +2478,7 @@
    
    public static void testSection4133ContentSvg() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.3/content-svg.xml
-     URI uri = baseURI.resolve("4.1.3.3/content-svg.xml");
+     IRI uri = baseURI.resolve("4.1.3.3/content-svg.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      
@@ -2494,7 +2494,7 @@
    
    public static void testSection4133ContentTextHtml() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.3/content-text-html.xml
-     URI uri = baseURI.resolve("4.1.3.3/content-text-html.xml");
+     IRI uri = baseURI.resolve("4.1.3.3/content-text-html.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
@@ -2503,7 +2503,7 @@
    
    public static void testSection4133ContentTextWithChildren() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.3/content-text-with-children.xml
-     URI uri = baseURI.resolve("4.1.3.3/content-text-with-children.xml");
+     IRI uri = baseURI.resolve("4.1.3.3/content-text-with-children.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
@@ -2513,7 +2513,7 @@
    
    public static void testSection4133ContentXhtmlEscaped() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.3/content-xhtml-escaped.xml
-     URI uri = baseURI.resolve("4.1.3.3/content-xhtml-escaped.xml");
+     IRI uri = baseURI.resolve("4.1.3.3/content-xhtml-escaped.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
@@ -2525,7 +2525,7 @@
    
    public static void testSection4133ContentXhtmlMixed() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.3/content-xhtml-mixed.xml
-     URI uri = baseURI.resolve("4.1.3.3/content-xhtml-mixed.xml");
+     IRI uri = baseURI.resolve("4.1.3.3/content-xhtml-mixed.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
@@ -2537,7 +2537,7 @@
    
    public static void testSection4133ContentXhtmlNoXhtmlDiv() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.3/content-xhtml-no-xhtml-div.xml
-     URI uri = baseURI.resolve("4.1.3.3/content-xhtml-no-xhtml-div.xml");
+     IRI uri = baseURI.resolve("4.1.3.3/content-xhtml-no-xhtml-div.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
@@ -2547,7 +2547,7 @@
    
    public static void testSection4133ContentXhtmlNotmarkup() throws Exception {
      //http://feedvalidator.org/testcases/atom/4.1.3.3/content-xhtml-notmarkup.xml
-     URI uri = baseURI.resolve("4.1.3.3/content-xhtml-notmarkup.xml");
+     IRI uri = baseURI.resolve("4.1.3.3/content-xhtml-notmarkup.xml");
      Document<Feed> doc = get(uri);
      assertNotNull(doc);
      Entry entry = doc.getRoot().getEntries().get(0);
@@ -2559,7 +2559,7 @@

[... 713 lines stripped ...]