एलएक्सएमएल दस्तावेज के अनुसार "डीटीडी को पार्स किए गए दस्तावेज़ के DOCTYPE के आधार पर स्वचालित रूप से पुनर्प्राप्त किया जाता है। आपको केवल एक पार्सर का उपयोग करना है जिसमें डीटीडी सत्यापन सक्षम है।"स्वचालित एक्सएसडी सत्यापन
http://lxml.de/validation.html#validation-at-parse-time
हालांकि, अगर आप एक XML स्कीमा के सामने सत्यापित करना चाहते हैं, आप स्पष्ट रूप से एक संदर्भ के लिए की जरूरत है।
मुझे आश्चर्य है कि यह क्यों है और यह जानना चाहेगा कि कोई लाइब्रेरी या फ़ंक्शन है जो ऐसा कर सकता है। या यह भी एक स्पष्टीकरण है कि इसे स्वयं कैसे किया जाए। समस्या यह है कि एक्सएसडी का संदर्भ देने के कई तरीके हैं और मुझे उन सभी का समर्थन करने की आवश्यकता है।
प्रमाणीकरण समस्या नहीं है। मुद्दा यह है कि स्कीमा को सत्यापित करने के लिए कैसे निर्धारित किया जाए। आदर्श रूप से यह इनलाइन स्कीमा को भी संभाल लेगा।
अद्यतन:
यहाँ एक उदाहरण है।
simpletest.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="name" type="xs:string"/>
</xs:schema>
simpletest.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<name xmlns="http://www.example.org"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org simpletest.xsd">foo</name>
मैं निम्नलिखित की तरह कुछ करना चाहते हैं:
>>> parser = etree.XMLParser(xsd_validation=True)
>>> tree = etree.parse("simpletest.xml", parser)
हम आपको अपने प्रारूपों से निपटने के लिए कैसे नहीं बता सकते हैं। – Marcin
मार्किन, मैं आपकी टिप्पणी को समझ नहीं पा रहा हूं। शायद मैं समझ नहीं पा रहा हूं कि स्कीमा सत्यापन कैसे काम करता है। – Jono
क्या आप इसे विंडोज पर कर रहे हैं? AFAIK माइक्रोसॉफ्ट इनलाइन स्कीमा का समर्थन करने वाला एकमात्र ऐसा है। –