Na navigaci | Klávesové zkratky

Hlásí XML: error undefined entity?

XML

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

  1. johno #1

    avatar
    ' '=>'&160;'

    Nemá tam byť  ?

    před 20 lety | reagoval [3] David Grudl
  2. Mormegil #2

    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.

    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.

    před 20 lety | reagoval [3] David Grudl
  3. David Grudl #3

    avatar

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

    před 20 lety | reagoval [4] johno
  4. johno #4

    avatar

    #3 Davide Grudle, Čítať pekné skripty to je taký môj fetiš.

    před 20 lety
  5. hem #5

    Celkem s uspechem vsechny texty obsahujici specialni znaky cpu do <![CDATA[ ]]> a mam klid 🙂

    před 20 lety
  6. luksd #6

    " nejsou uvozovky, ale znacka pro palec

    před 20 lety

Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.


phpFashion © 2004, 2024 David Grudl | o blogu

Ukázky zdrojových kódů smíte používat s uvedením autora a URL tohoto webu bez dalších omezení.