Class SAX2RDF
- java.lang.Object
-
- org.xml.sax.helpers.DefaultHandler
-
- org.apache.jena.rdfxml.xmlinput.impl.XMLHandler
-
- org.apache.jena.rdfxml.xmlinput.impl.SAX2RDFImpl
-
- org.apache.jena.rdfxml.xmlinput.SAX2RDF
-
- All Implemented Interfaces:
ARPConfig
,ARPErrorNumbers
,Names
,org.xml.sax.ContentHandler
,org.xml.sax.DTDHandler
,org.xml.sax.EntityResolver
,org.xml.sax.ErrorHandler
,org.xml.sax.ext.LexicalHandler
- Direct Known Subclasses:
SAX2Model
public class SAX2RDF extends SAX2RDFImpl implements ARPConfig
Allows connecting an arbitrary source of SAX events with ARP.
For use with a DOM tree, either use
DOM2Model
or see The Java Developer's Almanac for a discussion of how to transform a DOM into a source of SAX events.The use pattern is to create and initialize one of these, then set it as the content, lexical and error handler for some source of SAX events (e.g. from a parser). The parser must be configured to use namespaces, and namespace prefixes. This initializing can be done for XMLReaders using
installHandlers(org.xml.sax.XMLReader, org.apache.jena.rdfxml.xmlinput.impl.XMLHandler)
.To build a Jena model it is better to use
SAX2Model
. The documentation here, covers usage both using the subclassSAX2Model
, and not.This class does not support multithreaded SAX sources, nor IO interruption.
There is further documentation: here.
-
-
Field Summary
-
Fields inherited from class org.apache.jena.rdfxml.xmlinput.impl.XMLHandler
nullScopeHandler, nullStatementHandler
-
Fields inherited from interface org.apache.jena.rdfxml.xmlinput.ARPErrorNumbers
EM_ERROR, EM_FATAL, EM_IGNORE, EM_WARNING, ERR_ABOUTEACH_NOT_TOPLEVEL, ERR_BAD_RDF_ATTRIBUTE, ERR_BAD_RDF_ELEMENT, ERR_ENCODING_MISMATCH, ERR_GENERIC_IO, ERR_INTERNAL_ERROR, ERR_INTERRUPTED, ERR_LI_AS_TYPE, ERR_NOT_WHITESPACE, ERR_RESOLVING_AGAINST_MALFORMED_BASE, ERR_RESOLVING_AGAINST_RELATIVE_BASE, ERR_RESOLVING_URI_AGAINST_NULL_BASE, ERR_SAX_ERROR, ERR_SAX_FATAL_ERROR, ERR_STRING_NOT_NORMAL_FORM_C, ERR_SYNTAX_ERROR, ERR_UNABLE_TO_RECOVER, ERR_URI_NOT_NORMAL_FORM_C, ERR_UTF_ENCODING, IGN_NO_BASE_URI_SPECIFIED, IGN_PRIVATE_XMLLANG, IGN_XMLBASE_SIGNIFICANT, IGN_XMLBASE_USED, WARN_BAD_NAME, WARN_BAD_NAMESPACE_URI, WARN_BAD_RDF_NAMESPACE_URI, WARN_BAD_XML, WARN_BAD_XML_NAMESPACE_URI, WARN_BAD_XMLLANG, WARN_BIG_FILE, WARN_DEPRECATED_XMLLANG, WARN_ENCODING_MISMATCH, WARN_IN_STRICT_MODE, WARN_LEGAL_REUSE_OF_ID, WARN_MALFORMED_URI, WARN_MALFORMED_XMLLANG, WARN_MINOR_INTERNAL_ERROR, WARN_NON_IANA_ENCODING, WARN_NONCANONICAL_IANA_NAME, WARN_NOT_RDF_NAMESPACE, WARN_PROCESSING_INSTRUCTION_IN_RDF, WARN_QNAME_AS_ID, WARN_RDF_NN_AS_TYPE, WARN_REDEFINITION_OF_ID, WARN_RELATIVE_NAMESPACE_URI_DEPRECATED, WARN_RELATIVE_URI, WARN_RESOLVING_URI_AGAINST_EMPTY_BASE, WARN_SAX_WARNING, WARN_STRING_COMPOSING_CHAR, WARN_STRING_NOT_NORMAL_FORM_C, WARN_UNKNOWN_PARSETYPE, WARN_UNKNOWN_RDF_ATTRIBUTE, WARN_UNKNOWN_RDF_ELEMENT, WARN_UNKNOWN_XML_ATTRIBUTE, WARN_UNQUALIFIED_ATTRIBUTE, WARN_UNQUALIFIED_ELEMENT, WARN_UNQUALIFIED_RDF_ATTRIBUTE, WARN_UNSUPPORTED_ENCODING, WARN_URI_COMPOSING_CHAR, WARN_XMLBASE_MISSING
-
Fields inherited from interface org.apache.jena.rdfxml.xmlinput.impl.Names
A_ABOUT, A_BADATTRS, A_BAGID, A_DATATYPE, A_DEPRECATED, A_ID, A_NODEID, A_PARSETYPE, A_RESOURCE, A_TYPE, A_XML_OTHER, A_XMLBASE, A_XMLLANG, A_XMLNS, CoreAndOldTerms, E_DESCRIPTION, E_LI, E_RDF, RDF_FIRST, RDF_NIL, RDF_OBJECT, RDF_PREDICATE, RDF_REST, RDF_STATEMENT, RDF_SUBJECT, RDF_TYPE, rdfns, xmlns, xmlnsns
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static SAX2RDF
create(java.lang.String base)
Factory method to create a new SAX2RDF.static SAX2RDF
create(java.lang.String base, java.lang.String lang)
Factory method to create a new SAX2RDF.ARPHandlers
getHandlers()
The handlers used for processing ARP events.ARPOptions
getOptions()
The options used during parsing.static void
installHandlers(org.xml.sax.XMLReader rdr, XMLHandler sax2rdf)
Initializes an XMLReader to use the SAX2RDF object as its handler for all events, and to use namespaces and namespace prefixes.void
setHandlersWith(ARPHandlers handlers)
Copys handlers used for processing ARP events.void
setOptionsWith(ARPOptions opts)
Copies the options from the argument to be used by this instance.void
startPrefixMapping(java.lang.String prefix, java.lang.String uri)
Begin the scope of a prefix-URI Namespace mapping.-
Methods inherited from class org.apache.jena.rdfxml.xmlinput.impl.SAX2RDFImpl
characters, comment, endCDATA, endDocument, endDTD, endElement, endEntity, endPrefixMapping, error, fatalError, ignorableWhitespace, processingInstruction, skippedEntity, startCDATA, startDocument, startDTD, startElement, startEntity, warning
-
Methods inherited from class org.apache.jena.rdfxml.xmlinput.impl.XMLHandler
allowRelativeURIs, endLocalScope, endRDF, getLocator, getSimpleName, initParse, isError, location, sameDocRef, setBadStatementHandler, setDocumentLocator, startRDF, triple, warning
-
Methods inherited from class org.xml.sax.helpers.DefaultHandler
notationDecl, resolveEntity, unparsedEntityDecl
-
-
-
-
Method Detail
-
create
public static SAX2RDF create(java.lang.String base) throws org.xml.sax.SAXParseException
Factory method to create a new SAX2RDF. UsegetHandlers()
orsetHandlersWith(org.apache.jena.rdfxml.xmlinput.ARPHandlers)
to provide aStatementHandler
, and usually anErrorHandler
- Parameters:
base
- The retrieval URL, or the base URI to be used while parsing.- Returns:
- A new SAX2RDF
- Throws:
ParseException
org.xml.sax.SAXParseException
-
create
public static SAX2RDF create(java.lang.String base, java.lang.String lang) throws org.xml.sax.SAXParseException
Factory method to create a new SAX2RDF. This is particularly intended for when parsing a non-root element within an XML document. In which case the application needs to find this value in the outer context. Optionally, namespace prefixes can be passed from the outer context usingstartPrefixMapping(java.lang.String, java.lang.String)
.- Parameters:
base
- The retrieval URL, or the base URI to be used while parsing. UsegetHandlers()
orsetHandlersWith(org.apache.jena.rdfxml.xmlinput.ARPHandlers)
to provide aStatementHandler
, and usually anErrorHandler
lang
- The current value of xml:lang when parsing starts, usually "".- Returns:
- A new SAX2RDF
- Throws:
ParseException
- If base or lang is bad.org.xml.sax.SAXParseException
-
startPrefixMapping
public void startPrefixMapping(java.lang.String prefix, java.lang.String uri) throws org.xml.sax.SAXParseException
Begin the scope of a prefix-URI Namespace mapping.This is passed to any
NamespaceHandler
associated with this parser. It can be called before the initialstartElement
event, or other events associated with the elements being processed. When building a Jena Model, withSAX2Model
it is not required to match this with correspondingendPrefixMapping
events. OtherNamespaceHandler
s may be fussier. When building a Jena Model, the prefix bindings are remembered with the Model, and may be used in some output routines. It is permitted to not call this method for prefixes declared in the outer context, in which case, any output routine will need to use a gensym for such namespaces.- Specified by:
startPrefixMapping
in interfaceorg.xml.sax.ContentHandler
- Overrides:
startPrefixMapping
in classXMLHandler
- Parameters:
prefix
- The Namespace prefix being declared.uri
- The Namespace URI the prefix is mapped to.- Throws:
org.xml.sax.SAXParseException
-
getHandlers
public ARPHandlers getHandlers()
The handlers used for processing ARP events. Do not use with aSAX2Model
.- Specified by:
getHandlers
in interfaceARPConfig
- Overrides:
getHandlers
in classXMLHandler
- Returns:
- The handlers used during parsing.
- See Also:
ARPConfig.getHandlers()
-
setHandlersWith
public void setHandlersWith(ARPHandlers handlers)
Copys handlers used for processing ARP events. Do not use with aSAX2Model
.- Specified by:
setHandlersWith
in interfaceARPConfig
- Overrides:
setHandlersWith
in classXMLHandler
- Parameters:
handlers
- The new values to use.- See Also:
ARPConfig.setHandlersWith(ARPHandlers)
-
getOptions
public ARPOptions getOptions()
Description copied from interface:ARPConfig
The options used during parsing. The options can be changed by calling this method and then using theset..
methods inARPOptions
. The options can be copied onto another ARP instance using theARPConfig.setOptionsWith(org.apache.jena.rdfxml.xmlinput.ARPOptions)
method.- Specified by:
getOptions
in interfaceARPConfig
- Overrides:
getOptions
in classXMLHandler
- Returns:
- The handlers used during parsing.
- See Also:
ARPOptions.setDefaultErrorMode()
,ARPOptions.setLaxErrorMode()
,ARPOptions.setStrictErrorMode()
,ARPOptions.setStrictErrorMode(int)
,ARPOptions.setEmbedding(boolean)
,ARPOptions.setErrorMode(int, int)
,ARPConfig.setOptionsWith(org.apache.jena.rdfxml.xmlinput.ARPOptions)
-
setOptionsWith
public void setOptionsWith(ARPOptions opts)
Description copied from interface:ARPConfig
Copies the options from the argument to be used by this instance. To make further modifications it is necessary to callARPConfig.getOptions()
to retrieve this instance's copy of the options.- Specified by:
setOptionsWith
in interfaceARPConfig
- Overrides:
setOptionsWith
in classXMLHandler
- Parameters:
opts
- The new values to use.
-
installHandlers
public static void installHandlers(org.xml.sax.XMLReader rdr, XMLHandler sax2rdf) throws org.xml.sax.SAXException
Initializes an XMLReader to use the SAX2RDF object as its handler for all events, and to use namespaces and namespace prefixes.- Parameters:
rdr
- The XMLReader to initialize.sax2rdf
- The SAX2RDF instance to use.- Throws:
org.xml.sax.SAXException
-
-