2009-02-24 12 views
9

जिम्मेदार बताते हैं मैं एक वेबसाइट है कि एक ग्राहक एक्सएचटीएमएल मान्य होने के लिए की आवश्यकता है है। वे इसे डब्ल्यू 3 सी वैधकर्ता का उपयोग करके जांचते हैं।एक्सएचटीएमएल सत्यापन, कस्टम नामस्थान और

मैं अपने खुद के नाम स्थान जोड़ना चाहते हैं और विशेषताएँ तो मैं इस तरह कर सकते हैं:

<div my:userid="123"> ... </div> 

मैं क्या समझ से, कस्टम नामस्थान को परिभाषित पूरी तरह से वैध एक्सएचटीएमएल, जब तक मैं यह करने के रूप में है:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:my="http://www.example.com/my"> 

लेकिन, मेरा एक्सएचटीएमएल सत्यापन विफल हो जाता। समस्या यह प्रतीत होती है कि वैधकर्ता वास्तव में बाहर नहीं जाता है और मेरे कस्टम नामस्थान के लिए मेरे कस्टम डीटीडी दस्तावेज़ की जांच करता है, यह केवल ज्ञात डीटीडी के खिलाफ एक्सएचटीएमएल की जांच करता है। कोई भी इस समस्या को हल करने के तरीके पर कोई प्रकाश डालने में सक्षम है?

+0

के खिलाफ मान्य है, मुझे समझ में नहीं आता कि सत्यापनकर्ता नामस्थान के लिए डीटीडी की जांच क्यों करेगा। वैसे भी, ब्राउज़र डीटीडी भी नहीं देखता है, और मुझे विश्वास है कि आप वास्तव में उचित एक्सएचटीएमएल का उपयोग नहीं करते हैं, यानी आपने उस वेब पेज के लिए सामग्री-प्रकार: टेक्स्ट/एचटीएमएल हेडर भेजा है। लेकिन हो सकता है मैं गलत हूं। –

उत्तर

6

XHTML 1.0 के लिए आप 1.0 तत्वों XHTML तक ही सीमित है और विशेषताओं:

Normative Definition of XHTML 1.0

एक्सएचटीएमएल के इस संस्करण में सख्ती अनुरूप XHTML 1.0 दस्तावेज है, जो तत्वों के लिए प्रतिबंधित और से जिम्मेदार बताते रहे हैं की एक परिभाषा प्रदान करता है एक्सएमएल और एक्सएचटीएमएल 1.0 नामस्थान।

मेरी समझ यह है कि एक्सएचटीएमएल 2.0 का उद्देश्य आप जो चाहते हैं उसे करने के लिए एक ढांचा प्रदान करना है।

5

मैं क्या समझ से, कस्टम नामस्थान को परिभाषित पूरी तरह से वैध एक्सएचटीएमएल

नहीं है। कस्टम नेमस्पेस पूरी तरह से एक्सएमएल में अच्छी तरह से गठित हैं, लेकिन 'मान्य' का विशिष्ट अर्थ है कि प्रत्येक तत्व और विशेषता का उपयोग दस्तावेज़ की स्कीमा में घोषित किया जाता है। वह स्कीमा एक डीटीडी, एक एक्सएमएल स्कीमा, या कुछ और हो सकती है, लेकिन आपको इसे घोषित करना होगा।

तो तुम भाषा के लिए जिम्मेदार बताते हैं कस्टम जोड़ने के लिए अपने स्वयं के स्कीमा घोषणा कर सकते हैं, और वास्तव में एक्सएचटीएमएल Modularization यह बहुत आसान बना देता है। आपको < के रूप में डीटीडी का संदर्भ जोड़ना होगा! DOCTYPE> प्रोलॉग में; बस नेमस्पेस यूआरआई सेट करने से स्कीमा को अपने आप में ढूंढने के लिए किसी भी हुक को एक्सएमएल प्रोसेसर नहीं मिलता है।

लेकिन तब आप क्या लिखा है कि "वैध मेरी-भाषा-जो-है-एक बिट की तरह-एक्सएचटीएमएल", और नहीं "मान्य एक्सएचटीएमएल"। इनमें से कुछ 'मेरी भाषाएं' प्रसिद्ध हैं, जैसे कि 'एक्सएचटीएमएल + मैथएमएल + एसवीजी', लेकिन यह अभी भी एक्सएचटीएमएल नहीं है और यदि आपका ग्राहक "वैध एक्सएचटीएमएल" पर मृत सेट है तो आप उनमें से किसी का भी उपयोग नहीं कर सकते हैं।

