You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2011/10/25 21:18:40 UTC

svn commit: r1188866 - in /tapestry/tapestry5/trunk/tapestry-core/src: main/java/org/apache/tapestry5/internal/services/XMLTokenStream.java test/java/org/apache/tapestry5/internal/services/TemplateParserImplTest.java

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");