Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The reference to entity "subset" must end with the ';' delimiter [duplicate]

I am trying to include webfonts in the template of a Blogger blog:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html b:version='2' class='v2' expr:dir='data:blog.languageDirection' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>
  <head>
    <link href='http://fonts.googleapis.com/css?family=Share:400,700&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
    <link href='http://fonts.googleapis.com/css?family=Istok+Web:400,700&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
    <meta content='IE=EmulateIE7' http-equiv='X-UA-Compatible'/>
    <b:if cond='data:blog.isMobile'>
      <meta content='width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0' name='viewport'/>
    <b:else/>

And when I try to save the template, I get:

Error parsing XML, line 5, column 76: The reference to entity "subset" must end with the ';' delimiter.

I tried to add a ; but unsuccessfully. The links are generated and taken from Google Web Font.

How should I solve this issue? Thanks.

like image 324
Jérôme Verstrynge Avatar asked Jan 01 '13 16:01

Jérôme Verstrynge


People also ask

What is the format for character entity reference?

Character reference overview A numeric character reference refers to a character by its Universal Character Set/Unicode code point, and uses the format: &# nnnn ; &#x hhhh ; where nnnn is the code point in decimal form, and hhhh is the code point in hexadecimal form.

Which of the following is NOT HAVE predefined entity references in XML?

Which entity is not defined in XML? Explanation: There is only five entity in XML that are predefined and those are quot, It, gt, apos, amp. Copy is used in HTML, quot, apos, gt was first introduced by XHTML 1.0.

How many entities are provided by XML?

This Standard defines XML encodings of the 19 standard character entity sets defined in Non-normative Annex D of [SGML].


1 Answers

That's because & is a reserved character in XML that means "an XML entity begins here". XML entities let you print characters or sequences of characters that are hard for you to embed in your document literally, either because you don't have it on your keyboard or because the document encoding forbids it. For instance, in (X)HTML, &eacute; prints the character "é", which is not easy to find on most US keyboard. (Available entities depend on the <!DOCTYPE> declaration of your XML document.)

The problem with that scheme is that it means you can't unambiguously leave literal & characters around your document if they can be the start of an entity, so you need to encode them as an entity to solve that problem.

You will need to replace all your stray & with &amp;, which will print & without angering the XML parser. In your case, you should be good with replacing &subset= by &amp;subset= in your two <link> tags.

like image 86
zneak Avatar answered Oct 20 '22 23:10

zneak