XML Entities and Notations

Introduction to XML Entities

जैसा की मैने पहले बताया XML files के साथ नहीं entities के साथ काम करती है। Entities XML documents का physical representation होती है। हालाँकि entities को files की तरह store किया जाता है लेकिन ऐसा करने के कोई जरुरत नहीं होती है।

किसी XML document में DTD और दूसरी files जिनको DTD refer करती है वो सभी entities कहलाती है। यँहा तक की XML document खुद एक entity होता है क्योंकि यह XML processor के लिए starting point होता है। Document की entity document entity के नाम से जानी जाती है।

XML entities को store और access करना नहीं बताती है। ये काम XML processor का होता है। XML processor entities को download भी कर सकता है या local catalog यूज़ करके भी entities को access कर सकता है।

Types of Entities

XML में कई तरह की categories होती है mainly इनको 3 categories में divide किया गया है।

  1. General and parameter entities
  2. Internal and external entities
  3. Parsed and Un-parsed entities

इन सभी entities के बारे में detail से निचे दिया जा रहा है।

General and Parameter Entities

General entity references text और markup में कँही भी आ सकते है। ज्यादातर general entities macros की तरह यूज़ की जाती है। जैसे ही यदि किसी बड़ी information को आपको document में कई जगह लिखना है तो इसके लिए आप general entity से short form generate कर सकते है। जँहा भी आप उस entity को लिखेंगे processor उस जगह उस पूरी information को process कर सकता है। इसका structure निचे दिया जा रहा है।इसे यूज़ करके आप आसानी से general entities create कर सकते है। General entities create करने के लिए <!ENTITY> tag यूज़ किया जाता है। ENTITY के बाद entity का नाम लिखा जाता है और उसके बाद single quotes में वो information लिखी जाती है जिसे आप process करना चाहते है।

<!ENTITY entity-name
'  your
             big-text
                               here in single quotes
'
>  

एक बार entity को define करने के बाद जँहा भी आप उसे यूज़ करना चाहते है वँहा पर & लिखकर entity का नाम लिख सकते है। जैसे की निचे दिया गया है।

&entity-name

Parameter entity references केवल DTD में ही यूज़ की जा सकती है। Parameter entities को declare करने के लिए % का यूज़ किया जाता है। इसका structure निचे दिया जा रहा है।

<!ENTITY % entity-name "(parameter1||parameter2) 'default-value' ">

Parameter entity को यूज़ करने के लिए आप निचे दिया गया syntax यूज़ कर सकते है।

%entity-name  

Internal and External Entities

यदि entity DTD में ही declare की गई है तो वह internal entity कहलाती है। Internal entities general भी हो सकती है तो parameter entities भी हो सकती है।

यदि entity को DTD के बाहर किसी दूसरे document में declare किया गया है तो ऐसी entity external entities कहलाती है। इन entities को access करने के लिए entity के नाम के बाद SYSTEM attribute में उस file का URL दिया जाता है जिसमें entities declare की गई है। इसका structure निचे दिया जा रहा है।

<!ENTITY entity-name SYSTEM "URL">  

Notations

हर entity को XML processor process नहीं कर सकता है इसके लिए एक specific application की जरुरत पड़ती है। जैसे की images के लिए एक image viewer की आवश्यकता होती है।

Notation basically एक mechanism होता है जिसमे वो सभी entities जो process नहीं की जा सकती उनको एक specific entity के साथ जोड़ दिया जाता है। एक notation declare करना बहुत ही आसान होता है। इसके लिए <!NOTATION> tag यूज़ किया जाता है। इसका structure निचे दिया जा रहा है।

<!NOTATION entity-identifier SYSTEM "URL of application">

यँहा पर entity-identifier entity का नाम होता है।