java - Validate XML without having a specific XSD -
मैं एक XMLStreamReader
बनाते समय एक XML को वैध (वैध xml फ़ाइल) कोड> XMLInputFactory ।
मुझे पता है कि एक ऐसी संपत्ति है जिसे कारखाने javax.xml.stream.isValidating में सेट किया जा सकता है
एक विशिष्ट-कार्यान्वयन सत्यापन अनुमति देने के लिए ( Xml के मेरे मामले में) लेकिन मैं जावा 6 बिल्ड 43 (जेबोस एएपी 6.0) के साथ काम कर रहा हूं और अद्यतन नहीं कर सकता इसलिए यह मेरे लिए काम नहीं कर रहा है (कन्नन इश्यू)।
इसलिए अगर कोई भी एपीआई (स्टैक्स के अलावा) जो कि एक ही काम कर सकता है जो महान होगा! कृपया मुझे बताएं कि कुछ स्पष्ट रूप से स्पष्ट नहीं है।
आप आईबीएम द्वारा जावा एक्सएमएल सत्यापन API के लिए कोशिश कर सकते हैं या आप javax.xml.validation
ex:
आयात का उपयोग कर सकते हैं javax.xml.XMLConstants; आयात javax.xml.transform.Source; आयात javax.xml.transform.stream.StreamSource; आयात javax.xml.validation। *; ... यूआरएल स्कीमाफाइल = नया यूआरएल ("http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"); स्रोत xmlFile = नया स्ट्रीमसोर्स (नया फ़ाइल ("web.xml")); स्कीमा फैक्टर स्कीमाफैक्ट्री = स्कीमाफैक्चरर। न्यू इन्स्टेंस (XMLConstants.W3C_XML_SCHEMA_NS_URI); स्कीमा स्कीमा = स्कीमाफ़ैक्टर। एनवेस्कैमा (स्कीमाफ़ाइल); मान्यकर्ता सत्यापनकर्ता = स्कीमा.न्यूवैद्येटर (); कोशिश {validator.validate (xmlFile); System.out.println (xmlFile.getSystemId () + "मान्य है"); } पकड़ (SAXException ई) {System.out.println (xmlFile.getSystemId () + "मान्य नहीं है"); System.out.println ("कारण:" + e.getLocalizedMessage ()); }
संपादित किया गया:
स्कीमा फैक्ट्री फैक्टरी = स्कीमाफैक्चर। न्यू ईन्स्टेंस ("http://www.w3.org/2001 / XMLSchema "); फ़ाइल स्कीमाफ़ाइल = नया फ़ाइल ("schema.xsd"); स्कीमा xsdScheme = factory.newSchema (स्कीमाफ़ाइल); सत्यापनकर्ता मान्यकर्ता = xsdScheme.newValidator (); स्रोत स्रोत = नया स्ट्रीमसोर्स (xmlfile); validator.validate (स्रोत);
एक लिंक जो मैं SO पर पाया
Comments
Post a Comment