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

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
                  extended by com.hp.hpl.jena.rdf.arp.SAX2Model
All Implemented Interfaces:
ARPConfig, ARPErrorNumbers, com.hp.hpl.jena.rdf.arp.impl.Names, ContentHandler, DTDHandler, EntityResolver, ErrorHandler, LexicalHandler
Direct Known Subclasses:
DOM2Model

public class SAX2Model
extends SAX2RDF

Use arbitrary SAX input to Jena. See ARP SAX documentation.

Author:
Jeremy J. 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
 void close()
           
static SAX2Model create(String base, Model m)
          Factory method to create a new SAX2Model.
static SAX2Model create(String base, Model m, String lang)
          Factory method to create a new SAX2Model.
 RDFErrorHandler setErrorHandler(RDFErrorHandler errHandler)
          Change the error handler.
 Object setProperty(String str, Object value)
          Change a property of the RDF or XML parser.
 void startPrefixMapping(String prefix, String uri)
          Begin the scope of a prefix-URI Namespace mapping.
 
Methods inherited from class com.hp.hpl.jena.rdf.arp.SAX2RDF
create, create, getHandlers, getOptions, installHandlers, setHandlersWith, setOptionsWith
 
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 SAX2Model create(String base,
                               Model m)
                        throws SAXParseException
Factory method to create a new SAX2Model.

Parameters:
base - The retrieval URL, or the base URI to be used while parsing.
m - A Jena Model in which to put the triples, this can be null. If it is null, then use SAX2RDF.getHandlers() or SAX2RDF.setHandlersWith(com.hp.hpl.jena.rdf.arp.ARPHandlers) to provide a StatementHandler, and usually an ErrorHandler
Returns:
A new SAX2Model
Throws:
SAXParseException - On a.error error during setup, maybe malformed base URI

create

public static SAX2Model create(String base,
                               Model m,
                               String lang)
                        throws SAXParseException
Factory method to create a new SAX2Model. 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.
m - A Jena Model in which to put the triples, this can be null. If it is null, then use SAX2RDF.getHandlers() or SAX2RDF.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 SAX2Model
Throws:
SAXParseException - On a.error error during setup, maybe malformed base URI

startPrefixMapping

public void startPrefixMapping(String prefix,
                               String uri)
                        throws 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, 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 ContentHandler
Overrides:
startPrefixMapping in class SAX2RDF
Parameters:
prefix - The Namespace prefix being declared.
uri - The Namespace URI the prefix is mapped to.
Throws:
SAXParseException

close

public void close()
Overrides:
close in class com.hp.hpl.jena.rdf.arp.impl.SAX2RDFImpl

setErrorHandler

public RDFErrorHandler setErrorHandler(RDFErrorHandler errHandler)
Change the error handler.

Note that errors of class ParseExceptioncan be promoted using the ParseException.promote()method. See ARP documentation for ErrorHandlerfor the details of error promotion.

Parameters:
errHandler - The new error handler.
Returns:
The old error handler.

setProperty

public Object setProperty(String str,
                          Object value)
                   throws JenaException
Change a property of the RDF or XML parser.

I do not believe that many of the XML features or properties are in fact useful for ARP users. The ARP properties allow fine-grained control over error reporting.

This interface can be used to set and get:

SAX2 features
See Xerces features . Value should be given as a String "true" or "false" or a Boolean.
SAX2 properties
See Xerces properties .
Xerces features
See Xerces features . Value should be given as a String "true" or "false" or a Boolean.
Xerces properties
See Xerces properties .
ARP properties
These are referred to either by their property name, (see below) or by an absolute URL of the form http://jena.hpl.hp.com/arp/properties/<PropertyName>. The value should be a String, an Integer or a Boolean depending on the property.
ARP property names and string values are case insensitive.
ARP Properties
Property Name Description Value class Legal Values
error-mode ARPOptions.setDefaultErrorMode()
ARPOptions.setLaxErrorMode()
ARPOptions.setStrictErrorMode()
ARPOptions.setStrictErrorMode(int)
String default
lax
strict
strict-ignore
strict-warning
strict-error
strict.error
embedding ARPOptions.setEmbedding(boolean) String or Boolean true or false
ERR_<XXX>
WARN_<XXX>
IGN_<XXX>
ARPErrorNumbers
Any of the error condition numbers listed.
ARPOptions.setErrorMode(int, int)
String or Integer EM_IGNORE
EM_WARNING
EM_ERROR
EM_FATAL

Parameters:
str - The property to set.
value - The new value; values of class String will be converted into appropriate classes. Values of class Boolean or Integer will be used for appropriate properties.
Returns:
The old value, or null if none, or old value is inaccesible.
Throws:
JenaException - For bad values.
See Also:
SAX2RDF.getOptions(), ARPOptions


Licenced under the Apache License, Version 2.0