OpenJDK 8 - javax.xml.validation

पैकेज javax.xml.validation




openjdk

पैकेज javax.xml.validation

यह पैकेज XML दस्तावेजों के सत्यापन के लिए एक एपीआई प्रदान करता है।

देखें: Description

कक्षा सारांश
कक्षा विवरण
Schema

व्याकरण के अपरिवर्तनीय इन-मेमोरी प्रतिनिधित्व।

SchemaFactory

फैक्ट्री जो Schema ऑब्जेक्ट बनाती है। सत्यापन एपीआई के लिए प्रवेश-बिंदु।

SchemaFactoryLoader

फैक्ट्री जो SchemaFactory

TypeInfoProvider

यह वर्ग ValidatorHandler द्वारा निर्धारित प्रकार की जानकारी तक पहुँच प्रदान करता है।

Validator

एक प्रोसेसर जो Schema खिलाफ एक्सएमएल दस्तावेज़ की जांच करता है।

ValidatorHandler

स्ट्रीमिंग सत्यापनकर्ता जो SAX स्ट्रीम पर काम करता है।

त्रुटि सारांश
त्रुटि विवरण
SchemaFactoryConfigurationError

जब स्कीमा फैक्टरियों के साथ कॉन्फ़िगरेशन में कोई समस्या मौजूद हो, तो उसे फेंक दें।

पैकेज javax.xml.validation विवरण

यह पैकेज XML दस्तावेजों के सत्यापन के लिए एक एपीआई प्रदान करता है। सत्यापन यह सत्यापित करने की प्रक्रिया है कि XML दस्तावेज़ एक निर्दिष्ट XML स्कीमा का एक उदाहरण है। एक XML स्कीमा सामग्री मॉडल (जिसे व्याकरण या शब्दावली भी कहा जाता है) को परिभाषित करता है जो इसके उदाहरण दस्तावेजों का प्रतिनिधित्व करेगा।

XML स्कीमा बनाने के लिए कई लोकप्रिय तकनीकें उपलब्ध हैं। सबसे लोकप्रिय में से कुछ में शामिल हैं:

  • दस्तावेज़ प्रकार परिभाषा (DTD) - XML ​​की अंतर्निहित स्कीमा भाषा।
  • W3C XML स्कीमा (WXS) - एक वस्तु-उन्मुख XML स्कीमा भाषा। WXS एक XML दस्तावेज़ के चरित्र डेटा को बाधित करने के लिए एक प्रकार की प्रणाली भी प्रदान करता है। WXS को वर्ल्ड वाइड वेब कंसोर्टियम (W3C) द्वारा बनाए रखा गया है और यह W3C की सिफारिश है (जो कि एक पुष्टि W3C मानक विनिर्देश है)।
  • RELAX NG (RNG) - एक पैटर्न-आधारित, उपयोगकर्ता के अनुकूल XML स्कीमा भाषा। RNG स्कीमा XML वर्ण डेटा को बाधित करने के लिए प्रकारों का उपयोग कर सकते हैं। RNG को संगठन द्वारा संरचित सूचना मानकों (OASIS) की उन्नति के लिए रखा गया है और यह OASIS और ISO (मानकीकरण के लिए अंतर्राष्ट्रीय संगठन) दोनों है।
  • Schematron - एक नियम-आधारित XML स्कीमा भाषा। जबकि DTD, WXS, और RNG एक सामग्री मॉडल की संरचना को व्यक्त करने के लिए डिज़ाइन किए गए हैं, स्कैमेट्रॉन को व्यक्तिगत नियमों को लागू करने के लिए डिज़ाइन किया गया है जो अन्य स्कीमा भाषाओं के साथ व्यक्त करना मुश्किल या असंभव है। स्कैमेट्रॉन का उद्देश्य संरचनात्मक स्कीमा भाषा में लिखे गए स्कीमा जैसे कि पूर्वोक्त है को पूरक करना है। स्कैमेट्रॉन एक आईएसओ मानक बनने की प्रक्रिया में है।

JAXP के पिछले संस्करणों ने एक XML पार्सर की एक विशेषता के रूप में सत्यापन का समर्थन किया, जो कि SAXParser या DocumentBuilder उदाहरण द्वारा दर्शाया गया है।

JAXP सत्यापन API किसी XML दस्तावेज़ के पार्सिंग से इंस्टेंस दस्तावेज़ के सत्यापन को कम कर देता है। यह कई कारणों से फायदेमंद है, जिनमें से कुछ हैं:

  • अतिरिक्त स्कीमा लैंगगेज के लिए समर्थन। JDK 1.5 के रूप में, दो सबसे लोकप्रिय JAXP पार्सर कार्यान्वयन, क्रिमसन और Xerces, केवल उपलब्ध XML स्कीमा भाषाओं के सबसेट का समर्थन करते हैं। सत्यापन एपीआई एक मानक तंत्र प्रदान करता है जिसके माध्यम से आवेदन विशिष्ट सत्यापन पुस्तकालयों का लाभ उठा सकते हैं जो अतिरिक्त स्कीमा भाषाओं का समर्थन करते हैं।
  • एक्सएमएल उदाहरण और स्कीमा का आसान रनटाइम युग्मन। JAXP पार्सरों के साथ सत्यापन के लिए उपयोग करने के लिए एक स्कीमा के स्थान को निर्दिष्ट करना भ्रामक हो सकता है। सत्यापन API इस प्रक्रिया को सरल बनाता है (नीचे example देखें)।

उदाहरण का उपयोग करें निम्न उदाहरण सत्यापन API के साथ XML दस्तावेज़ को मान्य करने को दर्शाता है (पठनीयता के लिए, कुछ अपवाद हैंडलिंग नहीं दिखाया गया है):

// parse an XML document into a DOM tree
    DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    Document document = parser.parse(new File("instance.xml"));

    // create a SchemaFactory capable of understanding WXS schemas
    SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

    // load a WXS schema, represented by a Schema instance
    Source schemaFile = new StreamSource(new File("mySchema.xsd"));
    Schema schema = factory.newSchema(schemaFile);

    // create a Validator instance, which can be used to validate an instance document
    Validator validator = schema.newValidator();

    // validate the DOM tree
    try {
        validator.validate(new DOMSource(document));
    } catch (SAXException e) {
        // instance document is invalid!
    }

JAXP पार्सिंग एपीआई को मान्यता एपीआई के साथ एकीकृत किया गया है। अनुप्रयोग मान्यता API के साथ एक Schema बना सकते हैं और इसे DocumentBuilderFactory.setSchema(Schema) और SAXParserFactory.setSchema(Schema) विधियों का उपयोग करके किसी DocumentBuilderFactory.setSchema(Schema) SAXParserFactory या SAXParserFactory उदाहरण के साथ जोड़ सकते हैं। आपको किसी पार्सर फैक्ट्री पर स्कीमा और कॉल setValidating(true) दोनों नहीं करना चाहिए । पूर्व तकनीक नए सत्यापन एपीआई का उपयोग करने के लिए पार्सर्स का कारण बनेगी; बाद वाले पार्सर्स को अपनी आंतरिक सत्यापन सुविधाओं का उपयोग करने के लिए प्रेरित करेंगे। इन दोनों विकल्पों को एक साथ चालू करने से या तो अनावश्यक व्यवहार या त्रुटि की स्थिति पैदा हो जाएगी।