2011-04-19 15 views
5

मैंने हमेशा HTML दस्तावेज़ों में & का उपयोग न करने के लिए बयानों को देखा, और इसके बजाय & का उपयोग करें।क्या HTML "01 "में अकेले चरित्र" & "अवैध है?

इसलिए मैं शीर्षक में और पृष्ठ की सामग्री में & डालने की कोशिश की, लेकिन वे मान्य:

http://topics2look.com/code-examples/HTML/ampersand-by-itself-can-validate.html

कानूनी HTML में 4.01 स्ट्रिक्ट दस्तावेजों से ही & है?

उत्तर

2

W3C HTML 4.01 Strict Charset section कहते

चार कैरेक्टर एंटिटी रेफरी erences विशेष रूप से उल्लेखनीय हैं क्योंकि वे अक्सर विशेष वर्ण से बचें करने के लिए इस्तेमाल कर रहे हैं:

* "&lt;" represents the < sign. 
* "&gt;" represents the > sign. 
* "&amp;" represents the & sign. 
* "&quot; represents the " mark. 

लेखक डाल करने के लिए "<" पाठ में चरित्र का उपयोग करना चाहिए इच्छुक "<" (ASCII दशमलव 60) संभव से बचने के लिए टैग की शुरुआत के साथ भ्रम (टैग खुली डिलीमीटर शुरू करें)। इसी तरह, लेखकों के बजाय ">" के पाठ में उपयोग करना चाहिए ">" (ASCII दशमलव 62) बड़े उपयोगकर्ता एजेंट कि गलत तरीके से एक टैग का अंत के रूप में इस अनुभव (टैग निकट परिसीमक) के साथ समस्याओं से बचने के जब यह उद्धृत विशेषता मानों में दिखाई देता है।

लेखकों को "& amp" का उपयोग करना चाहिए चरित्र संदर्भ (इकाई संदर्भ खुले डिलीमीटर) की शुरुआत के साथ भ्रम से बचने के लिए "" के बजाय ASCII दशमलव 38)। लेखकों को भी का उपयोग करना चाहिए "& amp;" के बाद गुण मानों में सीडीएटीए विशेषता मानों के भीतर वर्ण संदर्भों की अनुमति है।

चूंकि यह "जरूरी" के बजाय "चाहिए" शब्द का उपयोग करता है, मुझे लगता है कि आप इसे छोड़ सकते हैं और अभी भी मान्य कर सकते हैं।

लेकिन ऐसा न करें, क्योंकि यह कभी-कभी अजीब रूप से प्रस्तुत करेगा।

मैं वास्तव में इस उद्धरण के अपने कट-पेस्ट में ऐम्परसेंड की एक जोड़ी से बचने के लिए चरित्र इकाई पाठ प्रस्तुत करने के लिए बहुत पाने के लिए था ... ;-)

+0

, में यूआरआई विशेषता के मान पर ampersands खंड से संबंधित है: http://www.w3.org/TR/html401/appendix/notes.html # एचबी.2.2। –

1

चाहे यह एक त्रुटि है या HTML 4 में नहीं है इस पर निर्भर करता है कि यह एक त्रुटि है या नहीं, एसजीएमएल में। मैं यह जांच नहीं सकता क्योंकि चूंकि सार्वजनिक रूप से सुलभ नहीं है। एचटीएमएल 4 spec का मतलब है कि यह एक त्रुटि नहीं है (« लेखकों का उपयोग करना चाहिए "&" » "चाहिए", "जरूरी नहीं" का उपयोग करता है)। ([^ < &] * ']]>' [^ < -

यह इसके लिए एचटीएमएल 4 के XML क्रमांकन (XHTML) में कोई त्रुटि है (« CharData :: = [^ < &] * एक्सएमएल में कोई त्रुटि है &] *) »)

यह एचटीएमएल 5 के एचटीएमएल सीरियललाइज़ेशन में कोई त्रुटि नहीं है। (। « नहीं एक चरित्र संदर्भ कोई वर्ण खपत होती है, और कुछ भी नहीं दिया जाता है (यह एक त्रुटि है, या तो नहीं है) »।।)

यह एचटीएमएल 5 के XML क्रमांकन में कोई त्रुटि है यह « CharData एक्सएमएल में अमान्य (है के लिए: : = [^ < &] * - ([^ < &] * ']]>' [^ < &] *) »)

1

हाँ, यह कानूनी है।

यह HTML 4.01 में कानूनी है, और यह HTML 4 सख्त डिक्टिप में भी कानूनी है, क्योंकि यह फ़ॉन्ट टैग जैसे बहिष्कृत सुविधाओं में से एक नहीं है।

यह एक्सएचटीएमएल के किसी भी संस्करण में कानूनी नहीं है। इसका कारण यह है कि परिभाषा के अनुसार एक्सएचटीएमएल एक्सएमएल अनुपालन होना चाहिए और अनपेक्षित एम्परसेंड के पास spec (इकाइयों के लिए) में एक विशेष अर्थ है।

जब संभव हो तो एक्सएचटीएमएल का उपयोग करना बेहतर है क्योंकि यह एक कठिन, अधिक आधुनिक नमूना है, और अधिक जानकारी http://en.wikipedia.org/wiki/XHTML पर मिल सकती है। आमतौर पर एचटीएमएल विरासत समर्थन के लिए प्रयोग किया जाता है।

मैं HTML समझ में अभी भी कई स्थानों में व्यावहारिक कारणों के लिए प्रयोग किया जाता है, और इस मामले में यह भले ही यह तथ्य अपने doctype में कानूनी में है बच गए संस्करण का उपयोग करने के लिए एक सबसे अच्छा अभ्यास माना जाता है।

यदि आप कभी भी इस विषय पर और अधिक खोजना चाहते हैं तो एक एम्परेंड "स्वयं द्वारा" को "अनपेक्षित एम्परसैंड" कहा जाता है।

0

मैं इस अच्छी तरह से शोध किया और यहाँ मेरा निष्कर्ष के बारे में लिखा गया है: http://mathiasbynens.be/notes/ambiguous-ampersands

मैं भी बना लिया है an online tool कि आप अस्पष्ट ऐम्परसेंड या चरित्र संदर्भ के साथ समाप्त नहीं है उसके लिए अपने मार्कअप जाँच करने के लिए उपयोग कर सकते हैं एक अर्धविराम, जो दोनों अमान्य हैं। (कोई HTML सत्यापनकर्ता वर्तमान में सही ढंग से करता है।)

http://i.stack.imgur.com/nyGPK.png

इसके अलावा
संबंधित मुद्दे