org.priha.xml
Class XMLImport
java.lang.Object
org.xml.sax.helpers.DefaultHandler
org.priha.xml.XMLImport
- All Implemented Interfaces:
- org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler
public class XMLImport
- extends org.xml.sax.helpers.DefaultHandler
Does the chunky work of importing stuff into the repository. Always requires
a Session within which the stuff is sent to the repo; however, you can
either ask the importer to commit stuff on its own, or just skip it.
Method Summary |
void |
characters(char[] ch,
int start,
int length)
Parse the character data coming in; that is, create the Values which are put
into the properties. |
void |
doImport(java.io.InputStream xmlDoc)
|
void |
endElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName)
|
void |
startElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName,
org.xml.sax.Attributes attrs)
|
void |
startPrefixMapping(java.lang.String prefix,
java.lang.String uri)
|
Methods inherited from class org.xml.sax.helpers.DefaultHandler |
endDocument, endPrefixMapping, 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 |
XMLImport
public XMLImport(SessionImpl session,
boolean immediateCommit,
Path startPath,
int uuidBehavior)
throws javax.jcr.RepositoryException
- Throws:
javax.jcr.RepositoryException
doImport
public void doImport(java.io.InputStream xmlDoc)
throws javax.xml.parsers.ParserConfigurationException,
org.xml.sax.SAXException,
java.io.IOException
- Throws:
javax.xml.parsers.ParserConfigurationException
org.xml.sax.SAXException
java.io.IOException
startElement
public void startElement(java.lang.String uri,
java.lang.String localName,
java.lang.String qName,
org.xml.sax.Attributes attrs)
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
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
startPrefixMapping
public void startPrefixMapping(java.lang.String prefix,
java.lang.String uri)
throws org.xml.sax.SAXException
- Specified by:
startPrefixMapping
in interface org.xml.sax.ContentHandler
- Overrides:
startPrefixMapping
in class org.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
characters
public void characters(char[] ch,
int start,
int length)
throws org.xml.sax.SAXException
- Parse the character data coming in; that is, create the Values which are put
into the properties.
Unfortunately, this method handles Binary properties by reading them completely
into memory as a String, and turning that into a byte array, essentially taking
3x the amount of memory that what it should. Better solutions are welcomed...
- Specified by:
characters
in interface org.xml.sax.ContentHandler
- Overrides:
characters
in class org.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException