
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.
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.