Hi everyone :) While playing with Google Web Fonts today http://www.google.com/webfont I ran into an interesting issue with Tapestry 5.3 (currently running beta 10). When a possible entity name is encountered by Tapestry within a template file (TML) even if it resides within an element attribute, it will raise an exception. For those unfamiliar with Google Web Fonts, it basically generates a LINK element pointing to a CSS style hosted by Google. The HREF contains various stuff such as font family and character sets, here's an example:
<link href=" http://fonts.googleapis.com/css?family=Francois+One&subset=latin,latin-ext" rel="stylesheet" type="text/css"/> Now - if you do this, Tapestry will scream: Failure parsing template classpath:sk/jazd/kniha/components/SiteBorder.tml: The reference to entity "subset" must end with the ';' delimiter. This seems like a similar issue to the old JavaScript problem, where an ampersand within a string will also cause an error. What do you guys think? Is this to be expected, or is it a bug that should be addressed (i.e. not check entities within quoted element attributes)? Of course, as always (well - most of the time) with Tapestry, there's an easy workaround: <link href="${googleFontStyle}" rel="stylesheet" type="text/css"/> and in your code: public String getGoogleFontStyle() { return " http://fonts.googleapis.com/css?family=Francois+One&subset=latin,latin-ext"; } Rado