Sunday, 8 July 2012

EMBEDDED IMAGES


EMBEDDED IMAGES






To embed non-XML data (such as an image) into your XML document, you need to treat it as 


an external unparsed entity. To declare an external unparsed entity, you use the <!ENTITY> 


declaration along with the NDATA keyword.









Syntax

<!ENTITY name SYSTEM value NDATA TYPE>


You can also use public external unparsed entities by using the PUBLIC keyword along with a Formal Public Identifier (FPI):

<!ENTITY name PUBLIC FPI value NDATA TYPE>

Example


Here's an example of a private external unparsed entity. Here, we declare a new notation named "JPG" for the "image/jpeg" MIME type. Then we declare an external unparsed entity called "mt_cook_1" that refers to an image file called "mt_cook1_jpg". We then create a new attribute of type ENTITY - this means that we can now use this attribute in our XML document to refer to the unparsed external entity.

<!NOTATION JPG SYSTEM "image/jpeg">
<!ENTITY mt_cook_1 SYSTEM "mt_cook1.jpg" NDATA JPG>
<!ATTLIST mountain photo ENTITY #IMPLIED>

After declaring the external unparsed entity in our DTD (and creating an attribute of type ENTITY), we can now embed it in our XML document:

<mountains> <mountain photo="mt_cook_1">  
<name>Mount Cook</name> </mountain>  
<mountain> <name>Cradle Mountain</name> </mountain>
</mountains>

Embedding Multiple Images


If you need to embed multiple external unparsed entities via a single attribute, you simply give your attribute a type of ENTITIES (plural). This allows you to assign multiple images separated by a space.
Here's an example:
<!NOTATION JPG SYSTEM "image/jpeg">
<!ENTITY mt_cook_1 SYSTEM "mt_cook1.jpg" NDATA JPG>
<!ENTITY mt_cook_2 SYSTEM "mt_cook2.jpg" NDATA JPG>
<!ATTLIST mountain photo ENTITIES #IMPLIED>


Now that we've changed the "photo" attribute to type ENTITIES, we can assign multiple images to it in our XML document:

<mountains> <mountain photo="mt_cook_1 mt_cook_2"> 
<name>Mount Cook</name> </mountain> 
<mountain> <name>Cradle Mountain</name> 
</mountain></mountains>

No comments:

Post a Comment