Author: hlship
Date: Tue Oct 25 19:18:39 2011
New Revision: 1188866

URL: http://svn.apache.org/viewvc?rev=1188866&view=rev
Log:
TAP5-1720: HTML 5 doctype is not preserved, gets transformed into XHTML 1.0

Modified:
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/XMLTokenStream.java
    
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TemplateParserImplTest.java

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/XMLTokenStream.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/XMLTokenStream.java?rev=1188866&r1=1188865&r2=1188866&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/XMLTokenStream.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/XMLTokenStream.java
 Tue Oct 25 19:18:39 2011
@@ -150,8 +150,7 @@ public class XMLTokenStream
 
                 public String getSystemId()
                 {
-                    return systemId;
-
+                    return html5DTD ? null : systemId;
                 }
 
                 public String getRootName()
@@ -161,7 +160,7 @@ public class XMLTokenStream
 
                 public String getPublicId()
                 {
-                    return publicId;
+                    return html5DTD ? null : publicId;
                 }
             };
 
@@ -271,6 +270,8 @@ public class XMLTokenStream
 
     private Location exceptionLocation;
 
+    private boolean html5DTD;
+
     public XMLTokenStream(Resource resource, Map<String, URL> publicIdToURL)
     {
         this.resource = resource;
@@ -325,8 +326,11 @@ public class XMLTokenStream
         {
             String firstLine = reader.readLine();
 
-            if ("<!DOCTYPE html>".equals(firstLine))
+            if ("<!DOCTYPE html>".equalsIgnoreCase(firstLine))
             {
+                // When we hit the doctype later, ignore the transitional 
PUBLIC and SYSTEM ids and
+                // treat it like a proper HTML5 doctype.
+                html5DTD = true;
                 return substituteTransitionalDoctype(reader);
             }
 

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TemplateParserImplTest.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TemplateParserImplTest.java?rev=1188866&r1=1188865&r2=1188866&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TemplateParserImplTest.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TemplateParserImplTest.java
 Tue Oct 25 19:18:39 2011
@@ -962,6 +962,9 @@ public class TemplateParserImplTest exte
 
         assertEquals(tokens.size(), 5);
 
+        DTDToken token0 = get(tokens, 0);
+        assertEquals(token0.toString(), "DTD[name=html; publicId=null; 
systemId=null]");
+
         TextToken token3 = get(tokens, 3);
 
         assertEquals(token3.text, "\u00A92011\u00A0Apache");


Reply via email to