2013-12-16 53 views
14

क्या कोई आधिकारिक एक्सएसएलटी सत्यापनकर्ता है, जैसे http://validator.w3.org/ एचटीएमएल & एक्सएचटीएमएल के लिए?आधिकारिक एक्सएसएलटी वैधकर्ता?

मुझे पता है कि http://validator.w3.org/ का उपयोग XML और XSL दस्तावेज़ों को सत्यापित करने के लिए भी किया जा सकता है। लेकिन वे एक्सएमएल संरचनाओं के रूप में मान्य हैं।

वैध एक्सएचटीएमएल में, उदाहरण के लिए, <span><div>...</div></span> अमान्य है, क्योंकि ब्लॉक तत्व इनलाइन तत्वों के अंदर प्रकट नहीं होना चाहिए।

तो, क्या एक्सएसएल दस्तावेज़ को सीधे सत्यापित करने के लिए एक सुविधाजनक तरीका है?

(i लगता है हम एक्सएमएल और XSL, उत्पादन एक्सएचटीएमएल सम्मिलित कर सकते हैं, तो यह सत्यापित करते हैं। लेकिन इस सीधे और नहीं सुविधाजनक नहीं है।)

धन्यवाद!

+0

मुझे नहीं लगता कि यह कैसे काम कर सकता है, शायद मामलों के सबसे सरल में छोड़कर। आप भविष्य के उत्पाद को मान्य नहीं कर सकते जो कि अभी तक अज्ञात इनपुट पर निर्भर करता है।एक ऐसे मामले पर विचार करें जहां स्टाइलशीट किसी तत्व को गणना किए गए नाम से परिभाषित करता है। वैधकर्ता कैसे पता चलेगा कि वह नाम अंततः क्या होगा? यह "अवधि" हो सकता है और यह "div" हो सकता है। –

+0

अच्छी तरह से ... हाँ ... टिप्पणी के लिए धन्यवाद। यह मुझे प्रेरित करता है, और एक और सवाल उठाता है: एक ही एक्सएमएल और एक्सएसएल के साथ, क्या वे कुछ मामलों में अलग-अलग एक्सएचटीएमएल उत्पन्न करेंगे? – midnite

+0

और यदि हम केवल एक्सएसएल को मान्य कर रहे हैं, तो क्या कुछ अजीब (लेकिन वैध) एक्सएमएल परिणामस्वरूप एक्सएचटीएमएल की ओर कुछ चाल (इंजेक्शन की तरह) करेगा? – midnite

उत्तर

0

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

+0

उत्तर के लिए धन्यवाद। क्या आपके पास कोई अन्य आईडीई सुझाव है? विशेष रूप से मुक्त, ग्रहण पीडीटी की तरह (क्या आपको लगता है कि यह कर सकता है)? – midnite

+0

ग्रहण के बारे में निश्चित नहीं है, लेकिन इस सवाल को देखें, मुझे लगता है कि यह आप जो पूछ रहे हैं उसके समान है: http://stackoverflow.com/questions/124865/xml-chechema-xsd-validation-tool – Flynn1179

11

मुझे लगता है कि एक्सएसएलटी स्टाइलशीट को सत्यापित करके आप यह जांचते हैं कि पहले से ही अच्छी तरह से गठित XML दस्तावेज़ (जो एक्सएसएलटी कोड प्रतीत होता है) में तत्व, गुण इत्यादि एक्सएसएलटी डब्ल्यू 3 सी विनिर्देश का पालन करते हैं।

सबसे पहले, ध्यान दें कि एक XML दस्तावेज़ की अच्छी तरह से गठबंधन और वैधता के बीच एक अंतर है। यदि एक एकल रूट तत्व है और आगे (यह एक्सएमएल विनिर्देश द्वारा परिभाषित किया गया है) में निहित तत्व ठीक से घोंसले हुए हैं, तो यह अच्छी तरह से गठित होता है। यह भी देखें: Is there a difference between 'valid xml' and 'well formed xml'?

