एक xml टिप्पणी में दो हाइफ़न क्यों नहीं हो सकते


16

मैं एक कॉन्फ़िगर फ़ाइल के xml टिप्पणियों में मार्कडाउन टिप्पणियां लागू कर रहा था जब XmlParser ने रिपोर्ट दी कि --xml टिप्पणियों में दो हाइफ़न ( ) की अनुमति नहीं है।

XML विनिर्देशन की जाँच करने पर , ऐसा प्रतीत होता है कि xml टिप्पणी में SGML पार्सर्स के साथ संगतता कारणों के लिए दो हाइफ़न शामिल नहीं हैं।

एसजीएमएल पार्सर टिप्पणियों में डबल हाइफ़न को क्यों अस्वीकार करते हैं?


2
मुझे नहीं लगता कि आपको "क्योंकि मानक कहता है" से बेहतर उत्तर मिलेगा
jk।

ठीक है, यह एकमात्र उत्तर है, फिर मेरे पास कोई विकल्प नहीं है :-(, हालांकि इससे बेहतर उत्तर हो सकता है।
OnesimusUnbound

जवाबों:


30

यह पृष्ठ HTML / SGML इतिहास और उन दो लगातार हाइफ़न (डबल डैश) के बल्कि नियमबद्ध नियमों की काफी रूपरेखा देता है।

SGML के बारे में प्रासंगिक हिस्सा:

इसे सीधे शब्दों में कहें, तो टिप्पणी के शुरू और अंत में डबल डैश टिप्पणी शुरू और अंत नहीं करता है। डबल डैश में उस बदलाव को इंगित किया गया है जिसमें टिप्पणी को शामिल करने की अनुमति है। पहला - टिप्पणी शुरू करता है, और उस ब्राउज़र को बताता है कि टिप्पणी को टिप्पणी समाप्त किए बिना> वर्णों को शामिल करने की अनुमति है। दूसरा - टिप्पणी समाप्त नहीं करता है। यह ब्राउज़र को बताता है कि अगर यह एक> चरित्र का सामना करता है, तो उसे टिप्पणी को समाप्त करना होगा। यदि कोई अन्य - जोड़ा जाता है, तो यह> वर्णों को अनुमति देने के लिए वापस जाता है।


7
जिस अनुभाग का आप उल्लेख कर रहे हैं । जब मैंने पढ़ा कि --टिप्पणी के भीतर SGML का इरादा क्या है , तो मेरा सिर उस जटिलता के चारों ओर घूमता है जो बाद में इसका परिचय देगा।
ओनेसिमुसनबाउंड

1
--एक टिप्पणी के अंदर कभी उपयोग नहीं करने की सलाह मुझे अच्छी लगती है। लेकिन, क्या इससे बचने का कोई मानक तरीका है? मान लीजिए कि मैं यह सुनिश्चित करने के लिए एक आउटपुट फ़िल्टर बनाना (और साझा करना) चाहता हूं कि foo -- barकभी कोई समस्या पैदा न हो। वहाँ एक SGML के बराबर है foo -\- bar? (मुझे यकीन है कि यह बैकस्लैश नहीं है!) या -( इस जवाब को देखें ), या कुछ और? यदि हम बस के --साथ -या - -, भागने के प्रतिवर्ती नहीं है।
आलसी

12

क्योंकि एक डबल हाइफन है SGML में टिप्पणी सीमांकक। <!एक SGML अनुदेश शुरू होता है, --एक टिप्पणी इंगित करता है। इसलिए मूल रूप से यह उसी कारण से है जिसमें C ++ टिप्पणी नहीं हो सकती है */


1
मुझे लगता -->है कि टिप्पणी परिसीमन है।
ओनेसिमुसनबाउंड

10
नहीं ऐसा नहीं है। <!एक SGML निर्देश शुरू करता है, >इसे समाप्त करता है। एक एसजीएमएल निर्देश के भीतर --दोनों एक टिप्पणी शुरू और समाप्त करते हैं।
जोर्ग डब्ल्यू मित्तग

7
आह, अपनी टिप्पणी को उत्तर में जोड़ें, यह रोशन है क्योंकि इसका मतलब है कि आप लिख सकते हैं <!! blabla ">
जिमी होफा

1
आह, समझ में आता है। --> वास्तव में दो टोकन हैं, --टिप्पणी करने के लिए, और >एसजीएमएल निर्देश को समाप्त करने के लिए। अब, मुझे एक विचार है कि कहां <![CDATA[... की ]]>उत्पत्ति हुई।
ओनेसिमुसनबाउंड

मैंने टिप्पणी को मर्ज कर दिया है।
जोरिस टिम्मरमन्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.