2009-08-27 6 views
6

एक स्रोत xml दस्तावेज़ है जो उपसर्ग और डिफ़ॉल्ट नामस्थान वाले नामस्थान का उपयोग करता है। जब मैं इसे एक्सएसएलटी दस्तावेज़ का उपयोग करके बदलता हूं, परिणामी अनुवादित XML दस्तावेज़ गलत है, यानी, स्रोत xml दस्तावेज़ से तत्व डेटा गुम है।एक्सएसएलटी के साथ समस्या जहां स्रोत xml दस्तावेज़ डिफ़ॉल्ट नामस्थान का उपयोग करता है

जब मैं स्रोत xml दस्तावेज़ से "डिफ़ॉल्ट नामस्थान" को हटाता हूं, तो रूपांतरण अपेक्षा के अनुसार काम करता है।

प्रश्न: स्रोत xml दस्तावेज़ से डिफ़ॉल्ट नेमस्पेस को संपादित करने की आवश्यकता के बिना समस्या का समाधान करने का कोई तरीका है? यही है, एक्सएसएलटी दस्तावेज़ का समाधान जोड़ें।

एक्सएमएल दस्तावेज़:

<MyElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
      xmlns="http://www.zolldata.com/UDX"> 

जहां समस्या डिफ़ॉल्ट नाम स्थान xmlns = "http://www.zolldata.com/UDX"

उत्तर

4

ही डिफ़ॉल्ट नाम स्थान XSLT दस्तावेज़ में निर्दिष्ट करें अपने चयनकर्ताओं करते हैं है उपसर्ग का उपयोग न करें, या XSLT में सभी चयनकर्ताओं के लिए उपसर्ग का उपयोग करें, लेकिन उन्हें अपने XML दस्तावेज़ के डिफ़ॉल्ट नामस्थान से बांधना न भूलें।

+1

मैं अपने एक्सएसएलटी दस्तावेज़ में डिफ़ॉल्ट नामस्थान, xmlns = "http://www.zolldata.com/UDX" जोड़ दूंगा। मैं कैसे बांधूं? मैं बाध्यकारी क्या हूँ? – Larry

+0

मैंने आपके पहले सुझाव की कोशिश की और यह काम नहीं करता है। ऐसा लगता है कि एक्सएसएलटी काम करने के लिए डिफ़ॉल्ट नामस्थान एक्सएमएल से हटा दिया जाना चाहिए (या ठीक से prefixed)। लैरी की तरह मुझे नहीं पता कि आपका क्या मतलब है "... उन्हें डिफ़ॉल्ट नामस्थान में बांधना न भूलें"। मुझे लगता है कि इसका मतलब है कि वास्तव में इसे "xmlns: z = ..." से उपसर्ग करना है, जो केवल तभी काम करता है जब आप किसी मौजूदा सिस्टम से निपटने के बजाय xml प्रतिक्रिया को बदलने वाले हैं, जो डिफ़ॉल्ट नामस्थान का वैध रूप से उपयोग करता है। – Justin

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