XML Validator

XML सिंटैक्स को सत्यापित करें और सुगठित त्रुटियों की जांच करें

उदाहरण देखें

XML इनपुट

स्थानीय रूप से चलता है · सीक्रेट पेस्ट करना सुरक्षित है

XML सत्यापन क्या है?

एक XML validator यह जांचता है कि कोई XML दस्तावेज़ XML 1.0 विनिर्देश (W3C अनुशंसा, पाँचवाँ संस्करण) द्वारा परिभाषित संरचनात्मक नियमों का पालन करता है या नहीं। न्यूनतम स्तर पर, यह XML validator पुष्टि करता है कि दस्तावेज़ सुगठित (well-formed) है: उसमें एकल मूल एलिमेंट है, सभी टैग उचित तरीके से नेस्टेड और बंद हैं, विशेषता मानों में उद्धरण चिह्न हैं, और आरक्षित वर्णों के लिए predefined entities का उपयोग किया गया है। इनमें से कोई भी जांच विफल होने पर XML पार्सर चुपचाप गलत आउटपुट देने के बजाय त्रुटि उत्पन्न करते हैं।

सुगठितता (well-formedness) और वैधता (validity) के बीच का अंतर महत्वपूर्ण है। एक सुगठित XML दस्तावेज़ XML विनिर्देश के सिंटैक्स नियमों को पूरा करता है। एक वैध XML दस्तावेज़ इससे आगे जाता है: वह किसी बाह्य स्कीमा — जैसे DTD (Document Type Definition), XSD (XML Schema Definition), या Relax NG स्कीमा — में परिभाषित बाधाओं का भी पालन करता है। यह उपकरण सुगठितता की जांच करता है, जो सत्यापन का पहला और सबसे सामान्य चरण है। इसके बिना कोई भी आगे की प्रक्रिया आरंभ नहीं हो सकती।

XML सत्यापन उत्पादन में पहुंचने से पहले त्रुटियाँ पकड़ता है। हाथ से संपादित XML में बंद न किए गए टैग, असंगत एलिमेंट नाम, बिना escape किए ampersand, और दोहराई गई विशेषताएं सबसे सामान्य गलतियाँ हैं। विभिन्न भाषाओं के पार्सर इन त्रुटियों को अलग-अलग तरीके से संभालते हैं: कुछ चुपचाप विफल हो जाते हैं, कुछ आंशिक परिणाम लौटाते हैं, और कुछ अपवाद उत्पन्न करते हैं। अपने XML को पहले validator से चलाने पर यह अस्पष्टता दूर हो जाती है और त्रुटि के स्थान सहित स्पष्ट उत्तीर्ण-अनुत्तीर्ण परिणाम मिलता है।

ऑनलाइन XML Validator क्यों उपयोग करें?

XML सिंटैक्स त्रुटियाँ जल्दी पकड़ने से XML डेटा का उपभोग करने वाले अनुप्रयोगों में क्रमिक विफलताएं रोकी जा सकती हैं। ब्राउज़र-आधारित validator command-line उपकरण install किए बिना या IDE plugin configure किए बिना तुरंत feedback देता है।

त्वरित त्रुटि पहचान
अपना XML चिपकाएं और एक सेकंड से भी कम समय में सटीक त्रुटि स्थान के साथ उत्तीर्ण/अनुत्तीर्ण परिणाम पाएं। बिल्ड पाइपलाइन या CLI उपकरण सेटअप का इंतजार नहीं।
🔒
गोपनीयता-प्रथम संसाधन
सभी पार्सिंग और सत्यापन आपके ब्राउज़र में DOMParser API का उपयोग करके होता है। आपका XML कभी भी आपके कंप्यूटर से बाहर नहीं जाता और किसी भी सर्वर पर नहीं भेजा जाता।
🎯
सटीक त्रुटि रिपोर्टिंग
वह सटीक पंक्ति और कॉलम देखें जहाँ सत्यापन विफल होता है, साथ में त्रुटि का विवरण। यह आपके अनुप्रयोग कोड में पार्सर का स्टैक ट्रेस पढ़ने से तेज़ है।
📋
कोई खाता या स्थापना आवश्यक नहीं
पृष्ठ खोलें, XML चिपकाएं, और परिणाम देखें। कोई पंजीकरण फ़ॉर्म नहीं, कोई डेस्कटॉप सॉफ़्टवेयर नहीं, कोई ब्राउज़र एक्सटेंशन नहीं।

