2012-11-30 147 views
5

एक XML फ़ाइल है कि एक DOCTYPE, उदाहरण के लिए struts.xml फ़ाइल लेने की घोषणा के साथ:क्या जावा सैक्स पार्सर वास्तव में इंटरनेट से डीटीडी पुनर्प्राप्त करता है?

जावा SAX प्रसंस्करण वास्तव में प्रदान किए गए URL से DTD मिल जाना है?

उत्तर

4

कई (अधिकांश) कार्यान्वयन, तकनीकी रूप से, अगर मुझे सही याद है, तो स्थान को यूआरआई के रूप में व्याख्या करने के लिए यूआरएल नहीं माना जाएगा।

यदि आप इसे स्थानीय रूप से हल करना चाहते हैं, तो EntityResolver इंटरफ़ेस पर एक नज़र डालें।

+0

तो, इंटरनेट से पहले यह कहां मिलेगा? मेरा मतलब है, डिक्टाइप संदर्भ एक http यूआरएल है; क्या इसे क्लासपाथ लुकअप में बदलने के लिए कोई तर्क है? मैंने देखा कि स्ट्रैट्स जार में उनके अंदर डीआईडी ​​है। – chad

+0

खैर, डीटीडी इंटरनेट से पहले मौजूद नहीं था :-) वैसे भी, डॉक्टरेट संदर्भ एक http यूआरएल की तरह दिखता है, लेकिन यह सिर्फ सम्मेलन है - यह वास्तव में एक यूआरआई है (एक अंतर है), और यह आवश्यक नहीं है कि एक वैध यूआरएल । मैंने कई सालों में स्ट्रूट्स का उपयोग नहीं किया है, लेकिन मुझे लगता है कि इसमें डीटीडी शामिल है और स्थानीय स्तर पर उन्हें हल करने के लिए एंटिटी रीसोलवर का उपयोग करता है। – GreyBeardedGeek

2

Xerces documentation के आधार पर, पार्सर इंटरनेट से फ़ाइल डाउनलोड करने का प्रयास कर सकता है जब सत्यापन चालू है। लेकिन मुझे सच में लगता है कि यह पार्सर से पार्सर में बदल सकता है, क्योंकि लाइब्रेरी स्थानीय कैश, प्रॉक्सी सर्वर या जो कुछ भी उपयोग करने का निर्णय ले सकती है।

+0

मैंने देखा कि। मुझे और कहां के बारे में कोई और जानकारी नहीं मिली, और किस क्रम में, यह डीटी को खोजने का प्रयास करेगा। फाइल सिस्टम? क्लासपाथ? – chad

+1

मुझे लगता है, चूंकि यह एक कार्यान्वयन विवरण है, इसलिए बेहतर दस्तावेज़ नहीं है कि स्रोत कोड और डीबगर – Raffaele

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