2011-08-29 14 views
7

के साथ सैक्सन त्रुटि जब भी मेरे पास एक्सएसएलटी आयात विवरण होता है तो सैक्सन प्रोसेसर मुझे एक त्रुटि देता है। यहाँ त्रुटि है:एक्सएसएलटी आयात विवरण

XTSE0165: I/O error reported by XML parser processing file: shared/test.xslt (The system cannot find the path specified): 

यहाँ कैसे मेरी XSLT दस्तावेज़ लग रहा है की तरह है:

<?xml version='1.0' encoding='UTF-8'?> 

<xsl:stylesheet version='2.0' 
    xmlns:xsl='http://www.w3.org/1999/XSL/Transform' 
    xmlns:fn='http://www.w3.org/2005/02/xpath-functions' 
    xmlns:xs='http://www.w3.org/2001/XMLSchema' 
    > 

    <xsl:import href="shared/test.xslt"/> 

... 

मेरे जावा कोड

TransformerFactory transformerFactory = TransformerFactoryImpl.newInstance(); 

transformerFactory.setURIResolver(uriResolver); //my own custom URI resolver 

Transformer transformer = transformerFactory.newTransformer(new StreamSource(xsltInputStream)); //this is where the error occurs when I debug! 

यूआरआई समाधानकर्ता वर्ग शुरू हो रहा कभी नहीं रही है! यह ऊपर नए ट्रांसफॉर्मर() विधि पर चॉकलेट करता है .... मैंने XsltCompiler, आदि की कोशिश की और एक ही चीज़ ... अगर मैं आयात विवरण हटा देता हूं, तो सब कुछ काम करता है !! यह फ़ाइल को ठीक करने के लिए फ़ाइल नहीं मिल पा रहा है, लेकिन यही कारण है कि मेरे पास फ़ाइल का पता लगाने में मदद करने के लिए रिज़ॉल्वर क्लास है लेकिन यह कभी भी रिज़ॉलर को ट्रिगर नहीं करता है और फ़ाइल को आयात करने में विफल रहता है!

मैं इसे कैसे हल करूं?

+0

आप कैसे जानते हैं कि आपके URIResolver को नहीं कहा जा रहा है? अपने URIResolver कार्यान्वयन के लिए कोड दिखाएं। –

उत्तर

7

आपको लोड होने वाले XSLT के StreamSource के लिए आपको set the System ID की आवश्यकता है।

जब आप StreamSource से लोड करते हैं, तो यह नहीं पता कि आपका एक्सएसएलटी "रहता है" और रिश्तेदार पथों को हल करने का निर्धारण करने में कठिनाई होती है।

StreamSource source = new StreamSource(xsltInputStream); 
source.setSystemId(PATH_TO_THE_XSLT_FILE_ON_THE_FILESYSTEM_OR_URL); 
Transformer transformer = transformerFactory.newTransformer(source); 
+0

सही उत्तर। xsl: आयात करने के लिए शायद संभवतः काम किया जा सकता है जब कोई यूआरआई नहीं है, बशर्ते एक यूआरआईआरसोल्वर है, लेकिन केवल कठिनाई के साथ, नियम के कारण जो कहता है कि आपके पास एक ही पूर्ण यूआरआई के लिए दो आयात हैं, तो आपको वही मॉड्यूल वापस मिल जाएगा। –

+0

@ मैड्स हैंनसेन, धन्यवाद। वह काम किया। फिर भी विचित्र हालांकि यूआरआईआरसोल्वर भी ट्रिगर नहीं हुआ था। – Ayyoudy

+0

लेकिन क्या करना है यदि xslt फ़ाइल जार फ़ाइल में संसाधनों के अंतर्गत है? मैं इसे ठीक से नहीं चल रहा हूं ... – YaP

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