XMLGrundernaValideringMer om ENTITY
[ Hem ] Allmänt ASP XML SQL ADO HTML CSS VB Java Design Karta
Grunderna XSL Dynamiska sidor XML i praktiken

Mer om ENTITY

ENTITY

Entities är ett enkelst sätt att få in standardvärden i xml filen. Vi kan skapa egna nya entities vid behov. Nedan är en DTD som deklarerar en entity med namnet intro, samt en xml fil som använder denna entity.

howto.dtd

<?xml version="1.0" encoding="iso-8859-1"?>

<!ENTITY intro "Dessa sidor lyder under copyleft reglerna.
Gör vad du vill med dem, så länge som du inte anklagar mig för någonting.">

<!ELEMENT data (title, instructions)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT instructions (howto+)>
<!ELEMENT howto (#PCDATA)>

xml10_2.xml

<?xml version="1.0" encoding="iso-8859-1" ?> 
<!DOCTYPE data SYSTEM "howto.dtd">
<data>
   <title>&intro;</title>
   <instructions>
     <howto>För att byta rad i html skriver du <![CDATA[<br>]]></howto>
     <howto>Sidan avslutas med <![CDATA[</html>]]></howto>
   </instructions>
</data>
Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken

Det finns, till skillnad mot HTML, bara några få fördefinierade entities i XML. Lägg bland annat märke till frånvaron av &nbsp; som finns i HTML (Nej, jag har inte gjort ett stavfel i raden för &).

Tecken Entity
& &amp; eller &#38;&#38;
' &apos; eller &#39;
> &gt; eller &#62;
< &lt; eller &#38;&#60;
" &quot; eller &#34;

xml10_1.xml

<?xml version="1.0"?> 
<!DOCTYPE products SYSTEM "dtdfil.dtd">
<products>
   <product>
     <code>ABC &amp;  D</code>
     <price> &gt;122</price>
     <amount> &lt;4</amount>
   </product>
</products>
Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken

Den något konstiga skrivningen av & har sin förklaring när man ser på hur XML tolken hanterar entities. Nedan är ett litet exempel på en entity:

<!ENTITY vi "Anders &#38; Eva">

Denna används i en XML fil på följande sett:

<vem>&vi;</vem>

XML processorn kommer då att expandera texten så att den blir till

<vem>Anders & Eva</vem>

och kommer att försöka lista ut vad entiteten "& Eva" är för något. Den kommer att misslyckas med detta...

Denna tvåstegsprocess kommer sig av att man kan göra följande (jag har satt in DTD:n i XML filen för enkelhets skull):

xml10_3.xml

<?xml version="1.0" encoding="iso-8859-1" ?> 
<!DOCTYPE data [
   <!ENTITY intro "Dessa sidor lyder under copyleft reglerna.
   Gör vad du vill med dem, så länge som du inte anklagar mig
   för någonting.">

   <!ENTITY tit "<title>&intro;</title>">

   <!ELEMENT data (title, instructions)>
   <!ELEMENT title (#PCDATA)>
   <!ELEMENT instructions (howto+)>
   <!ELEMENT howto (#PCDATA)>
]>
<data>
   &tit;
   <instructions>
     <howto>För att byta rad i html skriver du <![CDATA[<br>]]></howto>
     <howto>Sidan avslutas med <![CDATA[</html>]]></howto>
   </instructions>
</data>
Om du har IE 5.0 eller nyare kan du klicka här för att se filen i praktiken

Observera användningen av &tit; entityn i ovanstående.

 

  Mer om ELEMENTMer om ATTLIST
Grunderna
XML filer
Mer om XML filer
Datat i XML
Validering
DTD
Studera själv på nätet
Mer om ELEMENT
Mer om ENTITY
Mer om ATTLIST
Rekursivt data
Övningar
Som nästa...


Top
< Mer om ELEMENT Mer om ATTLIST>
© Anders Enges, Vörå 2002  | 01.10.01 10:05 Visa asp koden