XML Validator के उपयोग के मामले

फ्रंटएंड विकास
React या Vue कंपोनेंट में एम्बेड करने से पहले SVG फ़ाइलें और XHTML खंडों को सत्यापित करें। SVG में एक भी बंद न किया गया टैग पूरे component tree को तोड़ सकता है।
बैकएंड इंजीनियरिंग
तृतीय-पक्ष API से SOAP प्रतिक्रियाएं, XML-RPC पेलोड, और RSS/Atom फ़ीड जांचें। रनटाइम पर parser exceptions debug करने से बचने के लिए deserialization logic लिखने से पहले raw response को validate करें।
DevOps और CI/CD
स्वचालित संपादन के बाद Maven pom.xml, .csproj, या Ant बिल्ड फ़ाइलें सुगठित हैं या नहीं, सत्यापित करें। बिल्ड कॉन्फ़िग में सिंटैक्स error एक cryptic message के साथ पूरी pipeline fail कर सकती है।
QA और परीक्षण
एकीकरण परीक्षण चलाने से पहले XML परीक्षण fixtures और अपेक्षित-आउटपुट फ़ाइलों को सत्यापित करें। विकृत fixtures झूठे नकारात्मक परिणाम उत्पन्न करते हैं जो डीबगिंग में समय बर्बाद करते हैं।
डेटा इंजीनियरिंग
डेटाबेस, सरकारी खुले-डेटा पोर्टल, और ETL पाइपलाइन से XML निर्यात जांचें। टूटे स्रोत डेटा पर व्यर्थ प्रयास से बचने के लिए XPath क्वेरी या XSLT रूपांतरण लिखने से पहले संरचना सत्यापित करें।
XML सीखना
W3C XML या XSLT ट्यूटोरियल पढ़ने वाले विद्यार्थी अपनी सिंटैक्स जांचने के लिए अभ्यास फ़ाइलें validator में चिपका सकते हैं। त्रुटि संदेश सटीक समस्या की ओर इंगित करते हैं, जिससे सीखने की प्रक्रिया तेज़ होती है।

XML सुगठितता के नियम

XML 1.0 specification सिंटैक्स नियमों का एक strict सेट define करता है। सुगठित माने जाने के लिए दस्तावेज़ को उन सभी को पूरा करना होगा। नीचे दी गई तालिका प्रत्येक नियम, उसकी आवश्यकता और एक सही उदाहरण सूचीबद्ध करती है। अधिकांश सत्यापन त्रुटियाँ इन्हीं नियमों में से किसी एक से जुड़ी होती हैं।

नियमआवश्यकतासही उदाहरण
Single root elementDocument must have exactly one root<root>...</root>
Matched tagsEvery opening tag needs a closing tag<p>text</p>
Proper nestingTags must close in reverse order of opening<a><b>...</b></a>
Quoted attributesAttribute values must be in single or double quotes<el attr="val"/>
Entity escapingReserved characters must use predefined entities&lt; &gt; &amp; &quot; &apos;
Case sensitivityTag names are case-sensitive: <A> is not </a><Book>...</Book>
No duplicate attributesEach attribute name must appear once per element<el a="1" b="2"/>
Valid XML declarationIf present, must be the very first line<?xml version="1.0"?>

Well-Formed बनाम DTD-Valid बनाम Schema-Valid

XML सत्यापन के तीन स्तर हैं। यह उपकरण पहला (सुगठितता) जांचता है, जो अन्य दोनों के लिए पूर्वशर्त है।

