XML दस्तावेज़ों में भागने के लिए मुझे किन पात्रों की आवश्यकता है?




escaping character (7)

आमतौर पर ज्ञात पांच वर्णों के अलावा [<,>, &, ", '] मैं लंबवत टैब वर्ण (0x0B) से भी बचूंगा। यह वैध यूटीएफ -8 है, लेकिन मान्य XML 1.0 नहीं है, और यहां तक ​​कि कई पुस्तकालय भी शामिल हैं libxml2) इसे याद करें और चुपचाप अमान्य एक्सएमएल आउटपुट।

एक्सएमएल दस्तावेजों में कौन से पात्र बच निकले होंगे, या मुझे ऐसी सूची कहां मिल सकती है?


इन्हें बचने की जरूरत है:

"   &quot;
'   &apos;
<   &lt;
>   &gt;
&   &amp;

टैग और विशेषताओं के लिए अक्षर से बचना अलग है।

टैग के लिए:

 < &lt;
 > &gt; (only for compatibility, read below)
 & &amp;

विशेषताओं के लिए:

" &quot;
' &apos;

http://www.w3.org/TR/2008/REC-xml-20081126/#syntax

एम्पर्सेंड कैरेक्टर (&) और बाएं कोण ब्रैकेट (<) को अपने शाब्दिक रूप में प्रकट नहीं होना चाहिए, सिवाय इसके कि जब मार्कअप डिलीमीटर के रूप में उपयोग किया जाता है, या किसी टिप्पणी के भीतर, एक प्रोसेसिंग निर्देश या सीडीएटीए अनुभाग। यदि उन्हें कहीं और की आवश्यकता है, तो उन्हें क्रमशः संख्यात्मक चरित्र संदर्भ या स्ट्रिंग "& amp;" और "& lt;" का उपयोग करके बच जाना चाहिए। दायां कोण ब्रैकेट (>) स्ट्रिंग "& gt;" का उपयोग करके प्रदर्शित किया जा सकता है, और संगतता के लिए, "& gt;" या स्ट्रिंग में दिखाई देने पर एक चरित्र संदर्भ "]>> सामग्री में, जब वह स्ट्रिंग एक सीडीएटीए अनुभाग के अंत को चिह्नित नहीं कर रही है।

विशेषता मानों को सिंगल और डबल कोट्स दोनों को रखने की अनुमति देने के लिए, एस्ट्रोफ़े या एकल-कोट वर्ण (') को "& apos;" के रूप में दर्शाया जा सकता है, और डबल-कोट वर्ण (")" & quot; "।


यदि आप उचित कक्षा या पुस्तकालय का उपयोग करते हैं, तो वे आपके लिए भागने के लिए करेंगे। कई एक्सएमएल मुद्दे स्ट्रिंग concatenation के कारण होते हैं।

एक्सएमएल भागने के पात्र

केवल पांच हैं:

"   &quot;
'   &apos;
<   &lt;
>   &gt;
&   &amp;

वर्णों से बचने पर निर्भर करता है कि विशेष चरित्र का उपयोग कहाँ किया जाता है।

उदाहरण डब्ल्यू 3 सी मार्कअप सत्यापन सेवा पर मान्य किए जा सकते हैं।

टेक्स्ट

सुरक्षित तरीका टेक्स्ट में सभी पांच अक्षरों से बचने के लिए है, हालांकि, तीन वर्ण " , ' और > को पाठ में भागने की आवश्यकता नहीं है:

<?xml version="1.0"?>
<valid>"'></valid>

गुण

सुरक्षित तरीका सभी गुणों में पांच वर्णों से बचने के लिए है, हालांकि, चरित्र को विशेषताओं में से बचने की आवश्यकता नहीं है:

<?xml version="1.0"?>
<valid attribute=">"/>

यदि उद्धरण हैं तो चरित्र को गुणों में भागने की आवश्यकता नहीं है " :

<?xml version="1.0"?>
<valid attribute="'"/>

इसी प्रकार, " उद्धरण हैं तो " गुणों में भागने की आवश्यकता नहीं है:

<?xml version="1.0"?>
<valid attribute='"'/>

टिप्पणियाँ

टिप्पणियों में सभी 5 विशेष पात्रों से बच नहीं जाना चाहिए :

<?xml version="1.0"?>
<valid>
<!-- "'<>& -->
</valid>

CDATA

CDATA अनुभागों में सभी 5 विशेष पात्रों से बच नहीं जाना चाहिए :

<?xml version="1.0"?>
<valid>
<![CDATA["'<>&]]>
</valid>

प्रसंस्करण निर्देश

एक्सएमएल प्रसंस्करण निर्देशों में सभी 5 विशेष पात्रों से बच नहीं जाना चाहिए :

<?xml version="1.0"?>
<?process <"'&> ?>
<valid/>

एक्सएमएल बनाम एचटीएमएल

एचटीएमएल के पास अपने बचने वाले कोड हैं जो बहुत अधिक पात्रों को कवर करते हैं।


वर्ल्ड वाइड वेब कंसोर्टियम (डब्ल्यू 3 सी) के विनिर्देशों के मुताबिक, ऐसे 5 वर्ण हैं जो एक्सएमएल दस्तावेज़ में उनके शाब्दिक रूप में प्रकट नहीं होना चाहिए , सिवाय इसके कि जब मार्कअप डिलीमीटर या टिप्पणी के भीतर उपयोग किया जाता है, एक प्रसंस्करण निर्देश, या सीडीएटीए अनुभाग । अन्य सभी मामलों में, इन वर्णों को या तो निम्न तालिका के अनुसार संबंधित इकाई या संख्यात्मक संदर्भ का उपयोग करके प्रतिस्थापित किया जाना चाहिए:

मूल चरित्र एक्सएमएल इकाई प्रतिस्थापन एक्सएमएल संख्यात्मक प्रतिस्थापन
< & lt; & # 60;
> & gt; & # 62;
" & quot; & # 34;
& amp; amp; & # 38;
' और apos; & # 39;

ध्यान दें कि पूर्ववर्ती संस्थाओं का उपयोग एचटीएमएल में भी किया जा सकता है, अपवाद के साथ ; , जिसे एक्सएचटीएमएल 1.0 के साथ पेश किया गया था और इसे HTML 4 में घोषित नहीं किया गया है। इस कारण से, और रेट्रो-संगतता सुनिश्चित करने के लिए, एक्सएचटीएमएल विनिर्देश के उपयोग की सिफारिश की जाती है & # 39; बजाय।


शायद यह मदद करेगा:

एक्सएमएल और एचटीएमएल चरित्र इकाई संदर्भों की सूची :

एसजीएमएल, एचटीएमएल और एक्सएमएल दस्तावेज़ों में, वर्ण डेटा और विशेषता मानों के रूप में जाना जाने वाला तार्किक संरचना वर्णों के अनुक्रमों से मिलती है, जिसमें प्रत्येक वर्ण सीधे प्रकट हो सकता है (स्वयं का प्रतिनिधित्व करता है), या चरित्र संदर्भ नामक वर्णों की एक श्रृंखला द्वारा प्रदर्शित किया जा सकता है, जिनमें से दो प्रकार हैं: एक संख्यात्मक चरित्र संदर्भ और एक चरित्र इकाई संदर्भ। यह आलेख वर्ण इकाई संदर्भों को सूचीबद्ध करता है जो HTML और XML दस्तावेज़ों में मान्य हैं।

उस आलेख में निम्नलिखित पांच पूर्वनिर्धारित XML इकाइयां सूचीबद्ध हैं:

quot  "
amp   &
apos  '
lt    <
gt    >

पुराने, सामान्य रूप से पूछे जाने वाले प्रश्न के लिए नया, सरलीकृत उत्तर ...

सरलीकृत एक्सएमएल एस्केपिंग

  1. हमेशा (याद रखने के लिए 9 0% महत्वपूर्ण)

    • < &lt; जब तक < <tag/> शुरू नहीं हो रहा है।
    • भागो & रूप में &amp; जब तक एक &entity; शुरू नहीं हो रही है &entity;
  2. विशेषता मान (याद रखने के लिए 9% महत्वपूर्ण)

    • attr=" सिंगल कोट्स ' डबल कोट्स के भीतर ठीक है। "
    • attr=' " डबल उद्धरण " एकल उद्धरण के भीतर ठीक है। '
    • " &apos; &quot; और ' as &apos; अन्यथा से &apos;
  3. Comments , CDATA , और प्रसंस्करण निर्देश (याद रखने के लिए 1% महत्वपूर्ण)

    • <!-- Comments भीतर --> कुछ भी बचाना नहीं है, लेकिन तारों की अनुमति नहीं है।
    • <![CDATA[ भीतर ]]> कुछ भी CDATA नहीं है, लेकिन नहीं ]]> तारों की अनुमति है।
    • <?PITarget भीतर <?PITarget ?> कुछ भी <?PITarget नहीं है, लेकिन नहीं ?> तारों की अनुमति है।




character