fedora.server.storage.translation
Class FOXMLDODeserializer
java.lang.Object
org.xml.sax.helpers.DefaultHandler
fedora.server.storage.translation.FOXMLDODeserializer
- All Implemented Interfaces:
- Constants, DODeserializer, org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler
public class FOXMLDODeserializer
- extends org.xml.sax.helpers.DefaultHandler
- implements DODeserializer, Constants
Deserializes XML digital object encoded in accordance with
the Fedora Object XML (FOXML) schema defined at:
http://www.fedora.info/definitions/1/0/foxml1-0.xsd.
The FOXML XML is parsed using SAX and is instantiated into a Fedora
digital object in memory (see fedora.server.types.DigitalObject).
- Version:
- $Id: FOXMLDODeserializer.java 7438 2008-07-08 06:41:33Z pangloss $
- Author:
- payette@cs.cornell.edu
|
Field Summary |
static int |
QUERY_ALWAYS
Always query web server for content size and MIME type. |
static int |
QUERY_IF_UNDEFINED
Query web server for content size and MIME type if either are undefined. |
static int |
QUERY_NEVER
Never query web server for content size and MIME type |
| Fields inherited from interface fedora.common.Constants |
ACTION, BDEF, BMECH, DATASTREAM, DC, DISSEMINATOR, ENVIRONMENT, FEDORA, FEDORA_HOME, FEDORA_SYSTEM_DEF_PID, FEDORA_SYSTEM_DEF_URI, HTTP_REQUEST, MODEL, OBJECT, RDF, RECOVERY, RELS_EXT, RESOURCE, SUBJECT, TUCANA, VIEW, XSD |
|
Constructor Summary |
FOXMLDODeserializer()
|
FOXMLDODeserializer(java.lang.String characterEncoding)
Initializes by setting up a parser that doesn't validate and never
queries the server for values of DSSize and DSMIME. |
FOXMLDODeserializer(java.lang.String characterEncoding,
boolean validate,
int queryBehavior)
Initializes by setting up a parser that validates only if validate=true. |
|
Method Summary |
void |
characters(char[] ch,
int start,
int length)
|
void |
deserialize(java.io.InputStream in,
DigitalObject obj,
java.lang.String encoding,
int transContext)
|
void |
endElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName)
|
void |
endPrefixMapping(java.lang.String prefix)
|
DODeserializer |
getInstance()
|
void |
startElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName,
org.xml.sax.Attributes a)
|
void |
startPrefixMapping(java.lang.String prefix,
java.lang.String uri)
|
| Methods inherited from class org.xml.sax.helpers.DefaultHandler |
endDocument, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, unparsedEntityDecl, warning |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
QUERY_NEVER
public static int QUERY_NEVER
- Never query web server for content size and MIME type
QUERY_IF_UNDEFINED
public static int QUERY_IF_UNDEFINED
- Query web server for content size and MIME type if either are undefined.
QUERY_ALWAYS
public static int QUERY_ALWAYS
- Always query web server for content size and MIME type.
FOXMLDODeserializer
public FOXMLDODeserializer()
throws javax.xml.parsers.FactoryConfigurationError,
javax.xml.parsers.ParserConfigurationException,
org.xml.sax.SAXException,
java.io.UnsupportedEncodingException
- Throws:
javax.xml.parsers.FactoryConfigurationError
javax.xml.parsers.ParserConfigurationException
org.xml.sax.SAXException
java.io.UnsupportedEncodingException
FOXMLDODeserializer
public FOXMLDODeserializer(java.lang.String characterEncoding)
throws javax.xml.parsers.FactoryConfigurationError,
javax.xml.parsers.ParserConfigurationException,
org.xml.sax.SAXException,
java.io.UnsupportedEncodingException
- Initializes by setting up a parser that doesn't validate and never
queries the server for values of DSSize and DSMIME.
- Throws:
javax.xml.parsers.FactoryConfigurationError
javax.xml.parsers.ParserConfigurationException
org.xml.sax.SAXException
java.io.UnsupportedEncodingException
FOXMLDODeserializer
public FOXMLDODeserializer(java.lang.String characterEncoding,
boolean validate,
int queryBehavior)
throws javax.xml.parsers.FactoryConfigurationError,
javax.xml.parsers.ParserConfigurationException,
org.xml.sax.SAXException,
java.io.UnsupportedEncodingException
- Initializes by setting up a parser that validates only if validate=true.
The character encoding of the XML is auto-determined by sax, but
we need it for when we set the byte[] in DatastreamXMLMetadata, so
we effectively, we need to also specify the encoding of the datastreams.
this could be different than how the digital object xml was encoded,
and this class won't care. However, the caller should keep track
of the byte[] encoding if it plans on doing any translation of
that to characters (such as in xml serialization)
- Throws:
javax.xml.parsers.FactoryConfigurationError
javax.xml.parsers.ParserConfigurationException
org.xml.sax.SAXException
java.io.UnsupportedEncodingException
getInstance
public DODeserializer getInstance()
throws RepositoryConfigurationException
- Specified by:
getInstance in interface DODeserializer
- Throws:
RepositoryConfigurationException
deserialize
public void deserialize(java.io.InputStream in,
DigitalObject obj,
java.lang.String encoding,
int transContext)
throws ObjectIntegrityException,
StreamIOException,
java.io.UnsupportedEncodingException
- Specified by:
deserialize in interface DODeserializer
- Throws:
ObjectIntegrityException
StreamIOException
java.io.UnsupportedEncodingException
startPrefixMapping
public void startPrefixMapping(java.lang.String prefix,
java.lang.String uri)
- Specified by:
startPrefixMapping in interface org.xml.sax.ContentHandler- Overrides:
startPrefixMapping in class org.xml.sax.helpers.DefaultHandler
endPrefixMapping
public void endPrefixMapping(java.lang.String prefix)
- Specified by:
endPrefixMapping in interface org.xml.sax.ContentHandler- Overrides:
endPrefixMapping in class org.xml.sax.helpers.DefaultHandler
startElement
public void startElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName,
org.xml.sax.Attributes a)
throws org.xml.sax.SAXException
- Specified by:
startElement in interface org.xml.sax.ContentHandler- Overrides:
startElement in class org.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
characters
public void characters(char[] ch,
int start,
int length)
- Specified by:
characters in interface org.xml.sax.ContentHandler- Overrides:
characters in class org.xml.sax.helpers.DefaultHandler
endElement
public void endElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName)
throws org.xml.sax.SAXException
- Specified by:
endElement in interface org.xml.sax.ContentHandler- Overrides:
endElement in class org.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException