డాక్యుమెంట్ టైప్ డెఫినిషన్

వికీపీడియా నుండి
ఇక్కడికి గెంతు: మార్గసూచీ, వెతుకు

డాక్యుమెంట్ టైప్ డెఫినిషన్ (DTD ) ఒక మార్క్అప్ ప్రకటనల సముదాయం, ఇది SGML-ఫ్యామిలీ మార్కప్ లాంగ్వేజ్‌ల (SGML, XML, HTML) కోసం ఒక డాక్యుమెంట్ టైప్‌ ని నిర్వచిస్తుంది. DTDలు XML వ్యూహంకి పూర్వగామిగా ఉండేవి, అలాగే వివిధ సామర్థ్య స్థాయిలు ఉన్నప్పటికీ ఒకే విధమైన పనితీరును కలిగి ఉంటున్నాయి.

ఒక నిర్దిష్ట రీతిలోని డాక్యుమెంట్‌లో ఎలిమెంట్లు మరియు ప్రస్తావనలు ప్రధానంగా ఎక్కడ కనిపిస్తాయి మరియు ఆ ఎలిమెంట్‌ల విషయాలు, లక్షణాలు ఏవి అనే విషయాన్ని ప్రకటించే చిన్న లాంఛనప్రాయ వ్యాక్య నిర్మాణాన్ని DTDలు ఉపయోగిస్తాయి. ఉదాహరణ డాక్యుమెంట్‌లో ఉపయోగించబడే వస్తుతత్వాలను కూడా DTDలు ప్రకటిస్తాయి.

XML ఒక SGML DTD ఉప సముదాయాన్ని ఉపయోగిస్తుంది.

As of 2009 కొత్త XML నేమ్‌స్పేస్- జాగరూకతా వ్యూహ భాషలు ( W3C XML స్కీమా మరియు ISO RELAX NG వంటివి) ఎక్కువగా DTDల స్థానాన్ని తీసేసుకున్నాయి. DTDల యొక్క నేమ్‌స్పేస్-అవేర్ వెర్షన్ ISO DSDL[1] యొక్క 9వ భాగంగా అభివృద్ధి చేయబడింది. XML మరియు HTML కేరక్టర్ ఎంటిటీ రిఫరెన్స్ వంటి ప్రత్యేక పబ్లిషింగ్ అక్షరాలకు అవసరమైన అప్లికేషన్లలో DTDలు ఉంటాయి, ఇవి ISO SGML ప్రమాణ ప్రయత్నంలో భాగంగా నిర్వచించబడిన పెద్ద సముదాయాల నుండి పుట్టుకొచ్చాయి.

DTDలను డాక్యుమెంట్లతో అనుసంధించడం[మార్చు]

డాక్యుమెంట్ టైప్ డిక్లరేషన్ XML డాక్యుమెంట్‌తో కూడిన DTDతో అనుబంధంలో ఉంటుంది. డాక్యుమెంట్ టైప్ డిక్లరేషన్‌లు ఒక XML డాక్యుమెంట్ యొక్క ప్రారంభానికి సమీపంలో ఉన్న వాక్యనిర్మాణపు భాగం డాక్టిపెడెకల్‌ లో కనబడుతుంటాయి.[1] డాక్యుమెంట్ అనేది ప్రస్తాపించబడిన DTD ద్వారా నిర్వచించబడిన రకపు ఉదాహరణను ప్రకటన అమరుస్తుంది.

DTDలు రెండు ప్రకటన రూపాలను రూపొందిస్తాయి.

  • ఒక ఐచ్ఛిక బాహ్య ఉపసముదాయం
  • ఒక ఐచ్ఛిక అంతర్గత ఉపసముదాయం

అంతర్గత ఉపసముదాయం రూపంలోని ప్రకటనలు స్వయంగా డ్యాక్యుమెంట్‌లోని డాక్యుమెంట్ టైప్ డిక్లరేషన్‌లో భాగంగా ఉంటాయి. బాహ్య ఉపసముదాయంలోని ప్రకటనలు ఒక విడి టెక్స్‌ట్ ఫైల్‌లో గుర్తించబడ్డాయి. బాహ్య ఉపసముదాయం ఒక పబ్లిక్ ఐడెంటిఫైయర్ మరియు/లేదా ఒక సిస్టమ్ ఐడెంటిఫైయర్ ద్వారా ప్రస్తావించబడవచ్చు. డాక్యుమెంట్లను చదివే ప్రోగ్రాములు బాహ్య ఉపసముదాయాన్ని చదవడానికి అవసరం కాకపోవచ్చు.

తన DTDలో బాహ్య ఉపసముదాయా న్ని ప్రస్తావించే ఏదైనా ప్రామాణిక SGML లేదా XML డాక్యుమెంట్ లేదా తన DTDలో (తమ అంతర్గత ఉపసముదాయం లో ప్రకటించబడిన శబ్దలక్షణాన్వయ బాహ్య తత్వాల కు ప్రస్తావనలు కలిగిన బాడీ అనేవి పాక్షికంగా మాత్రమే శబ్దలక్షణాన్వయంతో ఉంటాయి) కాని తమ స్వతంత్ర నిర్వహణ లోని ప్రామాణిక SGML లేదా XML శబ్దలక్షణాన్వయాలతో పూర్తిగా ప్రామాణీకరించబడాలి (దీనర్థం ఈ ప్రామాణిక శబ్దలక్షణాన్వయాలు ఈ బాహ్య ఎంటిటీలను తిరిగి పొందే ప్రయత్నం చేయవు మరియు వాటిస్థానంలో వచ్చే టెక్స్ట్ ప్రవేశించడానికి వీలుగా ఉండదు.)

అయితే, అటువంటి డాక్యుమెంట్ ఇప్పటికీ శబ్దలక్షణాన్వయాన్ని లెక్కించడంలో స్వతంత్ర రహిత - రీతిలో పూర్తిగా శబ్దలక్షణాన్వయంతో ఉంటుంది, ఇది ఈ బాహ్య తత్వాలు వాటి నిర్దిష్ట పబ్లిక్ ఐడెంటిఫైయర్ (FPI) మరియు/లేదా సిస్టమ్ ఐడెంటిఫైయర్ (ఒక URI) లలో నెలకొని ఉండదు లేక దీనిలో ప్రవేశానికి వీలు కాదు. DTDలో ప్రకటించబడిన టిప్పణిలు కూడా బాహ్య తత్వాలను ప్రస్తావిస్తాయి కాని ఈ శబ్దలక్షణంలేని తత్వాలు ఈ శబ్దలక్షణపు స్వతంత్ర రీతిలోని డాక్యుమెంట్ల ధృవీకరణకు అవసరం లేదుః టిప్పణిల చేత ప్రస్తావించబడిన అన్ని బాహ్య తత్వాల ధృవీకరణ అనేది SGML లేదా XML శబ్దలక్షణాన్వయను ఉపయోగించే అనువర్తనకు వదిలి వేయబడింది. ధృవీకరణ రహిత శబ్దలక్షణ అన్వయాలు స్వతంత్రరహిత - రీతిలోని ఈ బాహ్య వస్తుతత్వాలను గుర్తించడానికి క్రమంగా ప్రయత్నిస్తాయి (వాటి ప్రకటిత శబ్దలక్షణాన్వయ వస్తుతత్వాలను పరిష్కరించడానికి మాత్రమే DTDని పాక్షికంగా వ్యాఖ్యానించడం ద్వారా), కాని ఈ డాక్యుమెంట్ల విషయ నమూనాను ధృవీకరించవు.

ఉదాహరణలు[మార్చు]

డాక్యుమెంట్ టైప్ డిక్లరేషన్‌కి చెందిన కింది ఉదాహరణ పబ్లిక్ మరియు సిస్టమ్ ఐడెంటిఫైయర్స్ రెంటినీ కలిగి ఉంటుందిః

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

అన్ని HTML 4.01 డాక్యుమెంట్లూ మూడు SGML DTDలలో ఒకదాన్ని నిర్ధారిస్తాయి. ఈ DTDల యొక్క పబ్లిక్ ఐడెంటిఫైయర్లు స్థిరమైనవి మరియు కింది విధంగా ఉంటాయిః

ఈ DTDల యొక్క సిస్టమ్ ఐడెంటిఫైయర్లు, డాక్యుమెంట్ టైప్ డిక్లరేషన్‌లో సమర్పించబడినట్లయితే, URI ప్రస్తావనలుగా ఉంటాయి. సిస్టమ్ ఐడెంటిఫైయర్లు విభిన్నంగా, పరిష్కరించదగిన ప్రాంతంలోని నిర్దిష్ట ప్రకటనల సముదాయానికి సాధారణ బిందువుగా ఉంటాయి. డాక్యుమెంట్ శబ్దలక్షణాన్వయ సాఫ్ట్‌వేర్ ద్వారా ఉపయోగించి పరిష్కరిస్తున్న URIకి ఐచ్ఛికంగా అందుబాటులో ఉండే విభాగాలలోని సిస్టమ్ ఐడెంటిఫైయర్లకు పబ్లిక్ ఐడెంటిఫైయర్లు మ్యాప్ చేయబడటాన్ని SGML అనుమతిస్తుంది.

డాక్యుమెంట్ వాక్యనిర్మాణం XMLకి నిర్ధారించబడినట్లయితే, ఈ డాక్యుమెంట్ టైప్ డిక్లరేషన్ ఐచ్ఛికమైన XML డిక్లరేషన్ తర్వాత మరియు డాక్యుమెంట్ బాడీకి ముందు మాత్రమే కనిపిస్తుందని గుర్తించాలి. ఇది XHTML డాక్యుమెంట్లను కూడా కలిగి ఉంటుంది:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
&amp;lt;html&amp;gt;
 ...
&amp;lt;html&amp;gt;

బాహ్య ఉప సముదాయం తర్వాత అదనపు ఇంటర్నెట్ ఉపసముదాయం కూడా అందించబడుతుంది:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [
 
]>
 
&amp;lt;html&amp;gt;
 ...
&amp;lt;html&amp;gt;

ప్రత్యామ్నాయంగా, అంతర్గత ఉపసముదాయం మాత్రమే అందించబడవచ్చు:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html [
 
]>
 
