|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.w3c.rdf.implementation.syntax.sirpac.SiRPAC
Modified version of SiRPAC adapted to support the new API, streaming, robust parsing etc.
Field Summary | |
static java.lang.String |
RDFMS
|
static java.lang.String |
RDFSCHEMA
|
static java.lang.String |
REVISION
|
static java.lang.String |
XMLSCHEMA
|
Constructor Summary | |
SiRPAC()
|
|
SiRPAC(java.lang.String sXMLParser)
|
Method Summary | |
void |
addError(java.lang.String sMsg)
Generate an error message as a string |
void |
addTriple(Resource predicate,
Resource subject,
RDFNode object)
Create a new triple and add it to the m_triples Vector |
protected void |
addTriple(Statement s)
|
void |
addWarning(java.lang.String sMsg)
Generate a warning message as a string |
void |
characters(char[] ch,
int start,
int length)
Receive notification of character data. |
void |
createBags(boolean b)
createBags method allows one to determine whether SiRPAC produces Bag instances for each Description block. |
Literal |
createLiteral(java.lang.String str,
boolean isXML)
|
static Parser |
createParser(java.lang.String className)
|
Resource |
createResource(java.lang.String str)
This method adds a warning for each name (element & attribute) which looks like it is from RDF but it is not. |
Resource |
createResource(java.lang.String namespace,
java.lang.String name)
|
void |
doctype(java.lang.String name,
java.lang.String publicID,
java.lang.String systemID)
|
void |
endDocument()
Receive notification of the end of a document. |
void |
endElement(java.lang.String name)
For each end of an element scope step back in the element and namespace stack |
void |
fetchSchema(java.lang.String sURI)
|
void |
fetchSchemas(boolean b)
Set whether parser recursively fetches and parses every RDF schema it finds in the namespace declarations |
InputSource |
getRDFSource()
|
void |
ignorableWhitespace(char[] ch,
int start,
int length)
Receive notification of ignorable whitespace in element content. |
void |
ignoreExternalEntities(boolean b)
|
boolean |
isAlternative(Element e)
Is the element an Alternative |
boolean |
isBag(Element e)
Is the element a Bag |
boolean |
isContainer(Element e)
Is the element a Container |
boolean |
isDescription(Element e)
Is the element a Description |
boolean |
isListItem(Element e)
Is the element a ListItem |
boolean |
isRDF(Element e)
Check if the element e is from the namespace of the RDF schema by comparing only the beginning of the expanded element name with the canonical RDFMS URI |
boolean |
isRDFroot(Element e)
|
boolean |
isSequence(Element e)
Is the element a Sequence |
boolean |
isTypedPredicate(Element e)
This method matches all properties but those from RDF namespace |
java.util.Enumeration |
listNamespaces()
Return all non-RDF namespace URIs recognized by the parser |
Element |
lookforNode(java.lang.String sID)
Look for a node by name sID from the Hashtable m_hIDtable of all registered IDs. |
static void |
main(java.lang.String[] args)
main method for running SiRPAC as an application |
void |
makeMarkupChar(java.lang.String s)
|
void |
makeMarkupET(java.lang.String name)
|
void |
makeMarkupST(Element ele)
|
java.lang.String |
namespace(java.lang.String sPrefix)
Return the full namespace URI for a given prefix sPrefix. |
java.lang.String |
newReificationID()
Create a new reification ID by using a name part and an incremental counter m_iReificationCounter. |
void |
notationDecl(java.lang.String name,
java.lang.String publicId,
java.lang.String systemId)
Receive notification of a notation declaration event. |
void |
parse(InputSource source,
RDFConsumer consumer)
Parse from the given SAX/XML input source. |
boolean |
parseLiteral()
Methods to determine whether we are parsing parseType="Literal" or parseType="Resource" |
boolean |
parseResource()
|
boolean |
preserveWhiteSpace()
|
java.lang.String |
processDescription(Element description,
boolean inPredicate,
boolean reify,
boolean createBag)
processDescription manages Description elements |
void |
processingInstruction(java.lang.String target,
java.lang.String data)
Receive notification of a processing instruction. |
void |
processRDF(Element rdf)
Start processing an RDF/XML document instance from the root element rdf. |
java.lang.String |
processTypedNode(Element typedNode)
Manage the typedNode production in the RDF grammar. |
void |
processXML(Element ele)
Given an XML document (well-formed HTML, for example), look for a suitable element to start parsing from |
void |
registerID(java.lang.String sID,
Element e)
Add an element e to the Hashtable m_hIDtable which stores all nodes with an ID |
void |
registerResource(Element e)
Add an element e to the Vector m_vResources which stores all nodes with an URI |
void |
resolve()
Go through the m_vResolveQueue and assign direct object reference for each symbolic reference |
InputSource |
resolveEntity(java.lang.String publicId,
java.lang.String systemId)
Allow the application to resolve external entities. |
void |
resolveLater(Element e)
Add the element e to the m_vResolveQueue to be resolved later. |
Element |
root()
Return the root element pointer. |
void |
setDocumentLocator(Locator locator)
Receive an object for locating the origin of SAX document events. |
void |
setErrorHandler(ErrorHandler handler)
|
void |
setRDFSource(InputSource source)
Notify all registered consumers that were are at the end of the parsing process |
void |
setRobustMode(boolean b)
|
void |
setSource(java.lang.String sSource)
setSource methods saves the name of the source document for later inspection if needed |
void |
setStreamMode(boolean b)
|
java.lang.String |
source()
|
void |
startDocument()
Receive notification of the beginning of a document. |
void |
startElement(java.lang.String name,
AttributeList al)
Called for each new element. |
void |
unparsedEntityDecl(java.lang.String name,
java.lang.String publicId,
java.lang.String systemId,
java.lang.String notationName)
Display unparsed entity declarations as they are reported. |
void |
useExperimentalFeatures(boolean b)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final java.lang.String REVISION
public static final java.lang.String RDFMS
public static final java.lang.String RDFSCHEMA
public static final java.lang.String XMLSCHEMA
Constructor Detail |
public SiRPAC()
public SiRPAC(java.lang.String sXMLParser)
Method Detail |
public void useExperimentalFeatures(boolean b)
public void addWarning(java.lang.String sMsg) throws SAXException
public void addError(java.lang.String sMsg) throws SAXException
public boolean parseLiteral()
public boolean parseResource()
public boolean preserveWhiteSpace()
public void createBags(boolean b)
public void fetchSchemas(boolean b)
public void setSource(java.lang.String sSource)
public java.lang.String source()
public java.util.Enumeration listNamespaces()
public java.lang.String namespace(java.lang.String sPrefix) throws SAXException
public void setRDFSource(InputSource source)
public InputSource getRDFSource()
public void setErrorHandler(ErrorHandler handler)
setErrorHandler
in interface RDFParser
public void parse(InputSource source, RDFConsumer consumer) throws SAXException
RDFParser
parse
in interface RDFParser
public InputSource resolveEntity(java.lang.String publicId, java.lang.String systemId) throws SAXException
EntityResolver
The Parser will call this method before opening any external entity except the top-level document entity (including the external DTD subset, external entities referenced within the DTD, and external entities referenced within the document element): the application may request that the parser resolve the entity itself, that it use an alternative URI, or that it use an entirely different input source.
Application writers can use this method to redirect external system identifiers to secure and/or local URIs, to look up public identifiers in a catalogue, or to read an entity from a database or other input source (including, for example, a dialog box).
If the system identifier is a URL, the SAX parser must resolve it fully before reporting it to the application.
resolveEntity
in interface EntityResolver
org.xml.sax.EntityResolver
publicId
- The public identifier of the external entity
being referenced, or null if none was supplied.systemId
- The system identifier of the external entity
being referenced.SAXException
- Any SAX exception, possibly
wrapping another exception.java.io.IOException
- A Java-specific IO exception,
possibly the result of creating a new InputStream
or Reader for the InputSource.InputSource
public void notationDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId)
DTDHandler
It is up to the application to record the notation for later reference, if necessary.
At least one of publicId and systemId must be non-null. If a system identifier is present, and it is a URL, the SAX parser must resolve it fully before passing it to the application through this event.
There is no guarantee that the notation declaration will be reported before any unparsed entities that use it.
notationDecl
in interface DTDHandler
org.xml.sax.DTDHandler
name
- The notation name.publicId
- The notation's public identifier, or null if
none was given.systemId
- The notation's system identifier, or null if
none was given.SAXException
- Any SAX exception, possibly
wrapping another exception.DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
,
AttributeList
public void unparsedEntityDecl(java.lang.String name, java.lang.String publicId, java.lang.String systemId, java.lang.String notationName)
unparsedEntityDecl
in interface DTDHandler
DTDHandler.unparsedEntityDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
public void setDocumentLocator(Locator locator)
DocumentHandler
SAX parsers are strongly encouraged (though not absolutely required) to supply a locator: if it does so, it must supply the locator to the application by invoking this method before invoking any of the other methods in the DocumentHandler interface.
The locator allows the application to determine the end position of any document-related event, even if the parser is not reporting an error. Typically, the application will use this information for reporting its own errors (such as character content that does not match an application's business rules). The information returned by the locator is probably not sufficient for use with a search engine.
Note that the locator will return correct information only during the invocation of the events in this interface. The application should not attempt to use it at any other time.
setDocumentLocator
in interface DocumentHandler
org.xml.sax.DocumentHandler
locator
- An object that can return the location of
any SAX document event.Locator
public void startDocument()
DocumentHandler
The SAX parser will invoke this method only once, before any other methods in this interface or in DTDHandler (except for setDocumentLocator).
startDocument
in interface DocumentHandler
org.xml.sax.DocumentHandler
SAXException
- Any SAX exception, possibly
wrapping another exception.public void endDocument() throws SAXException
DocumentHandler
The SAX parser will invoke this method only once, and it will be the last method invoked during the parse. The parser shall not invoke this method until it has either abandoned parsing (because of an unrecoverable error) or reached the end of input.
endDocument
in interface DocumentHandler
org.xml.sax.DocumentHandler
SAXException
- Any SAX exception, possibly
wrapping another exception.public void doctype(java.lang.String name, java.lang.String publicID, java.lang.String systemID)
public void startElement(java.lang.String name, AttributeList al) throws SAXException
startElement
in interface DocumentHandler
SAXException
- Passed on since we don't handle it.public void endElement(java.lang.String name) throws SAXException
endElement
in interface DocumentHandler
SAXException
- Passed on since we don't handle it.public Element root()
public void characters(char[] ch, int start, int length) throws SAXException
DocumentHandler
The Parser will call this method to report each chunk of character data. SAX parsers may return all contiguous character data in a single chunk, or they may split it into several chunks; however, all of the characters in any single event must come from the same external entity, so that the Locator provides useful information.
The application must not attempt to read from the array outside of the specified range.
Note that some parsers will report whitespace using the ignorableWhitespace() method rather than this one (validating parsers must do so).
characters
in interface DocumentHandler
org.xml.sax.DocumentHandler
ch
- The characters from the XML document.start
- The start position in the array.length
- The number of characters to read from the array.SAXException
- Any SAX exception, possibly
wrapping another exception.DocumentHandler.ignorableWhitespace(char[], int, int)
,
Locator
public void ignorableWhitespace(char[] ch, int start, int length)
DocumentHandler
Validating Parsers must use this method to report each chunk of ignorable whitespace (see the W3C XML 1.0 recommendation, section 2.10): non-validating parsers may also use this method if they are capable of parsing and using content models.
SAX parsers may return all contiguous whitespace in a single chunk, or they may split it into several chunks; however, all of the characters in any single event must come from the same external entity, so that the Locator provides useful information.
The application must not attempt to read from the array outside of the specified range.
ignorableWhitespace
in interface DocumentHandler
org.xml.sax.DocumentHandler
ch
- The characters from the XML document.start
- The start position in the array.length
- The number of characters to read from the array.SAXException
- Any SAX exception, possibly
wrapping another exception.DocumentHandler.characters(char[], int, int)
public void processingInstruction(java.lang.String target, java.lang.String data)
DocumentHandler
The Parser will invoke this method once for each processing instruction found: note that processing instructions may occur before or after the main document element.
A SAX parser should never report an XML declaration (XML 1.0, section 2.8) or a text declaration (XML 1.0, section 4.3.1) using this method.
processingInstruction
in interface DocumentHandler
org.xml.sax.DocumentHandler
target
- The processing instruction target.data
- The processing instruction data, or null if
none was supplied.SAXException
- Any SAX exception, possibly
wrapping another exception.public static Parser createParser(java.lang.String className)
public void processXML(Element ele) throws SAXException, ModelException
SAXException
- Passed on since we don't handle it.public void fetchSchema(java.lang.String sURI)
public void processRDF(Element rdf) throws SAXException, ModelException
SAXException
- Passed on since we don't handle it.public java.lang.String processTypedNode(Element typedNode) throws SAXException, ModelException
SAXException
- Passed on since we don't handle it.public java.lang.String processDescription(Element description, boolean inPredicate, boolean reify, boolean createBag) throws SAXException, ModelException
description
- The Description element itselfinPredicate
- Is this is a nested descriptionreify
- Do we need to reifycreateBag
- Do we create a bag containerSAXException
- Passed on since we don't handle it.protected void addTriple(Statement s) throws SAXException, ModelException
public void addTriple(Resource predicate, Resource subject, RDFNode object) throws SAXException, ModelException
public boolean isDescription(Element e)
public boolean isListItem(Element e)
public boolean isContainer(Element e)
isSequence
,
isAlternative
,
isBag
public boolean isSequence(Element e)
public boolean isAlternative(Element e)
public boolean isBag(Element e)
public boolean isTypedPredicate(Element e)
public boolean isRDFroot(Element e)
public boolean isRDF(Element e)
public void setStreamMode(boolean b)
public void setRobustMode(boolean b)
public void ignoreExternalEntities(boolean b)
public void resolveLater(Element e)
public void resolve() throws SAXException
public Element lookforNode(java.lang.String sID)
public void registerID(java.lang.String sID, Element e) throws SAXException
public java.lang.String newReificationID()
public void registerResource(Element e)
public void makeMarkupST(Element ele)
public void makeMarkupET(java.lang.String name)
public void makeMarkupChar(java.lang.String s)
public Resource createResource(java.lang.String str) throws ModelException
public Resource createResource(java.lang.String namespace, java.lang.String name) throws ModelException
public Literal createLiteral(java.lang.String str, boolean isXML) throws ModelException
public static void main(java.lang.String[] args) throws java.lang.Exception
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |