Specifying a missing character entity

Specifying a missing character entity

In XSLT, some characters are not allowed in certain contexts. For example, you cannot use the less than sign (<) and the ampersand (&) in the text between tags or in an attribute value. The XSLT transformation engine will give you error if those characters are used incorrectly. To solve the problem, you can specify character entities to replace the special characters.

A character entity is a string of characters that represents other characters. Character entities are either named or numbered. A named entity begins with an ampersand (&) followed by the name or characters, and ends with a semicolon (;). For example, &lt; represents the left angle bracket character (<). Numbered entities also start and end the same way, except that a hash sign (#) and a number specifies the character.

XSLT has the following five predefined entities:

Character

Entity Code

< (less-than)

&lt;

& (ampersand)

&amp;

> (greater-than)

&gt;

" (quote)

&quot;

‘ (apostrophe)

&apos;

If you use other character entities in an XSL file, you need to define them in the DTD section of the XSL file. Dreamweaver provides several default entity definitions that you can see at the top of an XSL file created in Dreamweaver. These default entities cover a broad selection of the most commonly used characters.

Dreamweaver checks the XSL file for undefined entities when you preview your XSL file in a browser. If it finds an undefined entity, Dreamweaver notifies you in a message box.

If you preview an XML file attached to an XSLT file or if you preview a server-side page with an XSLT transformation, the server or browser (instead of Dreamweaver) notifies you of an undefined entity. The following is an example of a message you may get in Internet Explorer when you request an XML file transformed by an XSL file with a missing entity definition:

Reference to undefined entity 'auml'. Error processing resource 'http://localhost/testthis/list.xsl'. Line 28, Position 20 
<p class="test">&auml;</p>
-------------------^

To correct the error in your page, you’ll need to add the entity definition to your page by hand.

To specify a missing entity definition:

  1. Look up the missing character in the character entity reference page on the W3C website at www.w3.org/TR/REC-html40/sgml/entities.html.

    This web page contains the 252 allowed entities in HTML 4 and XHTML 1.0.

    For example, if the character entity Egrave is missing, search for "Egrave" on the W3C web page. You will find the following entry:

    <!ENTITY Egrave CDATA "&#200;" -- latin capital letter E with grave, U+00C8 ISOlat1 -->
    
  2. Make a note of the entity name and entity code in the entry.

    In the example, Egrave is the entity name, and &#200 is the entity code.

  3. With this information, switch to Code view in Dreamweaver and enter the following entity tag at the top of your XSL file (following the Doctype declaration and with the other entity tags):
    <!ENTITY entityname "entitycode;">
    

    In the example, you would enter the following entity tag:

    <!ENTITY Egrave "&#200;">
    
  4. Save your file.

If you repeatedly use the same character entities, you may want to permanently add their definitions in the XSL files Dreamweaver creates by default when you use File > New.

To add entity definitions to the XSL files Dreamweaver creates by default:

  1. Locate the following configuration file in the Dreamweaver application folder and open it in any text editor:

    Configuration/DocumentTypes/MMDocumentTypeDeclarations.xml

  2. Locate the declaration called mm_xslt_1:
    <documenttypedeclaration id="mm_xslt_1">
    
  3. Enter the new entity tag or tags in the list of entity tags, as follows:
    <!ENTITY entityname "entitycode;">
    
  4. Save the file and relaunch Dreamweaver.



Getting Started with Dreamweaver
Dreamweaver Basics
Working with Dreamweaver Sites
Laying Out Pages
Adding Content to Pages
Working with Page Code
Preparing to Build Dynamic Sites
Making Pages Dynamic
Defining Sources of Dynamic Content
Developing Applications Rapidly