Podle specifikace zná XML
pouze pět předdefinovaných entit. Jsou to
< > & " '
. Všechny
ostatní je třeba buď definovat, nebo (lépe) zapisovat v číselné podobě
či rovnou jako znak. Takto doporučuji psát i '
,
kteroužto entitu Internet Explorer nezná.
XHTML samozřejmě používá i další entity, ale pokud pracujeme s textem, který má být přístupný zároveň v prohlížeči jako XHTML a kupříkladu ve čtečce jako RSS, je třeba se přizpůsobit neužšímu místu.
Číselná podoba zápisu entity má tvar &#xxx;
, kde
xxx je ordinální hodnota znaku. Takže třeba entitu ­
,
která odpovídá znaku s kódem 173, zapíšeme jako ­
(desítkově) nebo ­
(šestnáctkově). Při převodech
pozor na to, že ekvivalentní jsou i zápisy
­ ­ ­
.
Dále lze přímo zapsat znak (třeba ten s kódem 173). Obecně ale tento postup aplikujte jen v případě, že kódujete dokument v unicode. V jiných kódováních totiž nemá spousta entit své jednoznakové protějšky.
Příklad převodní tabulky najdete v tomto fóru.
Ještě bych dodal, že pro určité výstupy bývá vhodné zaměnit
typografické znaky za jejich ASCII alternativy. Tedy namísto „českých
uvozovek“ použít "počítačové"
, taktéž pevnou mezeru
zaměnit za obyčejnou a pomlčky za spojovníky. Dělá se to kvůli
neschopnosti cílového zařízení správně tyto znaky interpretovat.
Komentáře
johno #1
Nemá tam byť
 
?Mormegil #2
To jistě, jenže třeba ve Firefoxu je problém, že odmítá číst externí DTD. Takové rss-0.91.dtd obsahuje spoustu entit, jenže Firefox si ji z my.netscape.com prostě nestáhne a řve. Pokud ji chcete, musíte si ji ručně uložit do adresáře res ve Firefoxu.
David Grudl #3
#1 johno, johno, jsi pozorný čtenář skriptů 🙂
#2 Mormegile, ale jistě, právě proto naznačuji, že je vůbec nejlepší používat rovnou znaky nebo jejich číselné entity. Alespoň zatím.
johno #4
#3 Davide Grudle, Čítať pekné skripty to je taký môj fetiš.
hem #5
Celkem s uspechem vsechny texty obsahujici specialni znaky cpu do <![CDATA[ ]]> a mam klid 🙂
luksd #6
" nejsou uvozovky, ale znacka pro palec
Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.