com.hp.hpl.jena.rdf.arp
Class SAX2RDF

java.lang.Object
  extended by org.xml.sax.helpers.DefaultHandler
      extended by com.hp.hpl.jena.rdf.arp.impl.XMLHandler
          extended by com.hp.hpl.jena.rdf.arp.impl.SAX2RDFImpl
              extended by com.hp.hpl.jena.rdf.arp.SAX2RDF
All Implemented Interfaces:
ARPConfig, ARPErrorNumbers, com.hp.hpl.jena.rdf.arp.impl.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 com.hp.hpl.jena.rdf.arp.impl.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, com.hp.hpl.jena.rdf.arp.impl.XMLHandler).

To build a Jena model it is better to use SAX2Model. The documentation here, covers usage both using the subclass SAX2Model, and not.

This class does not support multithreaded SAX sources, nor IO interruption.

There is further documentation: here and here.

Author:
Jeremy Carroll

Field Summary
 
Fields inherited from class com.hp.hpl.jena.rdf.arp.impl.XMLHandler
nullScopeHandler, nullStatementHandler
 
Fields inherited from interface com.hp.hpl.jena.rdf.arp.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_DAML_COLLECTION, 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 com.hp.hpl.jena.rdf.arp.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, DAML_FIRST, DAML_LIST, DAML_NIL, DAML_REST, damlns, 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
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, com.hp.hpl.jena.rdf.arp.impl.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 com.hp.hpl.jena.rdf.arp.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 com.hp.hpl.jena.rdf.arp.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
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.xml.sax.ContentHandler
setDocumentLocator
 

Method Detail

create

public static SAX2RDF create(java.lang.String base)
                      throws org.xml.sax.SAXParseException
Factory method to create a new SAX2RDF. Use getHandlers() or setHandlersWith(com.hp.hpl.jena.rdf.arp.ARPHandlers) to provide a StatementHandler, and usually an ErrorHandler

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 using startPrefixMapping(java.lang.String, java.lang.String).

Parameters:
base - The retrieval URL, or the base URI to be used while parsing. Use getHandlers() or setHandlersWith(com.hp.hpl.jena.rdf.arp.ARPHandlers) to provide a StatementHandler, and usually an ErrorHandler
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 initial startElement event, or other events associated with the elements being processed. When building a Jena Model, with SAX2Model it is not required to match this with corresponding endPrefixMapping events. Other NamespaceHandlers 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 interface org.xml.sax.ContentHandler
Overrides:
startPrefixMapping in class com.hp.hpl.jena.rdf.arp.impl.XMLHandler
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 a SAX2Model.

Specified by:
getHandlers in interface ARPConfig
Overrides:
getHandlers in class com.hp.hpl.jena.rdf.arp.impl.XMLHandler
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 a SAX2Model.

Specified by:
setHandlersWith in interface ARPConfig
Overrides:
setHandlersWith in class com.hp.hpl.jena.rdf.arp.impl.XMLHandler
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 the set.. methods in ARPOptions. The options can be copied onto another ARP instance using the ARPConfig.setOptionsWith(com.hp.hpl.jena.rdf.arp.ARPOptions) method.

Specified by:
getOptions in interface ARPConfig
Overrides:
getOptions in class com.hp.hpl.jena.rdf.arp.impl.XMLHandler
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(com.hp.hpl.jena.rdf.arp.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 call ARPConfig.getOptions() to retrieve this instance's copy of the options.

Specified by:
setOptionsWith in interface ARPConfig
Overrides:
setOptionsWith in class com.hp.hpl.jena.rdf.arp.impl.XMLHandler
Parameters:
opts - The new values to use.

installHandlers

public static void installHandlers(org.xml.sax.XMLReader rdr,
                                   com.hp.hpl.jena.rdf.arp.impl.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


Copyright © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Hewlett-Packard Development Company, LP