DTD - तत्व
XML तत्वों को XML दस्तावेज़ के निर्माण खंड के रूप में परिभाषित किया जा सकता है। तत्व पाठ, तत्वों, विशेषताओं, मीडिया ऑब्जेक्ट्स या सभी के मिश्रण को रखने के लिए एक कंटेनर के रूप में व्यवहार कर सकते हैं।
एक DTD तत्व एक ELEMENT घोषणा के साथ घोषित किया जाता है। जब XML फ़ाइल को DTD द्वारा मान्य किया जाता है, तो पार्सर प्रारंभ में मूल तत्व की जांच करता है और फिर बाल तत्वों को मान्य किया जाता है।
वाक्य - विन्यास
सभी DTD तत्व घोषणाओं में यह सामान्य रूप है -
<!ELEMENT elementname (content)>
एलीमेंट घोषणा का उपयोग उस पार्सर को इंगित करने के लिए किया जाता है जिसे आप एक तत्व को परिभाषित करने वाले हैं।
elementname तत्व नाम है (जिसे सामान्य पहचानकर्ता भी कहा जाता है ) जिसे आप परिभाषित कर रहे हैं।
सामग्री परिभाषित करती है कि क्या सामग्री (यदि कोई हो) तत्व के भीतर जा सकती है।
तत्व सामग्री प्रकार
DTD में घोषित तत्वों की सामग्री को नीचे वर्गीकृत किया जा सकता है -
खाली सामग्री
तत्व सामग्री
मिश्रित सामग्री
कोई सामग्री
खाली सामग्री
यह तत्व घोषणा का एक विशेष मामला है। इस तत्व घोषणा में कोई सामग्री नहीं है। इन्हें कीवर्ड के साथ घोषित किया जाता हैEMPTY।
Syntax
निम्न तत्व घोषणा के लिए वाक्य रचना निम्नलिखित है -
<!ELEMENT elementname EMPTY >
उपरोक्त वाक्य रचना में -
ELEMENTश्रेणी EMPTY का तत्व घोषणा है
elementname खाली तत्व का नाम है।
Example
निम्न तत्व घोषणा को प्रदर्शित करने वाला एक सरल उदाहरण निम्नलिखित है -
<?xml version = "1.0"?>
<!DOCTYPE hr[
<!ELEMENT address EMPTY>
]>
<address />
इस उदाहरण में पता एक खाली तत्व के रूप में घोषित किया गया है। पता तत्व के लिए मार्कअप <पता /> के रूप में दिखाई देगा।
तत्व सामग्री
तत्व सामग्री के साथ तत्व घोषणा में, सामग्री कोष्ठक के भीतर स्वीकार्य तत्व होंगे। हम एक से अधिक तत्वों को भी शामिल कर सकते हैं।
Syntax
निम्नलिखित तत्व सामग्री के साथ तत्व घोषणा का एक सिंटैक्स है -
<!ELEMENT elementname (child1, child2...)>
ELEMENT तत्व घोषणा टैग है
elementname तत्व का नाम है।
child1, child2 .. तत्व हैं और प्रत्येक तत्व की DTD के भीतर अपनी परिभाषा होनी चाहिए।
Example
नीचे उदाहरण तत्व सामग्री के साथ तत्व घोषणा के लिए एक सरल उदाहरण प्रदर्शित करता है -
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?>
<!DOCTYPE address [
<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
]>
<address>
<name>Tanmay Patil</name>
<company>TutorialsPoint</company>
<phone>(011) 123-4567</phone>
</address>
उपरोक्त उदाहरण में, पता मूल तत्व है और नाम , कंपनी और phone_no इसके बाल तत्व हैं।
ऑपरेटरों और सिंटेक्स नियमों की सूची
नीचे दी गई तालिका में ऑपरेटरों और वाक्यविन्यास नियमों की सूची दिखाई गई है जो बाल तत्वों को परिभाषित करने में लागू किए जा सकते हैं -
ऑपरेटर | वाक्य - विन्यास | विवरण | उदाहरण |
---|---|---|---|
+ | <! एलिमेंट एलिमेंट-नेम (child1 +)> | यह इंगित करता है कि बाल तत्व मूल तत्व के अंदर एक या अधिक बार हो सकता है। | <! एलिमेंट एड्रेस (नाम +)> बाल तत्व नाम तत्व नाम पते के अंदर एक या अधिक बार हो सकता है । |
* | <! तत्व तत्व-नाम (child1 *)> | यह इंगित करता है कि बाल तत्व मूल तत्व के अंदर शून्य या अधिक बार हो सकता है। | <! एलिमेंट एड्रेस (नाम *)> बाल तत्व का नाम तत्व नाम पते के अंदर शून्य या अधिक बार हो सकता है । |
? | <! तत्व तत्व-नाम (child1?)> | यह इंगित करता है कि बाल तत्व मूल तत्व के अंदर शून्य या एक बार हो सकता है। | <! एलिमेंट एड्रेस (नाम?)> तत्व नाम पते के अंदर बाल तत्व नाम शून्य या एक बार हो सकता है । |
, | <! एलिमेंट एलिमेंट-नाम (child1, child2)> | यह अल्पविराम द्वारा अलग किए गए बाल तत्वों का अनुक्रम देता है जिन्हें तत्व-नाम में शामिल किया जाना चाहिए। | <! एलिमेंट एड्रेस (नाम, कंपनी)> बाल तत्व नाम , कंपनी की अनुक्रम , जो तत्व नाम पते के अंदर एक ही क्रम में होनी चाहिए । |
| | <! एलिमेंट एलिमेंट-नाम (child1 | child2)> | यह बाल तत्व में चुनाव करने की अनुमति देता है। | <! एलिमेंट एड्रेस (नाम | कंपनी)> यह आपको बाल तत्वों या नाम या कंपनी का चयन करने की अनुमति देता है , जो कि तत्व नाम पते के अंदर होना चाहिए । |
नियमों
एक से अधिक तत्व सामग्री होने पर हमें कुछ नियमों का पालन करना होगा -
Sequences - अक्सर DTD दस्तावेजों के भीतर तत्वों को एक अलग क्रम में दिखाई देना चाहिए। यदि यह मामला है, तो आप एक अनुक्रम का उपयोग करके सामग्री को परिभाषित करते हैं।
घोषणा यह दर्शाती है कि <पता> तत्व में ठीक तीन बच्चे होने चाहिए - <नाम>, <कंपनी>, और <फोन> - और वे इस क्रम में दिखाई देंगे। उदाहरण के लिए -
<!ELEMENT address (name,company,phone)>
Choices- मान लीजिए कि आपको एक तत्व या दूसरे की अनुमति देने की आवश्यकता है, लेकिन दोनों नहीं। ऐसे मामलों में आपको पाइप (|) वर्ण का उपयोग करना चाहिए। पाइप एक विशेष OR के रूप में कार्य करता है। उदाहरण के लिए -
<!ELEMENT address (mobile | landline)>
मिश्रित तत्व सामग्री
यह (#PCDATA) और बच्चों के तत्वों का संयोजन है। PCDATA का अर्थ है पार्स कैरेक्टर डेटा, यानी टेक्स्ट, जो मार्कअप नहीं है। मिश्रित सामग्री मॉडल के भीतर, पाठ स्वयं प्रकट हो सकता है या इसे तत्वों के बीच अंतरित किया जा सकता है। मिश्रित सामग्री मॉडल के नियम पिछले अनुभाग में चर्चा किए गए तत्व सामग्री के समान हैं।
Syntax
मिश्रित तत्व सामग्री के लिए एक सामान्य वाक्यविन्यास निम्नलिखित है -
<!ELEMENT elementname (#PCDATA|child1|child2)*>
ELEMENT तत्व घोषणा टैग है।
elementname तत्व का नाम है।
PCDATAवह पाठ है जो मार्कअप नहीं है। # PCDATA को मिश्रित सामग्री घोषणा में पहले आना चाहिए।
child1, child2 .. तत्व हैं और प्रत्येक तत्व की DTD के भीतर अपनी परिभाषा होनी चाहिए।
यदि बच्चों के तत्वों को शामिल किया जाता है तो ऑपरेटर (*) को मिश्रित सामग्री घोषणा का पालन करना चाहिए
(#PCDATA) और बच्चों के तत्व घोषणाओं को (!) ऑपरेटर द्वारा अलग किया जाना चाहिए।
Example
डीटीडी में मिश्रित सामग्री तत्व घोषणा को प्रदर्शित करने वाला एक सरल उदाहरण निम्नलिखित है।
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?>
<!DOCTYPE address [
<!ELEMENT address (#PCDATA|name)*>
<!ELEMENT name (#PCDATA)>
]>
<address>
Here's a bit of text mixed up with the child element.
<name>
Tanmay Patil
</name>
</address>
कोई तत्व सामग्री
आप सामग्री में किसी भी कीवर्ड का उपयोग करके एक तत्व घोषित कर सकते हैं। इसे अक्सर मिश्रित श्रेणी के तत्व के रूप में जाना जाता है। कोई भी उपयोगी है जब आपके पास अभी तक तत्व की स्वीकार्य सामग्री तय करना है।
Syntax
निम्नलिखित तत्व किसी भी सामग्री के साथ घोषित करने के लिए वाक्यविन्यास है -
<!ELEMENT elementname ANY>
यहां, कोई भी कीवर्ड बताता है कि पाठ (PCDATA) और / या DTD के भीतर घोषित किए गए किसी भी तत्व का उपयोग <elementname> तत्व की सामग्री के भीतर किया जा सकता है। उनका उपयोग किसी भी क्रम में किसी भी समय किया जा सकता है। हालाँकि, कोई भी कीवर्ड आपको उन तत्वों को शामिल करने की अनुमति नहीं देता है जो DTD के भीतर घोषित नहीं हैं।
Example
किसी भी सामग्री के साथ तत्व घोषणा को प्रदर्शित करने वाला एक सरल उदाहरण निम्नलिखित है -
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?>
<!DOCTYPE address [
<!ELEMENT address ANY>
]>
<address>
Here's a bit of sample text
</address>