⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unmarshallerimpl.java

📁 这是一个基于计算网格的web service。它用java编写。一旦安装完成
💻 JAVA
字号:
//// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v1.0.4-b18-fcs // See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> // Any modifications to this file will be lost upon recompilation of the source schema. // Generated on: 2005.07.17 at 02:33:01 EDT //package jwsgrid.xsd.schedqueryresult.impl.runtime;import java.io.IOException;import javax.xml.bind.DatatypeConverter;import javax.xml.bind.JAXBException;import javax.xml.bind.UnmarshallerHandler;import javax.xml.bind.helpers.AbstractUnmarshallerImpl;import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Node;import org.xml.sax.InputSource;import org.xml.sax.SAXException;import org.xml.sax.XMLReader;import org.xml.sax.helpers.DefaultHandler;import com.sun.xml.bind.DatatypeConverterImpl;import com.sun.xml.bind.unmarshaller.DOMScanner;import com.sun.xml.bind.unmarshaller.InterningXMLReader;import com.sun.xml.bind.validator.DOMLocator;import com.sun.xml.bind.validator.Locator;import com.sun.xml.bind.validator.SAXLocator;/** * Default Unmarshall implementation. *  * <p> * This class can be extended by the generated code to provide * type-safe unmarshall methods. * * @author *  <a href="mailto:kohsuke.kawaguchi@sun.com">Kohsuke KAWAGUCHI</a> */public class UnmarshallerImpl extends AbstractUnmarshallerImpl{    /** parent JAXBContext object that created this unmarshaller */    private DefaultJAXBContextImpl context = null;        private final GrammarInfo grammarInfo;        public UnmarshallerImpl( DefaultJAXBContextImpl context, GrammarInfo gi ) {                this.context = context;        this.grammarInfo = gi;        // initialize datatype converter with ours        DatatypeConverter.setDatatypeConverter(DatatypeConverterImpl.theInstance);    }        public void setValidating(boolean validating) throws JAXBException {            super.setValidating(validating);            if(validating==true)                // make sure that we can actually load the grammar.                // this could be a lengthy operation if your schema is big.                context.getGrammar();    }        public UnmarshallerHandler getUnmarshallerHandler() {                // use InterningUnmarshallerHandler since we don't know        // if the caller will intern Strings before firing SAX events.                // we don't know the Locator to be used,        // but SAXLocator would always be a good default,        // as the source of SAX2 events can always set org.xml.sax.Locator.        return new InterningUnmarshallerHandler(                 createUnmarshallerHandler(new SAXLocator()));    }                /**     * Creates and configures a new unmarshalling pipe line.     * Depending on the setting, we put a validator as a filter.     *      * @return     *      A component that implements both UnmarshallerHandler     *      and ValidationEventHandler. All the parsing errors     *      should be reported to this error handler for the unmarshalling     *      process to work correctly.     *      * @param locator     *      The object that is responsible to obtain the source     *      location information for {@link ValidationEvent}s.     */    private SAXUnmarshallerHandler createUnmarshallerHandler( Locator locator ) {        SAXUnmarshallerHandler unmarshaller =            new SAXUnmarshallerHandlerImpl( this, grammarInfo );        try {                        // use the simple check to determine if validation is on            if( isValidating() ) {                 // if the validation is turned on, insert another                // component into the event pipe line.                unmarshaller = ValidatingUnmarshaller.create(                    context.getGrammar(), unmarshaller, locator );            }        } catch( JAXBException e ) {            // impossible since we've already made sure that a grammar is accessible.            e.printStackTrace();        }                return unmarshaller;    }    protected Object unmarshal( XMLReader reader, InputSource source ) throws JAXBException {                SAXLocator locator = new SAXLocator();        SAXUnmarshallerHandler handler = createUnmarshallerHandler(locator);                reader = InterningXMLReader.adapt(reader);                reader.setContentHandler(handler);        // saxErrorHandler will be set by the createUnmarshallerHandler method.        // configure XMLReader so that the error will be sent to it.        // This is essential for the UnmarshallerHandler to be able to abort        // unmarshalling when an error is found.        //        // Note that when this XMLReader is provided by the client code,        // it might be already configured to call a client error handler.        // This will clobber such handler, if any.        //        // Ryan noted that we might want to report errors to such a client        // error handler as well.        reader.setErrorHandler(            new ErrorHandlerAdaptor(handler,locator));                try {            reader.parse(source);        } catch( IOException e ) {            throw new JAXBException(e);        } catch( SAXException e ) {            throw createUnmarshalException(e);        }                Object result = handler.getResult();                // avoid keeping unnecessary references too long to let the GC        // reclaim more memory.        // setting null upsets some parsers, so use a dummy instance instead.        reader.setContentHandler(dummyHandler);        reader.setErrorHandler(dummyHandler);                return result;    }        public final Object unmarshal( Node node ) throws JAXBException {        try {            DOMScanner scanner = new DOMScanner();            UnmarshallerHandler handler = new InterningUnmarshallerHandler(                 createUnmarshallerHandler(new DOMLocator(scanner)));                        if(node instanceof Element)                scanner.parse((Element)node,handler);            else            if(node instanceof Document)                scanner.parse(((Document)node).getDocumentElement(),handler);            else                // no other type of input is supported                throw new IllegalArgumentException();                        return handler.getResult();        } catch( SAXException e ) {            throw createUnmarshalException(e);        }    }        private static final DefaultHandler dummyHandler = new DefaultHandler();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -