2010-06-30 13 views
9

का उपयोग कर कई स्कीमा के साथ सत्यापन मैं एक स्कीमा के साथ काम कर रहा हूं जो किसी तीसरे पक्ष द्वारा बनाया गया था और मैं इसे lxml के साथ मान्य करना चाहता हूं। समस्या यह है कि ऐसी स्कीमा अलग-अलग xsd फ़ाइलों पर विभाजित होती है, जो स्वयं को संदर्भित करती हैं।पायथन - lxml

<redefine schemaLocation="master.xsd"> 

अगर मैं lxml (पार्स करने के साथ यह प्रमाणित करने के लिए प्रयास करते हैं, तो का उपयोग कर:

उदाहरण के लिए, एक फ़ाइल "extension.xsd" (बनाता है जो "मास्टर" स्कीमा पर) कहा जाता है की तरह एक लाइन है XMLSchema फिर मुझे पता है कि एक और दस्तावेज़ को मान्य करना पहले से मान्य है), मुझे केवल "एक्सटेंशन" का उपयोग करके सत्यापन प्राप्त होता है, न कि "मास्टर": दूसरे शब्दों में, सत्यापन विफल रहता है (क्योंकि एक्सएमएल फ़ाइल में तत्व केवल "मास्टर" में मौजूद होते हैं और "विस्तार" में नहीं)।

मैं इस मुद्दे को कैसे हल कर सकता हूं (या आसपास काम कर सकता हूं)? धन्यवाद!

उत्तर

1

यदि lxml "redefine" का समर्थन नहीं करता है, तो सबसे अच्छा विकल्प इसे ठीक करना और पैच सबमिट करना होगा। :)

विफल होने पर, वर्कअराउंड मास्टर.एक्सएसडी फ़ाइल को स्वयं पार्स करना होगा, और फिर एक्सटेंशन.एक्सएसडी से परिवर्तन लागू करें, और संयुक्त स्कीमा के साथ एक एकल xsd फ़ाइल आउटपुट करें।

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