Well-formed (सुगठित)
XML 1.0 सिंटैक्स नियमों को पूरा करता है: एकल मूल एलिमेंट, संगत टैग, उद्धृत विशेषताएं, उचित नेस्टिंग। प्रत्येक XML पार्सर पहले यही जांचता है। यदि दस्तावेज़ सुगठित नहीं है, तो वह XML ही नहीं है।
DTD-valid
एक Document Type Definition के अनुरूप जो निर्दिष्ट करती है कि कौन से एलिमेंट और विशेषताएं अनुमत हैं, उनका क्रम और उनकी संख्या। DTD inline या DOCTYPE संदर्भ के माध्यम से घोषित की जाती हैं। DTD सत्यापन पुरानी प्रणालियों और XHTML में सामान्य है।
Schema-valid (XSD / Relax NG)
XML Schema Definition (XSD) या Relax NG स्कीमा के अनुरूप। ये स्कीमा डेटा प्रकारों (integer, date, URI), नेमस्पेस, और जटिल content model का समर्थन करती हैं। XSD सत्यापन SOAP वेब सेवाओं, HL7 स्वास्थ्य सेवा डेटा, और एंटरप्राइज़ एकीकरण में मानक है।

कोड उदाहरण

विभिन्न भाषाओं में XML को प्रोग्रामेटिक रूप से सत्यापित करें। प्रत्येक उदाहरण सुगठितता जांचता है और दस्तावेज़ विकृत होने पर त्रुटि संदेश लौटाता है।

JavaScript (DOMParser)
function validateXML(xmlString) {
  const parser = new DOMParser()
  const doc = parser.parseFromString(xmlString, 'application/xml')
  const error = doc.querySelector('parsererror')
  if (error) {
    return { valid: false, message: error.textContent }
  }
  return { valid: true, message: 'Well-formed XML' }
}

validateXML('<root><item>hello</item></root>')
// → { valid: true, message: "Well-formed XML" }

validateXML('<root><item>hello</root>')
// → { valid: false, message: "Opening and ending tag mismatch..." }
Python
import xml.etree.ElementTree as ET

def validate_xml(xml_string):
    try:
        ET.fromstring(xml_string)
        return True, "Well-formed XML"
    except ET.ParseError as e:
        return False, str(e)

valid, msg = validate_xml('<root><item>hello</item></root>')
# → (True, "Well-formed XML")

valid, msg = validate_xml('<root><item>hello</root>')
# → (False, "mismatched tag: line 1, column 27")

# With lxml — also supports XSD schema validation
from lxml import etree
schema = etree.XMLSchema(etree.parse('schema.xsd'))
doc = etree.fromstring(b'<root><item>hello</item></root>')
schema.validate(doc)  # → True or False
Go
package main

import (
    "encoding/xml"
    "fmt"
    "strings"
)

func validateXML(raw string) error {
    decoder := xml.NewDecoder(strings.NewReader(raw))
    for {
        _, err := decoder.Token()
        if err != nil {
            if err.Error() == "EOF" {
                return nil
            }
            return err
        }
    }
}

func main() {
    err := validateXML("<root><item>hello</item></root>")
    fmt.Println(err) // → <nil>

    err = validateXML("<root><item>hello</root>")
    fmt.Println(err) // → XML syntax error: unexpected end element </root>
}
CLI (xmllint)
# Check well-formedness (part of libxml2, pre-installed on macOS/Linux)
xmllint --noout document.xml
# Exit code 0 = valid, non-zero = errors printed to stderr

# Validate against an XSD schema
xmllint --noout --schema schema.xsd document.xml

# Validate against a DTD
xmllint --noout --dtdvalid schema.dtd document.xml

# Validate from stdin
echo '<root><unclosed>' | xmllint --noout -
# → :1: parser error : Premature end of data in tag unclosed line 1

अक्सर पूछे जाने वाले प्रश्न

