All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.xml.bind.Unmarshaller Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2003, 2004  The Apache Software Foundation
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.

 */
package javax.xml.bind;

import javax.xml.transform.Source;

import org.w3c.dom.Node;
import org.xml.sax.InputSource;

/** 

A Unmarshaller is the opposite of the {@link Marshaller}: * It takes as input XML in either of several representations (byte or * character stream, DOM node, or a series of SAX events) and returns * a JAXB object with the same contents.

*

If the JAXB user demands, the Unmarshaller may also * validate the content tree that it sees.

* * @author JSR-31 * @since JAXB1.0 * @see JAXBContext * @see Marshaller * @see Validator */ public interface Unmarshaller { /**

This method takes opens the given file pFile * for input. The Unmarshaller reads the byte stream contained in * the file and converts it into an equivalent JAXB object.

* @param pFile The file being read. * @return The JAXB object read from the file. * @throws JAXBException An unexpected problem (for example an * IOException) occurred. * @throws UnmarshalException The JAXB object is invalid or could * not be read from the byte stream for similar reasons. * @throws IllegalArgumentException The parameter was null. */ public java.lang.Object unmarshal(java.io.File pFile) throws JAXBException; /**

The Unmarshaller reads the given byte stream * and converts it into an equivalent JAXB object.

* @param pStream The stream being read. * @return The JAXB object read from the byte stream. * @throws JAXBException An unexpected problem (for example an * IOException) occurred. * @throws UnmarshalException The JAXB object is invalid or could * not be read from the byte stream for similar reasons. * @throws IllegalArgumentException The parameter was null. */ public java.lang.Object unmarshal(java.io.InputStream pStream) throws JAXBException; /**

This method takes connects to the given pURL * and opens a byte stream for input. The Unmarshaller reads the * byte stream and converts it into an equivalent JAXB object.

* @param pURL The URL being read. * @return The JAXB object read from the URL. * @throws JAXBException An unexpected problem (for example an * IOException) occurred. * @throws UnmarshalException The JAXB object is invalid or could * not be read from the byte stream for similar reasons. * @throws IllegalArgumentException The parameter was null. */ public java.lang.Object unmarshal(java.net.URL pURL) throws JAXBException; /**

The Unmarshaller reads the byte stream or character * stream referred by the {@link org.xml.sax.InputSource} * and converts it into an equivalent JAXB object.

* @param pSource The {@link InputSource} referring to a byte or * character stream. It is recommended, that the system ID is * set. This may be required, if the XML in the stream refers * to external entities. * @return The JAXB object read from the byte or character stream. * @throws JAXBException An unexpected problem (for example an * IOException) occurred. * @throws UnmarshalException The JAXB object is invalid or could * not be read from the byte stream for similar reasons. * @throws IllegalArgumentException The parameter was null. */ public java.lang.Object unmarshal(InputSource pSource) throws JAXBException; /**

The Unmarshaller converts the given node into an equivalent * JAXB object.

* @param pNode The node to convert. The JAXB provider must support * documents and elements. Other node types may not work * (document fragments) or cannot work (attributes, text nodes, * and so on). * @return The JAXB object read from the DOM node. * @throws JAXBException An unexpected problem occurred. * @throws UnmarshalException The JAXB object is invalid or could * not be read for similar reasons. * @throws IllegalArgumentException The parameter was null. */ public java.lang.Object unmarshal(Node pNode) throws JAXBException; /**

The Unmarshaller reads the XML representation from the given * {@link Source} and converts it into an equivalent JAXB object.

*

The JAXB provider must support at least * {@link javax.xml.transform.sax.SAXSource}, * {@link javax.xml.transform.dom.DOMSource}, and * {@link javax.xml.transform.stream.StreamSource}. A possible * implementation could validate whether the argument is actually * an instance of these subinterfaces. If so, it might simply * act like * {@link #getUnmarshallerHandler()}, * {@link #unmarshal(org.w3c.dom.Node)}, * {@link #unmarshal(java.io.InputStream)}, or * {@link #unmarshal(org.xml.sax.InputSource)}, respectively.

*

Note: If you are not using the standard JAXP * mechanism for obtaining an {@link org.xml.sax.XMLReader}, * then you might create your own SAX parser and invoke the * pSource arguments * {@link javax.xml.transform.sax.SAXSource#setXMLReader(org.xml.sax.XMLReader)}. * The JAXB provider will detect and use your SAX parser.

* * @return The JAXB object read from the DOM node. * @param pSource The {@link Source} being read. * @throws JAXBException An unexpected problem occurred. * @throws UnmarshalException The JAXB object is invalid or could * not be read for similar reasons. * @throws IllegalArgumentException The parameter was null. */ public java.lang.Object unmarshal(Source pSource) throws JAXBException; /**

Returns a SAX 2 {@link org.xml.sax.ContentHandler}, which is * able to parse a SAX event stream and convert it into a JAXB * object. This is particularly useful in a stack of SAX * handlers. (Think of Apache Cocoon.)

*

Note: The JAXB provider may choose to return the * same handler again, if the method is invoked more than once. * In other words, if you need to have multiple handlers (for * example, because you have multiple threads), then you should * create multiple Unmarshallers.

*/ public UnmarshallerHandler getUnmarshallerHandler() throws JAXBException; /**

Sets whether the Unmarshaller is validating * the objects that it reads. The default is false.

*

Note: A validating unmarshaller will rarely use * a validating SAX parser by default! It does so, because the * SAX parsers validation and the Unmarshallers builtin * validation would most probably validate the same things, * resulting in no additional safety at the cost of wasting * performance. Second, a SAX parser is not always in use. * For example, you do not need a parser when * converting a DOM Node. If you insist in a validating XML * parser, then you should create your own * {@link org.xml.sax.XMLReader} and use the method * {@link #unmarshal(javax.xml.transform.Source)}.

* @param pValidating Whether the Unmarshaller should validate * or not. * @throws JAXBException Setting the property failed. */ public void setValidating(boolean pValidating) throws JAXBException; /**

Sets whether the Unmarshaller is validating * the objects that it reads. The default is false.

* @see #setValidating(boolean) * @return True, if the Unmarshaller is validating the objects * that it reads, false otherwise. * @throws JAXBException Fetching the property value failed. */ public boolean isValidating() throws JAXBException; /**

An application may customize the Unmarshallers behaviour * in case of validation problems by supplying a custom handler * for validation events. The default handler will trigger an * exception in case of errors and fatal errors.

* @param pHandler The custom event handler or null to restore * the default event handler. * @throws JAXBException Setting the handler failed. */ public void setEventHandler(ValidationEventHandler pHandler) throws JAXBException; /**

If the JAXB application has registered a custom handler * for validation events, returns that handler. Otherwise returns * the default handler, which is triggering an exception in case * of errors and fatal errors.

*/ public ValidationEventHandler getEventHandler() throws JAXBException; /**

Sets the unmarshaller property pName to the value * pValue. Note, that the value type depends on the * property being set.

* @param pName The property name. * @throws PropertyException An error occurred while processing the property. * @throws IllegalArgumentException The name parameter was null. */ public void setProperty(String pName, Object pValue) throws PropertyException; /**

Returnss the unmarshaller property pName to the value * pValue. Note, that the value type depends on the * property being set.

* @param pName The property name. * @throws PropertyException An error occurred while processing the property. * @throws IllegalArgumentException The name parameter was null. */ public java.lang.Object getProperty(String pName) throws PropertyException; }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy