You only need to enclose undeclared entities in CDATA sections. If you declare your entities in a DTD(internal or external) you can use them normally.
<?xml version="1.0"?>
<!DOCTYPE sanity [
<!ENTITY check "ʚ">
]>
<sanity>
✓
</sanity>
I usually inlcude the three xhtml character entity sets in my DTD.
This way I don't get errors if somebody slips in a £ or a ¥
<!-- SPECIAL CHARACTER ENTITY SETS DECLARED AND REFERENCED HERE -->
<!ENTITY % xhtml-lat1 PUBLIC "-//W3C//ENTITIES Latin 1 for XHTML//E
+N" "xhtml-lat1.ent">
%xhtml-lat1;
<!ENTITY % xhtml-special PUBLIC "-//W3C//ENTITIES Special for XHTML//E
+N" "xhtml-special.ent">
%xhtml-special;
<!ENTITY % xhtml-symbol PUBLIC "-//W3C//ENTITIES Symbols for XHTML//E
+N" "xhtml-symbol.ent">
%xhtml-symbol;
Update:Here are the links to those character entity sets
Latin 1
Special
Symbols
Get Strong Together!! |