E-könyvek

A nyilvánvaló megoldás az LXP címke helyettesítése a HTML-címke belsejében. Mindazonáltal ez a megközelítés jelentős hátránnyal jár. A lényeg az, hogy az ilyen szintaktikai konstrukciók megsértik a jelölés integritását a dokumentumban. A jelölőnyelvekben egy megfelelően kialakított dokumentum azt jelenti, hogy a címkék nem ágyazhatók be más címkék tartalmába, mint a következő részletekben:

„>

Egyes esetekben az LXP címkék külső címkékbe ágyazása biztonságosan működhet, de ez nem ajánlott. Talán a jövőben egy megfelelően kialakított LXP-dokumentum követelményei szigorúbbak lesznek, mivel az ilyen csatolás nemcsak megnehezíti az LXP olvasását, hanem sérti a jelölés szintaktikai integritását is.

Az ilyen problémák megoldásához az LXP bevezette a címkét . Ez a címke "wrapper" -ként működik a külső címkék megjelenítéséhez (azaz olyan címkékhez, amelyek nem LXP címkék). A címke Van egy kötelező xname attribútum, amely meghatározza a helyettesítő címkét az LXP feldolgozásakor. Például egy címke címkeként jelenik meg <а>.

Az opcionális xappend attribútum tetszőleges karakterláncot csatolhat a létrehozott címke végéhez. Például az xappend = "checked" attribútum a HTML zászló címkéjén létrehoz egy címkét .

Az összes többi attribútum a külső címke változatlanul átadódik. Részben ez a körülmény magyarázza a címke hasznosságát , Mivel a , automatikusan átveszik a fogadott külső címkére. Például a 13.31 lista mutatja a HTML-címke létrehozásának helyes módját <1mg> az LXP-ben.

Lista 13.31. Helyettesítés egy külső címkével, egy üres mondattal

Ennek a töredéknek az eredményét az LXP dokumentumban (feltételezzük, hogy a változó szélesség 10-re van állítva):

<1mg src="images/spacer/gif" width="10" />

Ügyeljen a záró karakterre / a címkére . címke lehet egy nyitó, záró vagy egy címke egy üres blokkval, attól függően, hogy melyik címke végső soron szükséges a kimenethez. Ezeknek a címkéknek a legfontosabb jellemzője az, hogy az LXP minden "bezárt" címkét követ és kiválasztja a megfelelő címke nevét a záró címke elérésekor .

Ha a címke egy külső blokkhoz van hozzárendelve egy üres blokkhoz (például HTML-címkéhez) ), akkor alá kell írnia mint egy címke egy üres blokk

és a befejező szimbólum. Ellenkező esetben az LXP elfogadja a legközelebbi lezáró címkét az utolsó nyitó címke páros címkéjére (a mi esetünkben - ), ami hibás tagmegfeleltetést eredményez. Tekintsük a következő részletet:

<-- ОШИБКА: тег с пустым блоком должен заканчиваться символом / -->

Ez a kódrészlet három címkét használ . Ezek közül kettő (nyitó és záró) a címkére utal

, és a harmadik (nyitó) befoglalja a címkét . Mivel a HTML-címke nem rendelkezik párosított végződő címkével, ez a címke egy üres blokkot tartalmazó címkének kell lennie, de az LXP nem veszi azt ilyen módon (vegye figyelembe a záró karakter hiányát). A probléma ez: az LXP emlékszik egy nyitott elem létezésére és amikor eléri az első zárótagot úgy véli, hogy Ter nem zárul le
, és a címkét.

Ha a table_width változó 100, és a nem ideiglenes szélesség 10, a rossz eredmény így fog kinézni:

<-- ОШИБКА: тег с пустым блоком должен заканчиваться символом / -->

A 13.32 lista a címkék megfelelő kombinációját mutatja .

13.32. Süllyesztett címkék használata

<-- ПРАВИЛЬНО: тег с пустым блоком заканчивается символом / -->

Mert a második tag a 13.32-es listában a / -kal végződik, mivel a külső címkék beágyazása egy üres blokkba, az LXP nem kötődik a záró címkéhez a címkéhez , és az eredmény így néz ki:

<-- ПРАВИЛЬНО: тег с пустым блоком заканчивается символом / -->

Kapcsolódó cikkek