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