&amp;lt;html&amp;gt;
 ...
&amp;lt;html&amp;gt;

చివరగా, డాక్యుమెంట్ టైప్ డెఫనిషన్ ఏ ఉపసమితిని పొందుపర్చక పోవచ్చుః డాక్యుమెంట్ ఒక సింగిల్ టాప్-లెవల్ ఎలిమెంట్‌ని కలిగి ఉంటుందని మాత్రమే అది పేర్కొనవచ్చు (ఇది అన్ని ధృవీకృత XML మరియు HTML డాక్యుమెంట్లకు తప్పనిసరి అవసరం) కాని డాక్యుమెంట్ విడిభాగాలకు లేదా అన్ని SGML డాక్యుమెంట్లకు కాదు, వీటి అగ్రగామి ఎలిమెంట్లు నిర్దేశించిన రూట్ ఎలిమెంట్ నుండి విభేదించవచ్చు) మరియు ఇది రూట్ ఎలిమెంట్ యొక్క రకం పేరును సూచిస్తుందిః

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html>
 
&amp;lt;html&amp;gt;
 ...
&amp;lt;html&amp;gt;

మార్కప్ డిక్లరేషన్లు[మార్చు]

DTDలు, ఎలిమెంట్ మరియు లక్షణ-జాబితా ప్రకటనల ద్వారా డాక్యుమెంట్‌ల వర్గ నిర్మాణాన్ని వర్ణిస్తాయి. ఎలిమెంట్ ప్రకటనలు డాక్యుమెంట్ లోపల అనుమతించదగిన ఎలిమెంట్ల సముదాయాన్ని పేర్కొంటాయి మరియు ప్రకటిత ఎలిమెంట్లు మరియు అక్షరాల డేటా ప్రతి ఎలిమెంట్‌లోనూ ఎలా కలిగి ఉంటాయనే అంశాన్ని పొందుపర్చబడి ఉంటాయి. లక్షణ-జాబితా ప్రకటనలు ప్రతి ప్రకటిత ఎలిమెంట్ కోసం అనుమతించదగిన లక్షణ సముదాయానికి పేరు పెడతాయి, ధృవీకృత విలువ సముదాయంగా స్పష్టం కానట్లయితే, ప్రతి లక్షణ విలువ రకంని కూడా పొందుపరుస్తుంది.

DTD మార్కప్ డిక్లరేషన్లు XML డాక్యుమెంట్ల యొక్క సంబంధిత వర్గ నిర్మాణంలో ఏ ఎలిమెంట్ రకాలు, లక్షణ జాబితాలు, ఎంటిటీలు మరియు టిప్పణిలు అనుమతించబడతాయనే అంశాన్ని ప్రకటిస్తాయి.[2]

ఎలిమెంట్ టైప్ డిక్లరేషన్లు[మార్చు]

ఎలిమెంట్ టైప్ డిక్లరేషన్ ఒక ఎలిమెంట్ మరియు దాని సంభావ్య విషయాన్ని నిర్వచిస్తుంది. ఒక ధృవీకృత XML డాక్యుమెంట్ DTDలో నిర్వచించబడిన ఎలిమెంట్లను మాత్రమే కలిగి ఉంటుంది.