Well-formed और valid XML में क्या अंतर है?
Well-formed XML, XML 1.0 विनिर्देश के सिंटैक्स नियमों का पालन करता है: एक मूल एलिमेंट, संगत और उचित तरीके से नेस्टेड टैग, उद्धृत विशेषताएं। Valid XML इससे आगे जाकर एक DTD या XSD स्कीमा के अनुरूप भी होता है जो निर्धारित करती है कि कौन से एलिमेंट, विशेषताएं और डेटा प्रकार अनुमत हैं। एक दस्तावेज़ well-formed हो सकता है लेकिन valid नहीं, यदि उसकी सिंटैक्स सही है परंतु वह किसी स्कीमा बाधा का उल्लंघन करता है।
क्या कोई XML दस्तावेज़ valid हो सकता है लेकिन well-formed नहीं?
नहीं। Well-formedness, validity के लिए पूर्वशर्त है। यदि कोई दस्तावेज़ कोई भी XML सिंटैक्स नियम तोड़ता है (बंद न किया गया टैग, बिना उद्धरण की विशेषता, आदि), तो पार्सर उससे पार्स ट्री नहीं बना सकते, इसलिए स्कीमा सत्यापन आरंभ ही नहीं हो सकता। पहले well-formedness त्रुटियाँ ठीक करें, फिर स्कीमा के विरुद्ध जांचें।
XML सत्यापन में सबसे सामान्य त्रुटियाँ कौन सी हैं?
पाँच सबसे सामान्य त्रुटियाँ हैं: बंद न किए गए या असंगत टैग, टेक्स्ट सामग्री में बिना escape किए ampersand, बिना उद्धरण के विशेषता मान, लापता मूल एलिमेंट, और टैग नामों में गलत letter case (XML, case-sensitive है)। इनमें से अधिकांश XML को हाथ से संपादित करने या उचित XML serializer के बजाय कोड में string concatenation का उपयोग करने से होती हैं।
क्या XML सत्यापन और XML linting एक ही हैं?
वे आंशिक रूप से समान हैं लेकिन बिल्कुल एक जैसे नहीं। सत्यापन जांचता है कि दस्तावेज़ XML विनिर्देश (well-formedness) या किसी स्कीमा (DTD/XSD) के अनुरूप है या नहीं। Linting आमतौर पर इससे आगे जाकर शैली संबंधी समस्याएं भी चिह्नित करता है: असंगत इंडेंटेशन, अप्रयुक्त namespace घोषणाएं, या अनावश्यक डिफ़ॉल्ट विशेषता मान। libxml2 का xmllint दोनों को जोड़ता है: --noout, well-formedness जांचता है, जबकि --schema, XSD सत्यापन जोड़ता है।
XML सत्यापन JSON सत्यापन से कैसे भिन्न है?
XML का व्याकरण JSON की तुलना में अधिक कठोर और जटिल है। XML के लिए संगत आरंभिक/समापन टैग आवश्यक हैं, यह विशेषताओं, नेमस्पेस, मिश्रित सामग्री (टेक्स्ट और एलिमेंट एक साथ) का समर्थन करता है, और इसकी कई स्कीमा भाषाएं हैं (DTD, XSD, Relax NG, Schematron)। JSON सत्यापन brace/bracket मिलान, उद्धृत कुंजियां, और अल्पविराम स्थान जांचता है। JSON Schema उपलब्ध है लेकिन XSD की तुलना में सरल है। XML दस्तावेज़ आमतौर पर समान डेटा के लिए समतुल्य JSON से 2-3 गुना बड़ा होता है।
क्या यह उपकरण XSD या DTD स्कीमा के विरुद्ध सत्यापन करता है?
यह उपकरण केवल well-formedness जांचता है: यह पुष्टि करता है कि आपका XML, XML 1.0 विनिर्देश के सिंटैक्स नियमों का पालन करता है। यह बाह्य DTD या XSD स्कीमा के विरुद्ध सत्यापन नहीं करता। स्कीमा सत्यापन के लिए command line पर xmllint --schema उपयोग करें, या Python में lxml उपयोग करें जो XSD और Relax NG दोनों का समर्थन करता है।
मेरा XML सत्यापन क्यों विफल होता है जबकि वह सही दिखता है?
सबसे सामान्य अदृश्य कारण हैं: XML घोषणा से पहले byte order mark (BOM), समापन मूल टैग के बाद कोई अनावश्यक वर्ण, टेक्स्ट सामग्री में बिना escape किया ampersand (इसके बजाय &amp; उपयोग करें), या कोई namespace उपसर्ग जो उपयोग किया गया लेकिन कभी घोषित नहीं किया गया। अपना XML किसी hex viewer में कॉपी करें या सटीक byte offset पाने के लिए xmllint --noout से चलाएं।