मेरे पास जेएक्सबी एनोटेशन के साथ कुछ कक्षाएं हैं, मैंने कुछ उदाहरण बनाए हैं और मुझे अपनी एक्सएसडी फाइलों के खिलाफ उन्हें सत्यापित करने की आवश्यकता है। ऑब्जेक्ट अमान्य होने पर मुझे गलत जानकारी का विवरण प्राप्त करने में सक्षम होना चाहिए।जेएक्सबी वैलिडेटर से त्रुटि विवरण कैसे प्राप्त करें?
अभी तक मुझे भाग्य नहीं मिला है, मुझे इस वर्ग के बारे में पता है ValidationEventHandler लेकिन मैं इसे अनमारशर वर्ग के साथ उपयोग कर सकता हूं, समस्या यह है कि मुझे ऑब्जेक्ट को कच्चे एक्सएमएल को मान्य करना नहीं है।
MyClass myObject = new MyClass();
JAXBContext jaxbContext = JAXBContext.newInstance("x.y.z");
JAXBSource jaxbSource = new JAXBSource(jaxbContext, myObject);
SchemaFactory factory = SchemaFactory
.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Source schemaFile = new StreamSource(getClass().getClassLoader()
.getResourceAsStream("mySchema.xsd"));
Schema schema = factory.newSchema(schemaFile);
Validator validator = schema.newValidator();
validator.validate(jaxbSource);
इस कोड, काम करेंगे यह वस्तु को मान्य और, कुछ इस तरह के संदेश के साथ एक अपवाद फेंक देगा::
मैं इस कोड है
cvc पैटर्न-मान्य: मान '12345678901' पैटर्न के प्रकार 'आईडी' के लिए '\ घ {10}' सम्मान साथ पहलू-मान्य नहीं है।]
समस्या यह है कि मैं विशिष्ट की जरूरत है विवरण, एक स्ट्रिंग के साथ मुझे सभी संदेशों को पार्स करना होगा।
एक संभावित विकल्प के लिए यहां मौजूद है: http://stackoverflow.com/questions/11921190/how-to-get-the- तत्व-के-और-अमान्य-xml-file-with-fail-xsd-validation –
एक और आयनर मिला जो आपको दिखाता है कि वास्तविक अमान्य DOM तत्व कैसे प्राप्त करें http://stackoverflow.com/questions/8077437/how-can- i-मिल और अधिक जानकारी-ऑन-एक n-invalid-dom-element-through-the-validator # answer-8162185 –