వివిధ కీలకపదాలు మరియు అక్షరాలు ఒక ఎలిమెంట్ కంటెట్‌ను పేర్కొంటాయిః ఇవి ఈ రంకంగా ఉండగలవుః

  • EMPTY నిర్వచించబడిన ఎలిమెంట్ ఏ విషయాన్నీ అనుమతించదని పేర్కొనడానికి దీన్ని సూచిస్తారు, అంటే ఇది పిల్లల ఎలిమెంట్లను కలిగి ఉండదు, చివరకు టెక్స్ట్ ఎలిమెంట్లను కూడా కలిగి ఉండదు (తెల్ల ఖాళీలు ఉన్నట్లయితే అవి విస్మరించబడతాయి);
  • నిర్వచించబడిన ఎలిమెంట్ విషయాన్నయినా ఆంక్షలు లేకుండా అనుమతిస్తుందని సూచిస్తుంది, అంటే ఇది పిల్లల ఎలిమెంట్ల యొక్క ఏదైనా సంఖ్యను (లేకపోవచ్చు కూడా) మరియు రకాన్ని కలిగి ఉండవచ్చు; (టెక్స్ట్ ఎలిమెంట్లతో సహా)
  • లేదా ఒక వ్యక్తీకరణ, నిర్వచిత ఎలిమెంట్‌ యొక్క విషయంలో ప్రత్యక్ష పిల్లల్లా అనుమతించే ఎలిమెంట్లను మాత్రమే నిర్దేశిస్తుంది:
    • మిశ్రమ కంటెంట్ , అంటే, విషయం కనీసం ఒక పాఠం ఎలిమెంట్‌ని మరియు జీరో లేదా మరిన్ని పేర్ల ఎలిమెంట్లను కలిగి ఉంటుందని అర్థం కానీ, వాటి క్రమం మరియు సంఖ్యల సంభావ్యత నిరోధించబడదు; ఇది:
      • ( #PCDATA ) కలిగి ఉంటుంది: చారిత్రకంగా దీనికి శబ్దలక్షణాన్వయ అక్షర డేటా అనే అర్థం ఉంది, అంటే విషయంలో ఒక ఎలిమెంట్ మాత్రమే అనుమతించబడుతుందని దీనర్థం (క్వాలిఫైయర్ అనుమతించబడదు);
      • ( #PCDATA

| ఎలిమెంట్ పేరు | ... )*: ఇద్దరు లేదా మరింతమంది బాల ఎలిమెంట్ల యొక్క పరిమిత ఎంపిక (పేరంథసిస్ మరియు "| " గొలుసు అక్షరాల ద్వారా విడదీయబడతాయి మరియు అవసరమైన "*" క్వాంటిఫైయర్) ద్వారా తొలగించబడుతుంది (పాఠ ఎలిమెంట్లను లేదా పేర్కొనబడిన పేరు ఎలిమెంట్లనుతోపాటుగా ఉంటుంది) ఇది విషయంలో ఏ క్రమంలో అయినా, ఏ సంఖ్యలో అయినా సంభవించవచ్చు.

    • ఒక ఎలిమెంట్ కంటెంట్ , విషయం యొక్క బాల ఎలిమెంట్లలో ఎలాంటి పాఠ ఎలిమెంట్ ఉండకూడదని దీనర్థం, (అన్ని బాల ఎలిమెంట్ల మధ్య సంకేతించబడిన తెల్ల ఖాళీలు అప్పుడు విస్మరించబడతాయి, వ్యాఖ్యల వంటివి). ఇటువంటి ఎలిమెంట్ విషయం టెర్మినల్ చిహ్నాలు మరియు టెర్మనల్ ఏతర చిహ్నాల వంటి ఎలిమెంట్ల పేర్లు లేని బాకస్-నౌర్ రూపం యొక్క విభిన్న రూపంలోని కంటెంట్ పార్టికల్‌ లా పేర్కొనబడుతుంది. ఎలిమెంట్ కంటెంట్ వీటిని కలిగి ఉంటుంది:
      • ఒక కంటెంట్ పార్టికల్ DTDలో ప్రకటించబడిన ఎలిమెంట్ పేరుగా లేదా ఒక క్రమ జాబితా లేదా ఎంపిక

జాబితా పేరుగా కూడా ఉండగలదు. ఇది ఒక ఐచ్ఛిక క్వాంటిఫైయర్‌ తో అనుసరించబడుతుంది.

      • క్రమ జాబితా అంటే ఒకటి లేదా ఎక్కువ కంటెంట్ పార్టికల్స్ యొక్క క్రమ జాబితా (ఇది పేరంథసిస్ మరియు

"," కామా అక్షరం మధ్య నిర్దేశించబడతుంది) : అన్ని కంటెంట్ పార్టికల్స్ కూడా నిర్దిష్ట స్థానంలో మరియు సాపేక్ష క్రమంలో నిర్వచించబడిన ఎలిమెంట్ కంటెంట్‌లోని ప్రత్యక్ష పిల్లలలా విజయవంతంగా కనిపించాలి;

      • ఎంపిక జాబితా అంటే పరస్పరం ప్రత్యేకమైన జాబితా (వాక్యాల మధ్య పేర్కొనబడింది మరియు ఒక "

రెండు లేక ఎక్కువ కంటెంట్ పార్టికల్స్ యొక్క |" గొలుసు అక్షరం) ఎ " చే విడదీయబడింది: వీటిలో ఒకదానిలో మాత్రమే కంటెంట్ పార్టికల్స్ అదే స్థితిలో నిర్వచించబడిన ఎలిమెంట్ యొక్క విషయంలో కనిపించవచ్చు.

      • క్వాంటిఫైయర్ అనేది తాను అనువర్తించే నిర్దిష్ట అంశాన్ని వెంటనే అనుసరించే ఒక ఏకాక్షరం, ఎలిమెంట్ కంటెంట్‌లో నిర్దేశించబడిన స్థానం వద్ద ఈ అంశాల యొక్క వరుస సంభావ్యతా సంఖ్యలను పరిమితం చేస్తుంది; ఇది మరియు మరొకటి:
        • + మరింత స్పష్టంగా పేర్కొనడం కోసం, అంశానికి సంబంధించి ఒకటి లేదా ఎక్కువ సంభావ్యతలు ఉండాలి — ప్రతి సంభావ్యతకు చెందిన ప్రభావ విషయం విభిన్నంగా ఉండవచ్చు.
        • * ఏ సంఖ్యలోని (సున్నా లేదా ఎక్కువ) సంభావ్యతలను అనుమతించినప్పుడు — విషయం ఐచ్ఛికం మరియు ప్రతి సంభావ్యత యొక్క ప్రభావ విషయం విభిన్నంగా ఉండవచ్చు;
        • ? ఒక సంభావ్యత కంటే ఎక్కువ ఉండకపోవచ్చని చెప్పబడుతోంది — అంశం అనేది ఐచ్ఛికం;
        • క్వాంటిఫైయర్ లేనట్లయితే, పేర్కొనబడిన అంశం తప్పనిసరిగా ఎలిమెంట్ యొక్క కంటెంట్‌లోని ప్రత్యేక స్థానం వద్ద సరిగ్గా ఒక సారి మాత్రమే సంభవిస్తుంది.

ఉదాహరణకు:

<!ELEMENT html (head, body)>
<!ELEMENT p (#PCDATA | p | ul | dl | table | h1|h2|h3)*>

ఎలిమెంట్ టైప్ డిక్లరేషన్‌లు ధృవీకరణేతర SGML మరియు XML శబ్దలక్షణాన్వయాల చేత విస్మరించబడతాయి (ఇలాంటి సందర్భాలలో ఏ ఎలిమెంట్లయినా ఏ క్రమంలో అయినా అంగీకరించబడతాయి మరియు శబ్దలక్షణాన్వయ డాక్యుమెంట్‌లో ఎన్ని సార్లయినా అంగీకరించబడతాయి.) కానీ, ఈ ప్రకటనలు ఇప్పటికీ స్పష్టమైన రూపంకోసం మరియు ధృవీకరణ కోసం తనిఖీ చేయబడతాయి.

లక్షణ జాబితా ప్రకటనలు[మార్చు]

ఒక లక్షణ జాబితా నిర్దిష్ట ఎలిమెంట్ రకం కోసం ఆ రకంతో ముడిపడి ఉన్న అన్ని లక్షణాల జాబితాను పేర్కొంటుంది. ప్రతి సంభావ్య లక్షణానికి సంబంధించి, అది వీటిని కలిగి ఉంటుంది :

  • లక్షణం యొక్క ప్రకటిత పేరు,
  • దాని డేటా రకం (లేదా దాని సంభావ్యతా విలువుల గణన)
  • మరియు దాని డిఫాల్ట్ విలువ[3].

ఉదాహరణకు:

<!ATTLIST img 
 src CDATA #REQUIRED
 id ID #IMPLIED
 sort CDATA #FIXED "true"
 print ("yes" | "no") "yes"
>

ఇక్కడ SGML మరియు XML రెండింటి మద్ధతు కలిగిన కొన్ని లక్షణ రకాలున్నవి:

CDATA
ఆ రకానికి అక్షరాల డేటా అని అర్థం మరియు లక్షణం యొక్క ప్రభావ విలువ ఏ పాఠ్య విలువగా అయినా ఉండవచ్చని ఇది సూచిస్తుంది, లక్షణం స్థిరమైనది అని నిర్దేశించకపోయినట్లయితే, (DTD లోని వ్యాఖ్యలు ఏ విలువలు సమర్థనీయంగా ఆమోదించబడతాయో డాక్యుమెంట్ చేయవచ్చు కాని, DTD వాక్యనిర్మాణం అలాంటి సంక్షిప్త నిర్దేశకాన్ని అనుమతించదు);
ID
లక్షణం యొక్క ప్రభావ విలువ తప్పకుండా ఒక ధృవీకృత ఐడెంటిఫైయర్‌గా ఉండవచ్చు మరియు ఈ నిర్వచించబడిన ఐడెంటిఫైయర్‌ను ఉపయోగించి ప్రస్తావనల లక్ష్యాన్ని ఇది నిర్వచిస్తుంది మరియు ప్రస్తుత ఎలిమెంట్‌కి సంధానిస్తుంది ("#" తర్వాత URI చివరలో పేర్కొనబడే డాక్యుమెంట్ విడి ఐడెంటిఫైయర్స్‌లా కూడా ఉంటుంది); ఒకే డాక్యుమెంట్ లోని విశిష్ట ఎలిమెంట్లు అదే ఐడెంటిఫైయర్‌ను నిర్వచిస్తున్నట్లయితే అది తప్పు; ఐడెంటిఫైయర్ తనకు తానుగా ఏ అర్థవిపరిణామాలను కలిగి లేదని మరియు ఆ ఐడెంటిఫైయర్లు తప్పక అప్లికేషన్లలో అపారదర్శకంగా ఉండే విధంగా వ్యవహరించబడుతుందని నాణ్యతా నిరోధం కూడా వ్యక్తీకరిస్తుంది; XML కూడా ఈ రకం యొక్క ప్రామాణిక నకిలీ లక్షణాన్ని "xml:id" DTDలో ఏ ప్రకటనా అవసరం లేకుండానే ముందే నిర్వచిస్తుంది, కాబట్టి ఈ నిర్వచించబడిన ఐడెంటిఫైయర్లు XML డాక్యుమెంట్‌లో ఎక్కడైనా నిర్దేశించబడినప్పుడు నాణ్యతా నిరోధం కూడా వీటికి అనువర్తించబడుతుంది.
IDREF లేదా IDREFS
లక్షణం యొక్క ప్రభావ విలువ ఒక ధృవీకృత ఐడెంటిఫైయర్‌గా (లేదా ప్రతి ఐడెంటిఫైయర్ యొక్క స్పేస్‌చే-విడదీయబడిన జాబితా) గా మాత్రమే ఉంటుంది మరియు DTDలోని ID రకంతో ప్రకటించబడిన లక్షణంతో కూడిన డాక్యుమెంట్‌లో నిర్వచించబడిన నాణ్యతా అంశాన్ని తప్పక ప్రస్తావిస్తుంది (లేదా నాణ్యతా ఎలిమెంట్ అనేది నకిలీ-లక్షణంతో కూడిన XML డాక్యుమెంట్‌లో నిర్వచించబడుతుంది "xml:id") మరియు దీని ప్రభావ విలువ అదే ఐడెంటిఫైయర్‌గా ఉంటుంది;
NMTOKEN లేదా NMTOKENS
లక్షణం యొక్క ప్రభావ విలువ ఒక ధృవీకృత ఐడెంటిఫైయర్‌గా (లేదా ప్రతి ఐడెంటిఫైయర్ యొక్క స్పేస్‌చే-విడదీయబడిన జాబితా) గా మాత్రమే ఉంటుంది మరియు DTDలోని {0}ID{/0} రకంతో ప్రకటించబడిన లక్షణంతో కూడిన డాక్యుమెంట్‌లో నిర్వచించబడిన నాణ్యతా అంశాన్ని తప్పక ప్రస్తావిస్తుంది (లేదా నాణ్యతా ఎలిమెంట్ అనేది నకిలీ-లక్షణంతో కూడిన XML డాక్యుమెంట్‌లో నిర్వచించబడుతుంది "{0}xml:id{/0}") మరియు దీని ప్రభావ విలువ అదే ఐడెంటిఫైయర్‌గా ఉంటుంది;
ENTITY లేదా ENTITIES
లక్షణం యొక్క ప్రభావ విలువ ఒక ధృవీకృత పేరు టోకెన్‌గా మాత్రమే ఉంటుంది (లేదా స్పేస్‌తో-విడదీయబడిన అటువంటి పేరు టోకెన్ల జాబితాతో ఉంటుంది), కాని ఇది డాక్యుమెంట్‌లోని నాణ్యతా ఐడెంటిఫైయర్‌గా పరిమితం చేయబడదు; ఈ పేరు అనుబంధ మరియు అప్లికేషన్-ఆధారిత అర్థవిపరిణామాన్ని కలిగి ఉండవచ్చు మరియు దీనికి అదనపు నేమింగ్ నిరోధాలు అవసరం కావచ్చు కానీ, ఇది DTD పరిధిని దాటిన అంశంగా ఉంటుంది;
(value1|...)
లక్షణం యొక్క ప్రభావ విలువ లెక్కించిన పాఠ్య విలువల జాబితాలో ఒకటిగా మాత్రమే ఉంటుంది (ఇది పేరంథిసిస్ మరియు "

|" గొలుసు అక్షరం మధ్య నిర్దేశించబడుతుంది) అది సాధారణ పేరు టోకెన్ కానట్లయితే, గణనలోని ప్రతి విలువ 'సింగిల్' లేదా "డబుల్" ఉల్లేఖన చిహ్నాల మధ్య నిర్దేశించబడుతుంది;

NOTATION (notation1|...)
లక్షణం యొక్క ప్రభావ విలువ ఏదైనా లెక్కించబడిన జాబితాగా మాత్రమే ఉంటుంది (పేరెంథసిస్ మధ్య నిర్దేశించబడింది మరియు టిప్పణి పేర్ల యొక్క "

|" గొలుసు అక్షరంచే వేరుచేయబడింది) గణనలోని ప్రతి టిప్పణి పేరు తప్పకుండా డాక్యుమెంట్ టైప్ డిక్లరేషన్‌లో ప్రకటించబడాలి; ఈ రకానికి HTML శబ్దలక్షణ అన్వయాలలో మద్దతు లేదు కాని, ఇది SGML మరియు XML 1.0 లేదా 1.1 లలో (XHTML మరియు SVGతోపాటు) ధృవీకరించబడుతుంది.

నిర్దిష్ట లక్షణం XML ట్యాగ్‌లో వదిలివేయబడిన సందర్భంలో, ఒక లక్షణం తప్పనిసరిగా సంభవిస్తుందా (#REQUIRED) లేక సంభవించదా (#IMPLIED) అనే అంశాన్ని డిఫాల్ట్ విలువ నిర్వచిస్తుంది లేదా ఇది స్థిర విలువను కలిగి ఉంటుందా (#FIXED) లేక ఏ విలువ డిఫాల్ట్ విలువగా ఉపయోగించబడుతుంది అనే అంశాన్ని నిర్వచిస్తుంది ("…")

లక్షణ జాబితా ప్రకటనలు ధృవీకరణేతర SGML మరియు XML శబ్దలక్షణాన్వయాలచేత విస్మరించబడతాయి (ఏ సందర్భాలలో ఏ లక్షణమైనా శబ్దలక్షణాన్వయ డాక్యుమెంట్ యొక్క అన్ని ఎలిమెంట్లలో ఆమోదించబడుతుంది), కాని ఈ ప్రకటనలు ఇప్పటికీ చక్కటి రూపం మరియు ధృవీకరణకోసం తనిఖీ చేయబడతాయి.

ఎంటిటీ ప్రకటనలు[మార్చు]

ఎంటిటీలు అనేవి పొట్టి పేరుగల చరరాశి, ఇవి ప్రత్యేకంగా నిర్వచించబడిన ఇతర డేటాను ప్రస్తావించడానికి ఉపయోగించబడతాయి; దీని ప్రత్యేక ఉపయోగం ఏదంటే, ప్రత్యేక అక్షరాలకోసం యూజర్-రీడబుల్ పేర్లు.[4] అందుచేత, ఎంటిటీలు పునరుక్తిని అధిగమించి ఎడిటింగ్‌ను సులభతరం చేస్తాయి. సర్వసాధారణంగా, ఇవి ప్రాథమికంగా రెండు విభిన్న రకాలు:

  • అంతర్గత (పదనిరూపణ) ఎంటిటీలు వాటి ప్రకటనలో నిర్వచించబడిన ఏదైనా లక్షణ పాఠ్య విషయంతో పేరును ముడిపెడతాయి (ఇవి అంతర్గత ఉపసముదాయం లో ఉండవచ్చు లేదా డాక్యుమెంటులో ప్రకటించిన DTD యొక్క బాహ్య ఉపసముదాయం లో ఉండవచ్చు). పేరు పెట్టబడిన ఎంటిటీ ప్రస్తావన ఇతర డాక్యుమెంట్‌లో ఎదురైనప్పుడు (DTD యొక్క ఇతర భాగంతో పాటు), మరియు సమర్థవంతంగా నిర్వచించబడిన ఈ ఎంటిటీ పేరు పదనిరూపణ ఎంటిటీని కలిగి ఉన్నట్లయితే, ప్రస్తావన తనకు తానుగా పదనిరూపణ ఎంటిటీలో నిర్వచించబడిన పాఠ్య విషయం ద్వారా తక్షణమే భర్తీ చేయబడుతుంది మరియు పదనిరూపణ అనేది ఈ భర్తీ చేయబడిన పాఠంలో కొనసాగుతుంది.
    • ముందే నిర్వచించబడిన అక్షర ఎంటిటీలు అంతర్గత ఎంటిటీలను పోలి ఉంటాయి: వీటిలో 5, అన్ని SGML, HTML మరియు XML పదనిరూపణలలో ప్రత్యేకంగా నిర్వహించబడతాయి. ఈ ఎంటిటీలు సాధారణ పదనిరూపణ చేయబడిన ఎంటటీల నుండి భిన్నంగా ఉంటాయి ఎందుకంటే ఒక పేరు పెట్టబడిన అక్షర ఎంటిటీ ప్రస్తావన డాక్యుమెంటులో ఎదురయినట్లయితే, ఎంటిటీలో నిర్వచించబడిన అక్షర విషయం ద్వారా ప్రస్తావన వెంటనే భర్తీ చేయబడుతుంది కాని పదనిరూపణ అనేది ప్రస్తుత పదనిరూపణ టోకెన్‌లో తక్షణం చొప్పించబడిన పాఠ్యం భర్తీ తర్వాత కొనసాగుతుంది. (ఆ టోకెన్ యొక్క పాఠ్య విలువలో అలాంటి అక్షరం అనుమతించబడినట్లయితే). HTML లేదా XML యొక్క ప్రధాన వ్యాక్యనిర్మాణం కోసం తమ ప్రత్యేక వాక్య నిర్మాణ పాత్ర నుంచి తప్పించబడేందుకు అవసరమైన కొన్ని అక్షరాలను ఇది అనుమతిస్తుంది (ప్రత్యేకించి "&" ప్రారంభ ఎంటిటీ ప్రస్తావనల కోసం ప్రత్యేకించబడింది, "<" లేదా ">" మార్కప్ టాగ్స్‌ను డీలిమిట్ చేయడానికి ఇది ప్రత్యేకించబడింది మరియు "డబుల్" లేక "సింగిల్" ఉల్లేఖన గుర్తులు లక్షణాలు మరియు ఎంటిటీ నిర్వచనాల విలువలను డీలిమిట్ చేయడానికి ప్రత్యేకించబడ్డాయి). ముందే నిర్వచించబడిన ఎంటిటీలు కూడా సంఖ్యాత్మక అక్షరాల ప్రస్తావనలను పొందుపర్చుకుని ఉంటాయి, ఇవి అదే విధంగా నిర్వహించబడతాయి మరియు అవి ప్రాతినిధ్యం వహించే అక్షరాలను తప్పించడానికి ఉపయోగపడతాయి లేక డాక్యుమెంట్ ఎన్‌కోడింగ్ ద్వారా బలపర్చబడే అక్షర ప్రదర్శన పట్టికలోని పరిమితులను అధిగమించడానికి ఉపయోగించబడతాయి.
    • SGML ప్రాథమిక ప్రొఫైళ్లలో లేదా HTML డాక్యుమెంట్లలో, అంతర్గత ఎంటిటీల ప్రకటన సాధ్యం కాదు (ఎందుకంటే బాహ్య DTD ఉప సముదాయాలు తిరిగి పొందబడవు మరియు అంతర్గత DTD ఉప సముదాయాలకు ఈ ప్రాథమిక ప్రొపైళ్లలో మద్దతు లేదు).
    • బదులుగా, HTML ప్రమాణాలు వందలాది పేరు పెట్టబడిన అక్షర ఎంటిటీల యొక్క భారీ సముదాయాన్ని ముందే నిర్వచిస్తుంటాయి కాని అవి ఇప్పటికీ పదనిరూపణ ద్వారా ఉపయోగించబడిన DTDలో నిర్వచించబడిన, ప్రామాణిక పదనిరూపణ ఎంటిటీలుగా నిర్వహించబడుతుంటాయి.
  • బాహ్య ఎంటిటీలు బాహ్య నిల్వ అంశాలను ప్రస్తావిస్తాయి. అవి డాక్యుమెంటులో విశిష్ట పేరు ద్వారా ప్రకటించబడతాయి మరియు ఒక పబ్లిక్ ఐడెంటిఫైయర్ (FPI) మరియు/లేదా ఒక సిస్టమ్ ఐడెంటిఫైయర్ (ఒక URIగా వ్యాఖ్యానించబడతాయి) తో నిర్వచించబడతాయి, వాటి విషయం యొక్క మూలం ఎక్కడుందో పేర్కొంటుంటాయి. నిజానికి ఇవి రెండు విభిన్న రూపాలలో ఉనికిలో ఉంటాయి.
    • పదనిరూపణ బాహ్య ఎంటిటీలు (చాలా తరచుగా పేరు పెట్టబడిన వ్యాఖ్యకు వాటి నిర్వచనంలో ముడిపడి ఉండని వాటి కంటెంట్ URIతో సూచించబడే ఒక SYSTEM ఐడెంటిఫైయర్‌తో నిర్వచించబడతాయి, ఇలాంటి సందర్భంలో XML లేదా SGMLలను ధృవీకరించే పదనిరూపణలు తమ విషయాలను తిరిగి పొందుతాయి మరియు అవి అంతర్గత ఎంటిటీలుగా ప్రకటించబడిన విధంగా వాటికి శబ్దలక్షణాన్వయం చేస్తాయి (బాహ్య ఎంటిటీ వాటి సమర్థమైన పాఠ్య భర్తీని కలిగి ఉంటుంది);
    • పదనిరూపణ చేయబడని బాహ్య ఎంటిటీలు ఇవి ఒక వ్యాఖ్య పేరును నిర్వచించి వాటితో ముడిపడి ఉంటాయి, ఈ సందర్భంలో ఇవి అపారదర్శక ప్రస్తావనలుగా వ్యవహరించబడతాయి మరియు SGML లేదా XMl పదనిరూపణను ఉపయోగించే అప్లికేషన్ వంటివాటితో గుర్తించబడతాయి: అది మధ్దతిచ్చే రకాల వ్యాఖ్యల ప్రకారం, వాటి వ్యాఖ్యానం, తిరిగి పొందడం మరియు పదనిరూపణ అనేవి అప్లికేషన్‌ పరిధిలోకి వెళ్లిపోతాయి (వ్యాఖ్యలు పదనిరూపణ చేయబడని బాహ్య లింకుల ఉదాహరణకు సంబంధించి తదుపరి విభాగంలో చూడండి).
    • SGML లేదా HTML డాక్యుమెంట్లలోని ప్రాథమిక ప్రొఫైళ్లలో బాహ్య ఎంటిటీలకు మద్దతు లేదు, కాని SGML మరియు XML 1.0 లేదా 1.1 యొక్క పూర్తి అమలులో ఇవి చెల్లుతాయి (XHTML మరియు SVGతో సహా, ఈ డాక్యుమెంట్ రకాలలో వీటి అవసరం పెద్దగా లేనప్పటికి కూడా).

అంతర్గత ఎంటిటీ ప్రకటనలకు ఒక ఉదాహరణ (ఇక్కడ SGML డాక్యుమెంట్ యొక్క అంతర్గత DTD ఉపసమితి):

<!DOCTYPE sgml [
 <!ELEMENT sgml ANY>
 <!ENTITY % std "standard SGML">
 <!ENTITY % signature " — &amp;author;.">
 <!ENTITY % question "నేను నా పుస్తకాలను నేరుగా %std;లో ఎందుకు ప్రచురించుకోలేను?">
 <!ENTITY % author "విలియం షేక్స్‌పియర్">
]>
<sgml>&amp;question;&amp;signature;</sgml>

DTDలో లేదా డాక్యుమెంట్ ప్రధాన భాగంలో ప్రస్తావించబడనంతవరకు, పదనిరూపణ చేయబడనంతవరకు అంతర్గత ఎంటిటీలు ఏ క్రమంలో అయినా నిర్వచించబడతాయి : ఒక పదనిరూపణ చేయబడిన ఎంటిటీ విషయంలో ఇప్పటికీ నిర్వచించబడని ఎంటిటీని ప్రస్తావించడం చెల్లుబాటవుతుంది కాని ఈ ఎంటిటీ పూర్తిస్థాయిలో నిర్వచించబడటానికి ముందు దాని నిర్వచిత కంటెంటులో ప్రస్తావించబడిన ఇతర అంతర్గత ఎంటిటీలతో పాటుగా ఇది ఎక్కడైనా ఏదైనా పేరు పెట్టబడిన ఎంటిటీ ప్రస్తావనలో పొందుపర్చడం చెల్లుబాటు కాదు. (ఇది కూడా అంతర్గత ఎంటిటీల వృత్త లేదా పునరావృత నిర్వచనాలను నిరోధిస్తుంది). ఈ డాక్యుమెంట్ ఇలా ఉంటే పదనిరూపణ చేయబడుతుంది:

<!DOCTYPE sgml [
 <!ELEMENT sgml ANY>
 <!ENTITY % std "standard SGML">
 <!ENTITY % signature " — &amp;author;.">
 <!ENTITY % question "నేను నా పుస్తకాలను నేరుగా ప్రామాణిక SGMLలో ఎందుకు ప్రచురించుకోలేను?">
 <!ENTITY % author "విలియం షేక్స్‌పియర్">
]>
<sgml>నేను నా పుస్తకాలను నేరుగా ప్రామాణిక SGMLలో ఎందుకు ప్రచురించుకోలేను? — విలియం షేక్స్‌పియర్.</sgml>

రచయిత అంతర్గత ఎంటిటీకి ప్రస్తావన "సిగ్నేచర్" అంతర్గత ఎంటిటీ యొక్క పాఠ్య భర్తీలో ప్రత్యామ్నాయం చేయబడదని గుర్తించాలి. తద్భిన్నంగా, "sgml" ఎలిమెంట్‌ యొక్క కంటెంట్ లోపల "సిగ్నేచర్" ఎంటిటీ ప్రస్తావన పదనిరూపణ చేయబడినప్పుడు మాత్రమే ఇది భర్తీ చేయబడుతుంది కాని పదనిరూపణలను ధృవీకరించడం ద్వారా మాత్రమే ఇది జరుగుతుంది (ఎలిమెంట్ యొక్క కంటెంట్‌లో లేదా లక్షణ విలువలలో సంభవించే ఎంటిటీ ప్రస్తావనలకు, ధృవీకరించబడని పదనిరూపణలు ప్రత్యామ్నాయం కావు.

అంతర్గత ఎంటిటీ నిర్వచనాలలో పేర్కొన్న పాఠ్య భర్తీ పరామితి అనేది ఎంటిటీ ప్రస్తావనలకు ("%"అక్షరం ద్వారా పరిచయం చేయబడినవి మరియు పదనిరూపణ చేయబడే DTD కంటెంటుకు వర్తింపచేయబడే భర్తీలు) మరియు సాధారణ ఎంటిటీ ప్రస్తావనలకు ("&" అక్షరం ద్వారా పరిచయం చేయబడినవి మరియు అవి పదనిరూపణ చేయబడి, ధృవీకరించబడేంతవరకు భర్తీ ప్రక్రియ జాప్యం చేయబడేవి) మధ్య వ్యత్యాసాన్ని అనుమతిస్తుంది. DTDలోని పరామితి ఎంటిటీ ప్రస్తావనను పరిచయం చేసే "%" అక్షరం DTD వెలుపల తన ప్రత్యేక పాత్రను కోల్పోతుంది మరియు ఇది కేవల అక్షరంగా మారిపోతుంది.

అయితే, ముందే నిర్వచించబడిన సంఖ్యాత్మక అక్షర ఎంటిటీల ప్రస్తావనలు ధృవీకృత పదనిరూపణ అవసరం లేకుండానే, అవి సంభవించినప్పుడల్లా మార్చబడుతుంటాయి, (ఇవి "&" అక్షరం ద్వారా మాత్రమే పరిచయం చేయబడుతుంటాయి).

టిప్పణి ప్రకటనలు[మార్చు]

టిప్పణులు SGML లేదా XML‌లో ఉపయోగించబడతాయి. ఇవి పదనిరూపణ చేయబడని బాహ్య ఎంటిటీలకు పూర్తి ప్రస్తావనలను అందచేస్తాయి, వీటి వ్యాఖ్యానం వీటికి డాక్యుమెంట్‌ యొక్క ప్రధాన భాగంలో ఉపయోగపడేలా సాధారణ పేరును కేటాయించడం ద్వారా అప్లికేషన్‌కు వదిలివేయబడుతుంది (ఇది వీటిని నేరుగా వ్యాఖ్యానిస్తుంది లేదా బాహ్య ఎంటిటీని తిరిగి పొందుతుంది). ఉదాహరణకు, టిప్పణులు XML 1.1 డాక్యుమెంట్‌లోని XML యేతర డేటాను ప్రస్తావించడానికి ఉపయోగించబడుతుంది. ఉదాహరణకు, ప్రత్యేక రెండరర్‌తో వాటిని ముడిపెట్టడానికి గాను SVG ఇమేజీలను వ్యాఖ్యానించడం:

<!NOTATION type-image-svg SYSTEM "image/svg">

ఇది ఈ రకంతో కూడిన MIME రకం బాహ్య ఇమేజీలను ప్రకటిస్తుంది మరియు "type-image-svg" టిప్పణి పేరుకు దాన్ని ముడిపెడుతుంది. అయితే టిప్పణి పేర్లు సాధారణంగా ఒక నేమింగ్ కన్వెన్షన్‌ని అనుసరిస్తుంటాయి, ఇవి టిప్పణిను రూపొందిస్తున్న లేక ఉపయోగిస్తున్న అప్లికేషన్‌కు ప్రత్యేకించబడి ఉంటాయి: టిప్పణులు అదనపు మెటా-డేటాగా వ్యాఖ్యానించబడుతుంది, వీటి సమర్థ కంటెంట్ ఒక బాహ్య ఎంటిటీ మరియు XML లేదా SGML పదనిరూపణలచే వాడబడే కేటగిరీలను నమోదు చేసే PUBLIC FPI గా ఉంటుంది. దీని వ్యాఖ్యానం అప్లికేషన్ ఆధారంతో ఉంటుంది (ఇక్కడ MIME రకం, సాపేక్ష URIగా వ్యాఖ్యానించబడుతుంది కాని ఇది నిర్దిష్ట రెండరర్‌కి పరిపూర్ణ URIగా ఉంటుంది లేదా UUID వంటి OS ప్రత్యేక ఆబ్జెక్ట్ ఐడెంటిఫైయర్‌ను సూచించే URNగా ఉంటుంది.

ప్రకటించిన టిప్పణి పేరు అన్ని డాక్యుమెంట్ టైప్ డిక్లరేషన్లలోనూ అద్వితీయమైనదిగా ఉండాలి, ఉదాహరణకు బాహ్య ఉపసముదాయం మరియు అంతర్గత ఉపసముదాయం రెండింటిలోనూ కనీసం XML[5]తో అనుగుణంగా అయినా ఉండాలి[6].

టిప్పణులు SGML లేదా XML డాక్యుమెంట్ యొక్క ప్రధాన భాగంలో పొందుపర్చబడిన, పదనిరూపణ చేయని బాహ్య ఎంటిటీలతో సంబంధంలో ఉండవచ్చు. ఈ బాహ్య ఎంటిటీల యొక్క PUBLIC లేదా SYSTEM పరామితి, బాహ్య ఎంటిటీ పదనిరూపణ చేయబడని డేటా ఉన్నచోట FPI మరియు/లేదా URIని పేర్కొంటుంది మరియు ఈ నిర్వచించబడిన ఎంటిటీల అదనపు NDATA పరామితి అదనపు టిప్పణిని పేర్కొంటుంది (ఉదా.కు ఇక్కడ సమర్థవంతమైన MIME రకం). ఉదాహరణకు:

<!DOCTYPE sgml [
 <!ELEMENT sgml (img)*>
 
 <!ELEMENT img EMPTY>
 <!ATTLIST img
 data ENTITY #IMPLIED>
 
 <!ENTITY example1SVG SYSTEM "example1.svg" NDATA example1SVG-rdf>
 <!NOTATION example1SVG-rdf SYSTEM "example1.svg.rdf"> 
]>
<sgml>
 <img data="example1SVG" />
</sgml>

SGML డాక్యుమెంట్ ప్రధానభాగం లోపల, ఈ ప్రస్తావించబడిన బాహ్య ఎంటిటీలు ("&" మరియు ";" మధ్య పేర్కొనబడిన పేరు) సాధారణంగా పేరు పెట్టబడిన ఎంటిటీల వలే భర్తీ చేయబడవు (CDATA విలువతో నిర్వచించబడవు) అయితే విశిష్టమైన పదనిరూపణ చేయబడని టోకెన్లుగా వదిలివేయబడ్డాయి, ఇవి ఎలిమెంట్ లక్షణం యొక్క విలువలాగా (పైన చెప్పినట్లుగా) ఉపయోగించబడతాయి లేదా ఎలిమెంట్ విషయాల లోపల ఉపయోగించబడతాయి. DTD ఎలిమెంట్లలోని ప్రకటించబడిన కంటెంట్ రకంలోని లేదా ప్రకటించబడిన లక్షణాల రకంలోని అటువంటి బాహ్య ఎంటిటీలను అనుమతిస్తుందని (ఇక్కడ డేటా లక్షణం) కోసం ENTITY రకం) లేదా SGML పదనిరూపణ కంటెంట్‌ని ధృవీకరించలేదన్న ప్రాతిపదికమీద ఇది వర్తిస్తుంది.

టిప్పణులు ఎలిమెంట్లకు అదనపు మెటా-డేటాగా నేరుగా అనుసంధించబడవచ్చు, ఇతర బాహ్య ఎంటిటీకి వాటిని అనుసంధానించకుండా, వాటి పేర్లను కొన్ని అదనపు లక్షణాల యొక్క సంభావ్య విలువలుగా అందించడం ద్వారా ఇలా చేయవచ్చు (<!లోపలి DTDలో కూడా ప్రకటించబడిందిATTLIST ...> ఎలిమెంట్ యొక్క ప్రకటన). ఉదాహరణకు:

<!DOCTYPE sgml [
 <!ELEMENT sgml (img)*>
 
 <!ATTLIST sgml
 type NOTATION (
 type-vendor-specific ) #IMPLIED>
 
 <!ELEMENT img ANY> 
 
 <!ATTLIST img
 title CDATA #IMPLIED
 data ENTITY #IMPLIED
 type NOTATION (
 type-image-svg |
 type-image-gif ) #IMPLIED>
 
 
 <!NOTATION type-image-svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 
 <!NOTATION type-image-gif PUBLIC "image/gif">
 <!NOTATION type-vendor-specific PUBLIC "application/VND.specific+sgml"> 
 
 <!ENTITY example1SVGTitle "Title of example1.svg"> 
 <!ENTITY example1SVG SYSTEM "example1.svg"> 
 <!ENTITY example1GIFTitle "Title of example1.gif"> 
 <!ENTITY example1GIF SYSTEM "example1.gif" NDATA type-image-gif> 
]>
<sgml type="type-vendor-specific">
 
 <img title="&amp;example1SVGTitle;" type="type-image-svg">&amp;example1SVG;</img>
 
 
 <img title="&amp;example1SVGTitle;" data="example1SVG" />
 
 
 <img title="&amp;example1GIFTitle;" data="example1GIF" />
</sgml>

పై ఉదాహరణ, "type-image-svg" పేరిట ప్రామాణిక సార్వజనీన FPI ని నిర్దేశించు భావాన్ని చూపిస్తోంది. ఇంకా, మొదటి ఉదాహరణలో వలె, కేవలం సిస్టం ఐడెంటిఫైయర్/కంఫ్యూటర్ గుర్తింపు పరికరంగా నిర్దేశించడానికి బదులుగా SVG 1.1 అధికార పత్రం యొక్క కంప్యూటర్ గుర్తింపు పరికరాన్ని(ప్రామాణిక URI) చూపిస్తోంది. (అది URIకు సంబంధించినదై, స్థానికంగా ఒక MIME తరహాగా వ్యాఖ్యానించబడింది.) ఈ వ్యాఖ్య ప్రత్యక్షంగా “img” మూలాంశాన్ని ఆరోపించు “తరహా”కు, ఆ పదం యొక్క నిర్మాణాన్ని, విధులను వివరించని పరిధిలో నిర్దేశిస్తోంది. అయితే దాని విషయం తిరిగి పొందునది కాదు. అది విక్రయదారు–నిర్దిష్ట అనువర్తన కొరకు, అధికార పత్రంలోని మూలాంశపు “sgml” ను వ్యాఖ్యానించుటకు మరొక భావాన్ని ప్రకటిస్తోంది. రెండు, వ్యవహారాలలోనూ, ప్రకటించిన భావం యొక్క పేరు ప్రత్యక్షంగా ప్రకటించిన “తరహా” ఆరోపణలో ఉపయోగించుబడుతోంది. ఆరోపణలోని అంశం NOTATION తరహా ఆరోపణతో DTDలో నిర్దేశించబడుతుంది. (ఈ “తరహా” ఆరోపణ “sgml” అంశం కొరకు, అదే విధంగా “img” అంశం కొరకు ప్రకటించబడుతుంది.)

ఏమైనా, "img" మూలాంశపు “శీర్షిక” ఆరోపణ “ఉదాహరణ 1SVG శీర్షిక” అంతర్గత విషయాన్ని నిర్దేశిస్తోంది. దాని ప్రకటన ఒక వ్యాఖ్యను నిర్వచించలేదు. కాబట్టి అది చెల్లుబాటు కలిగించు అధికారిక పద విశ్లేషకుల చేత పదమూ దాని నిర్మాణమూ, విధులూ వివరింప బడతాయి మరియు విషయ బదలాయింపు పాఠ్యాంశం “ఉదాహరణ 1svg యొక్క శీర్షిక” అవుతుంది.

మరియు “img” మూలాంశపు విషయం, మరొక బాహ్యగత విషయాన్ని “ఉదాహరణ1SVG” నిర్దేశిస్తోంది. దాని ప్రకటన కూడా ఒక వ్యాఖ్యని నిర్వచించలేదు. కాబట్టి అది కూడా చెల్లుబాటు కలిగించు అధికారిక పద విశ్లేషకుల చేత, పదమును, దాని నిర్మాణమూ, విధులూ వివరింప బడతాయి. మరియు బదలాయింపు పాఠ్యాంశం, నిర్వచించబడిన సిస్టమ్ ఐడెంటిఫైయర్/ కంఫ్యూటర్ గుర్తించు పరికరం, “ఉదాహరణ 1.svg” (సంబంధిత URI గా కూడా వ్యాఖ్యానించబడుతుంది.) చేత గుర్తింపబడుతుంది. "img" మూలాంశపు ప్రభావపూరిత విషయం, ఈ రెండవ బాహ్యగత వనరు యొక్క విషయం అవుతుంది. GIF ప్రతిబింబంతో వ్యత్యాసం ఏమిటంటే - DTD లోని ప్రకటనల ప్రకారం, SVG ప్రతిబింబం SGML అధికార పత్రపు పరిధిలో వివరించబడగా, GIF ప్రతిబింబం కేవలం అపారదర్శక బాహ్యగత వస్తువుగా (SGML తో వివరించబడనిది) దాని యొక్క “డాటా” ద్వారా ఆరోపించబడిన వస్తువుగా (దాని తరహా విలువ ఒక అపారదర్శక విషయమై/ENTITY అయి ఉంటుంది.) నిర్దేశింపబడుతుంది.

ఒకే ఒక భావం పేరు ENTITY/విషయ ఆరోపణా విలువలో నిర్దేశింపబడవచ్చు. (SGML, XML 1.0 లేదా XML 1.1 లలో బహు భావాల పేర్లకు అదే బాహ్యగత ENTITY/విషయం ప్రకటనలో మద్దతు లేదు, కాబట్టి విభిన్న ఆరోపణలు అవసరమై ఉన్నాయి.) ఏమైనా బహు బాహ్యగత విషయాలు (ప్రాదేశిక–విభిన్న పేర్ల జాబితాలో) తరహా ENTITIES/విషయాల ఆరోపణా ప్రకటనలలో నిర్దేశింపబడవచ్చు, మరియు ప్రతీ బాహ్యగత విషయపు పేరు, దాని స్వంత భావంతోనే ప్రకటింపబడవచ్చు కూడా.

XML మరియు SGML పద విశ్లేషకులకు భావాలు కూడా సంపూర్తిగా అపారదర్శకం. కాబట్టి అవి నిర్దేశితమైన వాటి బాహ్యగత విషయపు తరహా వలన విభేదించలేనివి. (ఈ పద విశ్లేషకులకు, అవి కేవలం సార్వజనీన గుర్తింపుపరికరానికి (ఒక FPI) మరియు/లేదా కంఫ్యూటర్ గుర్తింపు పరికరానికి (ఒక URI) ముడిపడిన ఒక ప్రత్యేక పేరు కలిగి ఉన్నవి.)

కొన్ని అనువర్తనలు (స్వయంగా XML లేదా SGML పద విశ్లేషకులు కానట్టి) కూడా, పరోక్షంగా నిర్దేశిత భావనలని, "URN:పేరు ప్రామాణిక CDATA ఆరోపణ యొక్క విలువలో చేర్చటం ద్వారా వాటిని అనుమతిస్తాయి, ప్రతీ చోటా ఒక URI నిర్దేశింపబడుతుంది. ఏమైనా ఈ ప్రవర్తన నిర్దేశిత అనువర్తన. మరియు ఈ అనువర్తన, వెల్లడైన ప్రామాణిక SGML లేదా XML పద విశ్లేషకులు వివరించగలిగిన భావాలుగా, విభజించబడిన URNలతో కూడిన ఒక జాబితాను నిర్వహిస్తుంది. ఈ వాడకం, బాహ్యగత విషయంగా DTDలో మాత్రమే నిల్వ చేయగల భావాలను అనుమతిస్తుంది. మరియు అధికార పత్రంలోని బాహ్యగత ఉపాంశాలుగా మాత్రమే నిర్దేశిస్తుంది. మరియు చెల్లుబాటు చేయగల XML లేదా SGML పద విశ్లేషకులు భావాల ప్రత్యక్ష మద్దతులేని సంగతంగా ఈ అధికార పత్రాలు నిలిచేందుకు అనుమతిస్తుంది.

సంజ్ఞీకరణలు HTMLలో లేదా XHTML మరియు SVG కోసం ప్రాథమిక ప్రొఫైల్స్‌లో ఉపయోగించబడవు, ఎందుకంటే:

  • ఈ ప్రామాణిక డాక్యుమెంట్ రకాలచేత ఉపయోగించబడిన బాహ్య ఎంటిటీలు ప్రామాణిక DTDలోని CDATA రకంతో ప్రకటించబడిన సాధారణ లక్షణాల ద్వారా ప్రస్తావించబడతాయి ( యాంకర్ "ఎ" ఎలిమెంట్ యొక్క "href" లక్షణం వలే, లేదా ఒక ఇమేజ్ యొక్క "img" ఎలిమెంట్ యొక్క "src" లక్షణం ద్వారా ప్రకటించబడతాయి, వీటి విలువలు పబ్లిక్ ఐడెంఠిఫైయ్యర్‌ల కేటలాగ్ ఏదీ అవసరం లేకుండానే URIలా వ్యాఖ్యానించబడతాయి, ఉదాహరణకు FPIగా తెలిసినవి);
  • అదనపు మెటా డేటా కోసం అన్ని బాహ్య ఎంటిటీలు ప్రస్తావించబడినవి:
    • అదనపు లక్షణాల ద్వారా కాని (బాహ్య ఎంటిటీ యొక్క MIME రకాన్ని సూచిస్తున్న "రకం" లక్షణం వంటిది లేదా దాని సంకేతీకరణను సూచించే "ఛార్‌సెట్" లక్షణం వంటింది),
    • లేదా వాటి స్వంత లక్షణాల లోపలి (HTML మరియు XHTML లోని "లింక్" లేదా "మెటా" వంటివి) అదనపు ఎలిమెంట్ల ద్వారా,
    • లేదా XML మరియు XHTMLలోని ప్రామాణిక సూడో-ఆట్రిబ్యూట్స్ (నేమ్‌స్పేస్ ప్రకటనల కోసం "xml:lang", లేదా "xmlns" మరియు "xmlns:*" వంటివి).

SGML లేదా XML 1.0 లేదా XML 1.1లను ధృవీకరించడంలో కూడా, ప్రకటిత సంజ్ఞీకరణలలోని FPI మరియు/లేదా URI ద్వారా ప్రస్తావించబడే బాహ్య ప్రస్తావనలు ప్రోగ్రాముల ద్వరా తమకు తాముగా తిరిగి పొందబడవు. బదులుగా, ఈ ప్రోగ్రాములు అప్లికేషన్‌కు SGML లేదా XML డాక్యుమెంట్‌లో కనుగొనబడిన సంజ్ఞీకరణలతో ముడిపడి ఉన్న ప్రోగ్రామ్ చేయబడిన FPI మరియు/లేదా URI ప్రోగ్రామ్‌ని మాత్రమే అందిస్తాయి మరియు DTDలో ప్రకటించిన పేర్ల సంజ్ఞీకరణలన్నింటినీ కలిగి ఉండే నిఘంటువు కోసం సౌకర్యంతో కూడి ఉంటాయి. ఈ ధృవీకరించబడిన ప్రోగ్రాములు కూడా సంజ్ఞీకరణ పేరు ప్రకటనల విశిష్టతను తనిఖీ చేస్తాయి మరియు కొన్ని సంజ్ఞీకరణ పేర్లు DTDలో కాని, ప్రకటించబడని డాక్యుమెంట్ బాడీలో కాని ఉపయోగించబడినట్లయితే ధృవీకరణ దోషాన్ని నివేదిస్తాయి.

  • అప్లికేషన్ ఏదైనా సంజ్ఞీకరణను ఉపయోగించనట్లయితే, (లేదా వాటి FPI మరియు/లేదా URI అపరిచితమైనట్లయితే లేదా వాటి స్థానిక కేటలాగ్‌లో మద్దతు లేనివయినట్లయితే) ఈ సంజ్ఞీకరణలు అప్లికేషన్‌చే నిశ్శబ్దంగా విస్మరించబడతాయి లేదా అప్లికేషన్ ఒక లోపాన్ని చూపిస్తుంది;
  • లేకుంటే ఈ అప్లికేషన్లు వాటిని ఎలా వ్యాఖ్యానించాలో తమకు తాముగా నిర్ణయించుకుంటాయి. అప్పుడు బాహ్య ఎంటిటీలు తప్పక తిరిగి పొందబడాలి తర్వాత విడిగా ప్రోగ్రామ్ చేయబడతాయి;
  • అలాంటి జోక్యం, తిరిగి పొందడం లేదా ప్రత్యేక ప్రోగ్రామింగ్ శాశ్వతంగా విఫలమైనట్లయితే అప్లికేషన్లు లోపాన్ని చూపిస్తాయి.
  • అప్లికేషన్ లోపాన్ని సూచించడానికి కారణమవుతున్న గుర్తించబడని సంజ్ఞీకరణలు వాటిని ఉపయోగిస్తున్న ధృవీకరిస్తున్న డాక్యుమెంట్ వ్యాఖ్యానాన్ని నిరోధించకూడదు.

XML DTDలు మరియు ప్రణాళిక ధృవీకరణ[మార్చు]

XML DTD వాక్యనిర్మాణం అనేది పలు XML ప్రణాళిక భాషలలో ఒకటి. అయితే వీటిలో చాలా వరకు XML DTD స్థానాన్ని భర్తీ చేయలేవు. పైగా, DTD-లేని XMLలో ప్రత్యక్ష సరి సమాన రూపాలు లేని ఎంటిటీలు మరియు టిప్పణులను నిర్వచించడానికి XML DTD అనుమతిస్తుంది (ఎందుకంటే, అంతర్గత ఎంటిటీలు మరియు పదనిరూపణ చేయదగిన బాహ్య ఎంటిటీలు XML వ్యూహ భాషలలో భాగం కావు, అందుచేత ఇతర పదనిరూపణ చేయబడని బాహ్య ఎంటిటీలు మరియు టిప్పణులు అనేక XML వ్యూహ భాషలలో సాధారణ సరిసమాన మ్యాపింగ్‌లను కలిగి లేవు).

XML వ్యూహ భాషలలో చాలావరకు ఎలిమెంట్ ప్రకటనలు మరియు లక్షణ జాబితా ప్రకటనలకు భర్తీ రూపాలు మాత్రమే. ఈ విధంగా, ధృవీకరణేతర XML పదనిరూపణలతో XML డాక్యుమెంట్లను పదనిరూపణ చేయడం సాధ్యమవుతోంది (బాహ్య DTD ఉప సముదాయం లక్ష్యం వ్యూహాన్ని నిర్వచించడం అయినప్పుడు మాత్రమే ఇది వర్తిస్తుంది). అదనంగా, ఈ XML వ్యూహ భాషలకోసం డాక్యుమెంట్లను విడిగా పదనిరూపణ చేయవలసి ఉంది, కాబట్టి స్వతంత్ర రీతిలో XML డాక్యుమెంట్లను ధృవీకరించడం ఈ భాషలతో నిజంగానే సాధ్యపడదు: పదనిరూపణ చేయబడిన XML డాక్యుమెంట్‌లో ఉపయోగించబడిన వ్యూహాన్ని కనీసం గుర్తించాలన్నా మరియు మరొక భాషలో దాన్ని ధృవీకరించాలన్నా (XML కేటలాగ్‌తో) డాక్యుమెంట్ టైప్ డిక్లరేషన్ ఇప్పటికీ అవసరమవుతుంది.

ధృవీకరణేతర XML పదనిరూపణలు డాక్యుమెంట్ టైప్ ప్రకటనలను చదవలేవనే సాధారణ అనవగాహన వాడుకలో ఉంది, నిజానికి, డాక్యుమెంట్ టైప్ ప్రకటనలు సరైన వాక్యనిర్మాణం కోసం మరియు ప్రకటనల ధృవీకరణల కోసం తప్పకుండా స్కాన్ చేయబడి ఉండాలి మరియు అంతర్గత ఉప సముదాయం లోని అన్ని ఎంటిటీలను ఇప్పటికీ పదనిరూపణ చేయాలి మరియు డాక్యుమెంట్ టైప్ ప్రకటనలో లేదా డాక్యుమెంట్ ప్రధానభాగంలో ఎక్కడైనా సరే ఏర్పడుతున్న అంతర్గత ఎంటిటీల పాఠాల భర్తీని ప్రత్యామ్నాయంగా చేపట్టవలసి ఉంటుంది.

ధృవీకరణేతర పదనిరూపణ, ఏమైనప్పటికీ పదనిరూపణ ( బాహ్య ఉపసముదాయంతో సహా ), బాహ్య ఎంటిటీలను చదవకూడదనే అంశాన్ని ఎంచుకోవచ్చు మరియు ఎలిమెంట్ ప్రకటలలో, లక్షణ జాబితా ప్రకటనలలో నిర్వచించబడిన కంటెంట్ నమూనా పరిమితులను గౌరవించకూడదనే అంశాన్ని ఎంచుకోవచ్చు.

XML డాక్యుమెంట్ పదనిరూపణ బాహ్య ఎంటిటీలపై ఆధారపడినట్లయితే (పేర్కొనబడిన బాహ్య ఉపసముదాయంతో సహా , లేదా బాహ్య ఉప సముదాయం ) లో ప్రకటించబడిన పదనిరూపణ బాహ్య ఎంటిటీలపై ఆధారపడినట్లయితే అది తన XML ప్రకటనలో స్వతంత్ర సంఖ్య="no"ను నొక్కి చెప్పుకోవలసి ఉంది. ధృవీకరించబడుతున్న DTD గుర్తింపు అనేది దాని నిర్దిష్ట బాహ్య ఉపసముదాయాన్ని తిరిగిపొందడానికి గాను XML కేటలాగ్‌ల ఉపయోగం ద్వారా నిర్వహించబడుతుంది.

కింది ఉదాహరణలో, XML డాక్యుమెంట్ స్వతంత్ర="సంఖ్య"తో ప్రకటించబడుతుంది, ఎందుకంటే దాని డాక్యుమెంట్ టైప్ డిక్లరేషన్‌‍లో అది ఒక బాహ్య ఉపసముదాయాన్ని కలిగి ఉంది:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE people_list SYSTEM "example.dtd">
<people_list />

XML డాక్యుమెంట్ టైప్ ప్రకటన బాహ్య ఉప సముదాయం కోసం ఏదైనా SYSTEM ఐడెంటిఫైయర్‌‌ని కలిగి ఉన్నట్లయితే, ఇది స్వతంత్ర వస్తువులా సురక్షితంగా ప్రాసెస్ చేయబడలేదు: URI తిరిగి పొందబడాలి, లేకుంటే అపరిచిత పేరు పెట్టబడని అక్షర ఎంటిటీలు ఉండవచ్చు, అంతర్గత ఉపసముదాయం లోని ప్రభావ శీల XML వాక్యనిర్మాణాన్ని లేదా డాక్యుమెంట్ బాడీలోని వాక్యనిర్మాణాన్ని సరిగా పదనిరూపణ చేయవలసిన అవసరముంది. (XML వాక్యనిర్మాణ పదనిరూపణ సాధారణంగా అన్ని పేరున్న ఎంటిటీల ప్రత్యామ్నాయం తర్వాత సాధారణంగా నిర్వహించబడుతుంది, XMLలోని పూర్వ నిర్చచితమైన అయిదు ఎంటిటీలను మినహాయించాలి మరియు XML డాక్యుమెంట్‌ని స్ధానిక టోకెన్స్‌గా పదనిరూపణ చేసిన తర్వాత విధిపూర్వకంగా ప్రత్యామ్నాయంగా చేయబడతాయి. ఇది ఏదైనా PUBLIC ఐడెంటిఫైయర్‌తో మాత్రమే కూడుకున్నట్లయితే, అది స్వతంత్రమైనట్టిదిగా ప్రాసెస్ చేయబడవచ్చు , XML ప్రాసెసర్ తన స్థానిక కేటలాగ్‌లోని PUBLIC ఐడెంటిఫైయర్‌ని గురించి తెలుసుకుని ఉన్నట్లయితే, అది అక్కడనుంచి ఒక సహసంబంధంలోని DTDగా తిరిగి పొందబడుతుంది.

XML DTD వ్యూహ ఉదాహరణ[మార్చు]

వ్యక్తులతో కూడుకున్న జాబితా వ్యూహాన్ని వర్ణించడానికి అతి సాధారణమైన బాహ్య XML DTD యొక్క ఉదాహరణ:

<!ELEMENT people_list (person)*>
<!ELEMENT person (name, birthdate?, gender?, socialsecuritynumber?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT birthdate (#PCDATA)>
<!ELEMENT gender (#PCDATA)>
<!ELEMENT socialsecuritynumber (#PCDATA)>

దీన్ని పంక్తులవారీగా తీసుకోవాలి:

  1. people_list ఒక చెల్లే ఎలిమెంట్ పేరు, అలాంటి ఎలిమెంట్ యొక్క ఉదాహరణ ఏ వ్యక్తి ఎలిమెంట్‌లకు సంబంధించిన ఏ సంఖ్యనైనా కలిగి ఉంటుంది. people_list ఎలిమెంట్‌ లోపల 0 లేదా ఎక్కువ వ్యక్తి ఎలిమెంట్‌లు ఉండగలవని * సూచిస్తుంది.
  2. వ్యక్తి ఒక చెల్లే ఎలిమెంట్ పేరు మరియు అటువంటి ఎలిమెట్ యొక్క ఉదాహరణ పేరు పేరు కలిగిన ఒక ఎలిమెంట్‌ను కలిగి ఉంటుంది, తర్వాత ఒక పుట్టినతేదీ (ఐచ్ఛికం) పేరును తర్వాత లింగాన్ని (ఇదీ ఐచ్ఛికమే) మరియు సామాజిక భద్రతా సంఖ్య (ఇదీ ఐచ్ఛికమే)ను కలిగి ఉంటుంది. ది ? ఒక ఎలిమెంట్ ఐచ్ఛికమే అని సూచిస్తుంది. పేరు ఎలిమెంట్ పేరు ప్రస్తావన ? కలిగి ఉండదు కాబట్టి వ్యక్తి ఎలిమెంట్ తప్పనిసరిగా ఒక పేరు ఎలిమెంట్‌ని కలిగి ఉంటుంది.
  3. పేరు ఒక చెల్లే ఎలిమెంట్ పేరు మరియు "శబ్దలక్షణాన్వయాలు కలిగిన అక్షర డేటా"ను కలిగినటువంటి ఎలిమెంటుకు ఇది ఒక ఉదాహరణగా ఉంటుంది (#PCDATA).
  4. పుట్టిన తేదీ ఒక చెల్లే ఎలిమెంట్ పేరు మరియు శబ్దలక్షణాన్వయాలు కలిగిన అక్షర డేటాను కలిగినటువంటి ఎలిమెంటుకు ఇది ఒక ఉదాహరణగా ఉంటుంది.
  5. లింగం ఒక చెల్లే ఎలిమెంట్ పేరు మరియు శబ్దలక్షణాన్వయాలు కలిగిన అక్షర డేటాను కలిగినటువంటి ఎలిమెంటుకు ఇది ఒక ఉదాహరణగా ఉంటుంది.
  6. సామాజికభద్రతాసంఖ్య ఒక చెల్లే ఎలిమెంట్ పేరు మరియు శబ్దలక్షణాన్వయాలు కలిగిన అక్షర డేటాను కలిగినటువంటి ఎలిమెంటుకు ఇది ఒక ఉదాహరణగా ఉంటుంది.

ఈ DTDని ఉపయోగించి, నిర్ధారించే XML ఫైల్‌కి ఉదాహరణ కింది విధంగా ఉంటుంది. DTD ఇక్కడ SYSTEM స్పెసిఫైయర్‌ మరియు URI ద్వారా ఒక బాహ్య సబ్‌సెట్‌ని ప్రస్తావిస్తుంది. మనం సాపేక్షిక URI ప్రస్తావనతో "example.dtd" తో కూడిన DTDని మనం గుర్తించగలమని ఇది హామీ ఇస్తుంది; "people_list" తర్వాత "!DOCTYPE" రూట్ టాగ్‌లు, లేదా DTDలో నిర్వచించబడిన తొలి ఎలిమెంట్‌ని "people_list" అని పిలుస్తారు:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE people_list SYSTEM "example.dtd">
<people_list>
 <person>
 <name>Fred Bloggs</name>
 <birthdate>2008-11-27</birthdate>
 <gender>Male</gender>
 </person>
</people_list>

డాక్యుమెంట్ టైప్ డిక్లరేషన్‌లోని [కుండలీకరణాల] లోపల ఉండటం ద్వారా, ఈ DTDనే XML డాక్యుమెంట్‌లో నేరుగా ఒక అంతర్గత సబ్‌సెట్‌గా ఎంబెడ్ చేయబడుతుంది, ఇలాంటి సందర్భంలో డాక్యుమెంట్ ఇకపై ఇతర బాహ్య అంశాలపై ఆధారపడి ఉండదు మరియు దీనివలే స్వతంత్రంగా ప్రాసెస్ చేయబడింది:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE people_list [
 <!ELEMENT people_list (person)*>
 <!ELEMENT person (name, birthdate?, gender?, socialsecuritynumber?)>
 <!ELEMENT name (#PCDATA)>
 <!ELEMENT birthdate  (#PCDATA)>
 <!ELEMENT gender (#PCDATA)>
 <!ELEMENT socialsecuritynumber (#PCDATA)>
]>
<people_list>
 <person>
 <name>Fred Bloggs</name>
 <birthdate>2008-11-27</birthdate>
 <gender>Male</gender>
 </person>
</people_list>

పైన పేర్కొన్న DTD భాగాన్ని example.dtd అనే పేరు గల టెక్స్ట్‌ ఫైల్‌కి మరియు XML ఫైల్‌ని విభిన్నమైన పేరు కలిగిన టెక్స్ట్ ఫైలుకిజతపర్చి భద్రపర్చడం ద్వారా దీన్ని ఎవరైనా ఒక XML-ఆధారిత ( ఇంటర్నెట్ ఎక్స్‌ప్లోరర్ లేదా మొజిల్లా ఫైర్‍‌ఫాక్స్వంటి) బ్రౌజర్‌లో చూపిస్తారు మరియు XML ఫైల్‌ని బ్రౌజర్‌తో తెరుస్తారు. రెండు ఫైళ్లను అదే డైరెక్టరీలో భద్రపర్చాలి. ఏదేమైనా, XML డాక్యుమెంట్ DTDలోని నిబంధనలను నిర్ధారిస్తుందని చాలా బ్రౌజర్లు పరిశీలించవు, DTD వాక్యనిర్మాణ నిబంధనల పరంగా సరిగా ఉందో లేదో తనిఖీ చేయడానికి మాత్రమే వీటిని కోరడం జరుగుతుంటుంది. భద్రతా కారణాల వల్ల, ఇవి బాహ్య DTDని రీడ్ చేయకుండా ఉండటానికి కూడా వీటిని ఎంచుకుంటారు.

DTDలకు (వ్యూహాలను నిర్దేశించడానికి) పత్యామ్నాయాలు అందుబాటులో ఉంటున్నాయి:

  • XML వ్యూహ నిర్వచనం (XSD)గా కూడా ప్రస్తావించబడే XML వ్యూహం, W3C లోపల సిఫారసు స్థితిని సాధించింది మరియు ఇది "డేటా ఓరియంటెండ్‌" (ట్రాన్సాక్షనల్ నాన్ పబ్లిషింగ్) XMLకి ఇది పేరుగాంచింది, ఎందుకంటే ఇది బలమైన టైపింగ్ మరియు జావా డిక్లరేషన్స్‌కి సులభమైన రౌండ్ టిప్పింగ్‌ని కలిగి ఉంటుంది. XSD యొక్క జతపర్చిన సంక్లిష్టత వీటికి ఎలాంటి నిర్దిష్ట ప్రయోజనాలను తీసుకురావడం లేదని పబ్లిషింగ్ ప్రపంచం చాలా వరకు గుర్తించింది, కాబట్టి DTDలు ఇప్పటికీ ఇక్కడ ప్రాచుర్యంలో ఉంటున్నాయి. XML వ్యూహ నిర్వచనం తనకు తానుగా XML డాక్యుమెంట్‌గా ఉంటుంది కాగా DTD అలా ఉండదు.
  • DSDLలో కూడా భాగమైన RELAX NG ఒక ISO అంతర్జాతీయ ప్రమాణం. సాధారణ వ్యాక్య నిర్మాణాన్ని అందించినప్పుడు ఇది XSD కంటే మరింత వ్యక్తీకరణ సామర్థ్యంతో ఉంటుంది కాని వాణిజ్యపరమైన సాఫ్ట్‌వేర్ మద్దతు నెమ్మదిగా ఉంటుంది.

వీటిని కూడా పరిశీలించండి[మార్చు]

  • డాక్యుమెంట్ టైప్ డిక్లరేషన్
  • ప్రధానమైన వెబ్
  • XML వ్యూహ భాషా పోలిక - ఇతర XML వ్యూహ భాషలతో పోలిక.

సూచనలు[మార్చు]

  1. "doctypedecl". Extensible Markup Language (XML) 1.1. W3C. 
  2. సామ్స్ మీకు XMLని 10 నిమిషాలలో నేర్పుతారు వాన్ ఆండ్ర్యూ హెచ్.వాట్
  3. http://www.stylusstudio.com/w3c/xml11/attdecls.htm#attdecls
  4. http://www.w3schools.com/dtd/dtd_entities.asp
  5. టిప్పణి ప్రకటనలు , ఎక్స్‌టెన్సిబుల్ మార్కప్ లాంగ్వేజ్ (XML) 1.0, W3C యొక్క ప్రత్యేక లక్షణాలు.
  6. టిప్పణి ప్రకటనలు , ఎక్స్‌టెన్సిబుల్ మార్కప్ లాంగ్వేజ్ (XML) 1.1, W3C యొక్క ప్రత్యేక లక్షణాలు.

బాహ్య లింకులు[మార్చు]