तुम भी संभावित ब्राउज़र समस्याओं, विशेष रूप से आईई, जो (पूर्व IE8) तत्व के साथ कुछ अजीब काम करता है के साथ मिल गया है। * EtAttribute * डोम के परिवार कहता है। और जब तक आप वास्तव में एक XML सामग्री-प्रकार (जिसे IE भी संभाल नहीं सकता) के रूप में दस्तावेज़ की सेवा कर रहे हैं, तब तक आपकी सभी नेमस्पेस सामग्री वास्तव में नामस्थानों का उपयोग नहीं कर रही हैं।

में [X] एचटीएमएल 5 वहाँ उपयोगकर्ता कस्टम विशेषताओं अनुमति देने के लिए एक प्रस्ताव (मुख्य रूप से पटकथा प्रयोजनों के लिए) विशेषताओं जिनके नाम 'डेटा-' के साथ शुरू में जाने के लिए है। लेकिन इस बीच में सामान्य विधि एक और विशेषता में मूल्यों को छिपाने के लिए, उदाहरण के वर्ग के लिए है:

<div class="userid-123">...</div> 

और उसके बाद स्क्रिप्ट में className अधिक उपयुक्त स्ट्रिंग प्रसंस्करण का उपयोग कर डेटा निकालें।

+0

हां, कक्षा विशेषता में मान छिपाना मेरा फॉलबैक समाधान है, लेकिन जाहिर है कि यह बहुत ही सुरुचिपूर्ण नहीं है और मैं कुछ कम "गंदे" चाहता था। सबसे सुरुचिपूर्ण समाधान विशेषता नाम है जो आपके द्वारा उल्लिखित डेटा से शुरू होता है, लेकिन अब ऐसा लगता है कि मुझे इसके लिए इंतजार करना होगा :-) –

3

मेरे पास एक ऐसी वेबसाइट है जिसे क्लाइंट को एक्सएचटीएमएल वैध होना आवश्यक है। वे इसे W3C सत्यापनकर्ता का उपयोग करके जांचते हैं।

मैं का उपयोग कर W3C मान्य, नहीं xmlns=, लेकिन मानक एक्सएचटीएमएल DTD लेने और bobince ऊपर का वर्णन के रूप में अंत में कुछ विशेषताओं को जोड़ने के साथ कुछ सफलता मिली है। मैं इस तरह के

रूप
<html metal:define-macro="m"> 

PHPTAL templating प्रणाली द्वारा इस्तेमाल किया विशेषताओं को जोड़ने के लिए इस का उपयोग कर रहा, मैं मानता हूँ कि आपको क्या चाहिए एक्सएचटीएमएल लेकिन एक्सएचटीएमएल का सुपरसेट नहीं है। हालांकि, यदि आपका ग्राहक आपके यूआरएल पर डब्ल्यू 3 सी वैधता को इंगित करके बस परीक्षण करने के लिए तैयार है, तो आगे बढ़ें। सलाह के लिए, WDG

+0

http://www.alistapart.com/articles/customdtd/ यदि आप W3C सत्यापनकर्ता के माध्यम से ऐसी फ़ाइल चलाते हैं, तो आप पाते हैं कि यह आश्चर्यजनक रूप से मान्य है .... दुर्भाग्यवश, जब आप ब्राउज़र में फ़ाइल प्रदर्शित करते हैं, तो>> स्क्रीन पर दिखाई देता है। इस बग के चारों ओर कोई रास्ता नहीं है, इसलिए यह दृष्टिकोण सही है। – davidcl

+0

लेकिन लेख कहता है "एक दृष्टिकोण जो * काम करता है * आपको एक्सएचटीएमएल डीटीडी प्राप्त करने और उस फ़ाइल में अपने संशोधन जोड़ने की आवश्यकता है।" यह मेरे लिए डब्ल्यू 3 सी वैधता और डब्लूडीजी सत्यापनकर्ता पर भी काम करता है। – cjakeman

0

1.0 इस की अनुमति नहीं है। अगर आप वास्तव में ऐसा करना चाहते हैं तो आपको मौजूदा डीटी डाउनलोड करना चाहिए और इसे अपने सर्वर में सहेजना चाहिए और जनता के बजाय निजी परिभाषित करना चाहिए। लेकिन डब्ल्यू 3 सी प्रमाणीकरण पारित नहीं हुआ क्योंकि यह केवल

संबंधित मुद्दे