किसी XML दस्तावेज़ की वैधता केवल एक XML स्कीमा (या डीटीडी, या RelaxNG ...) के साथ सत्यापित की जा सकती है। एक स्कीमा परिभाषित नियमों का एक सेट है, उदाहरण के लिए, किस अनुक्रम में तत्वों और विशेषताओं की अनुमति है।

अब, अपने प्रश्न का उत्तर देने के लिए: डब्ल्यू 3 सी से ऐसी कोई सेवा नहीं है, हालांकि, एक स्कीमा उपलब्ध है, उदाहरण के लिए देखें। http://www.w3.org/2007/schema-for-xslt20.xsd एक स्कीमा के लिए जो "मानक" XSLT 2.0 की सभी संरचनाओं को शामिल करता है।

आप इस स्कीमा के खिलाफ अपने एक्सएसएलटी कोड को सत्यापित कर सकते हैं। फिर भी, यह आपके कोड को एक्सएसएलटी प्रोसेसर के साथ चलाने के लिए और अधिक अंतर्दृष्टिपूर्ण है और चेतावनियों और त्रुटियों को उत्पन्न करने के लिए देखो।


इसके अलावा, ध्यान रखें कि XSLT कोड और XHTML यह आउटपुट की वैधता की वैधता एक ही नहीं है। भले ही आपका एक्सएसएलटी एक्सएसएलटी विनिर्देश के संबंध में पूरी तरह से मान्य है, इसका मतलब यह नहीं है कि परिणामी एक्सएचटीएमएल उचित है।

+0

हां! आपके अच्छे उत्तर के लिए बहुत धन्यवाद, और स्कीमा प्रदान करना। और पिछले पैराग्राफ में आपने जो भी उल्लेख किया है वह वही है जो मैं चाहता हूं - यह सुनिश्चित करने के लिए कि परिणामी एक्सएचटीएमएल मान्य है - एक्सएचटीएमएल वह चीज है जिसे उपयोगकर्ता वास्तव में समझते हैं। – midnite

+0

आपका स्वागत है। कृपया उस उत्तर को स्वीकार करने पर विचार करें जो आपके लिए सबसे उपयोगी था (जरूरी नहीं कि मेरा)। –

+0

कृपया अपना अंतिम पैराग्राफ जारी रखें, जैसा कि मैं मूल रूप से करना चाहता हूं। और, कृपया ऊपर दिए गए विवरणों का उल्लेख करें [मेरे प्रश्न की टिप्पणी] (http://stackoverflow.com/questions/20605328/official-xslt-validator/20608732?noredirect=1#comment30875736_20605328) उपरोक्त के लिए, अधिक के लिए विवरण। मुझे उम्मीद है कि आप मेरे साथ इस समस्या को हल कर सकते हैं। बहुत धन्यवाद! – midnite

2

सामान्य स्थिति में आप मनमानी एक्सएसएलटी स्टाइलशीट नहीं ले सकते हैं और स्थिर रूप से साबित कर सकते हैं कि यह वैध एक्सएचटीएमएल उत्पन्न करेगा। हालांकि आप कुछ मामलों का पता लगा सकते हैं जहां यह नहीं होगा, बशर्ते स्टाइलशीट स्कीमा-जागरूकता का लाभ उठाने के लिए लिखी गई हो। इसके लिए आपको स्कीमा-जागरूक एक्सएसएलटी प्रोसेसर की आवश्यकता है जो स्थिर जांच (उदाहरण के लिए सैक्सन-ईई) करता है, और आपको स्टाइलशीट की आवश्यकता है (ए) xslt: import-schema, और (b) का उपयोग करके स्कीमा आयात करें, पर सत्यापन को आमंत्रित करने के लिए [xsl:] सत्यापन = "सख्त" का उपयोग कर परिणाम तत्व। यह आपके स्टाइलशीट आउटपुट में स्थिरता त्रुटियों का पता लगाएगा (स्टाइलशीट संकलित करते समय), और शेष गतिशील रूप से (इसे चलाने के दौरान)।