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