Package net.n3.nanoxml.sax
Class SAXAdapter
- java.lang.Object
-
- net.n3.nanoxml.sax.SAXAdapter
-
- All Implemented Interfaces:
IXMLBuilder
public class SAXAdapter extends Object implements IXMLBuilder
SAXAdapter is the core adapter for using NanoXML/Java with SAX, the "Simple" API For XML.- Version:
- $Name: RELEASE_2_2_1 $, $Revision: 1.4 $
- Author:
- Marc De Scheemaecker
- See Also:
IXMLBuilder
-
-
Constructor Summary
Constructors Constructor Description SAXAdapter()
Creates the adapter.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAttribute(String key, String nsPrefix, String nsSystemId, String value, String type)
This method is called when a new attribute of an XML element is encountered.void
addPCData(Reader reader, String systemID, int lineNr)
This method is called when a PCDATA element is encountered.void
elementAttributesProcessed(String name, String nsPrefix, String nsSystemId)
This method is called when the attributes of an XML element have been processed.void
endDocument()
Indicates that parsing has been completed.void
endElement(String name, String nsPrefix, String nsSystemId)
This method is called when the end of an XML elemnt is encountered.protected void
finalize()
Cleans up the object when it's destroyed.Object
getResult()
Returns the result of the building process.void
newProcessingInstruction(String target, Reader reader)
This method is called when a processing instruction is encountered.void
setDocumentHandler(DocumentHandler handler)
Sets the document handler.void
setReader(IXMLReader reader)
Sets the reader.void
startBuilding(String systemID, int lineNr)
This method is called before the parser starts processing its input.void
startElement(String name, String nsPrefix, String nsSystemId, String systemID, int lineNr)
This method is called when a new XML element is encountered.
-
-
-
Method Detail
-
finalize
protected void finalize() throws Throwable
Cleans up the object when it's destroyed.
-
setDocumentHandler
public void setDocumentHandler(DocumentHandler handler)
Sets the document handler.- Parameters:
handler
- the document handler
-
setReader
public void setReader(IXMLReader reader)
Sets the reader.- Parameters:
reader
- the reader.
-
startBuilding
public void startBuilding(String systemID, int lineNr) throws Exception
This method is called before the parser starts processing its input.- Specified by:
startBuilding
in interfaceIXMLBuilder
- Parameters:
systemID
- the system ID of the data sourcelineNr
- the line on which the parsing starts- Throws:
Exception
- If an exception occurred while processing the event.
-
newProcessingInstruction
public void newProcessingInstruction(String target, Reader reader) throws Exception
This method is called when a processing instruction is encountered. PIs with target "xml" are handled by the parser.- Specified by:
newProcessingInstruction
in interfaceIXMLBuilder
- Parameters:
target
- the PI targetreader
- to read the data from the PI- Throws:
Exception
- If an exception occurred while processing the event.
-
startElement
public void startElement(String name, String nsPrefix, String nsSystemId, String systemID, int lineNr) throws Exception
This method is called when a new XML element is encountered.- Specified by:
startElement
in interfaceIXMLBuilder
- Parameters:
name
- the name of the elementnsPrefix
- the prefix used to identify the namespacensSystemId
- the system ID associated with the namespacesystemID
- the system ID of the data sourcelineNr
- the line in the source where the element starts- Throws:
Exception
- If an exception occurred while processing the event.- See Also:
endElement(java.lang.String, java.lang.String, java.lang.String)
-
elementAttributesProcessed
public void elementAttributesProcessed(String name, String nsPrefix, String nsSystemId) throws Exception
This method is called when the attributes of an XML element have been processed.- Specified by:
elementAttributesProcessed
in interfaceIXMLBuilder
- Parameters:
name
- the name of the elementnsPrefix
- the prefix used to identify the namespacensSystemId
- the system ID associated with the namespace- Throws:
Exception
- If an exception occurred while processing the event.- See Also:
startElement(java.lang.String, java.lang.String, java.lang.String, java.lang.String, int)
,addAttribute(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
-
endElement
public void endElement(String name, String nsPrefix, String nsSystemId) throws Exception
This method is called when the end of an XML elemnt is encountered.- Specified by:
endElement
in interfaceIXMLBuilder
- Parameters:
name
- the name of the elementnsPrefix
- the prefix used to identify the namespacensSystemId
- the system ID associated with the namespace- Throws:
Exception
- If an exception occurred while processing the event.- See Also:
startElement(java.lang.String, java.lang.String, java.lang.String, java.lang.String, int)
-
addAttribute
public void addAttribute(String key, String nsPrefix, String nsSystemId, String value, String type) throws Exception
This method is called when a new attribute of an XML element is encountered.- Specified by:
addAttribute
in interfaceIXMLBuilder
- Parameters:
key
- the key (name) of the attributensPrefix
- the prefix used to identify the namespacensSystemId
- the system ID associated with the namespacevalue
- the value of the attributetype
- the type of the attribute ("CDATA" if unknown)- Throws:
Exception
- If an exception occurred while processing the event.
-
addPCData
public void addPCData(Reader reader, String systemID, int lineNr) throws Exception
This method is called when a PCDATA element is encountered. A Java reader is supplied from which you can read the data. The reader will only read the data of the element. You don't need to check for boundaries. If you don't read the full element, the rest of the data is skipped. You also don't have to care about entities; they are resolved by the parser.- Specified by:
addPCData
in interfaceIXMLBuilder
- Parameters:
reader
- the Java reader from which you can retrieve the datasystemID
- the system ID of the data sourcelineNr
- the line in the source where the element starts- Throws:
IOException
- when the reader throws such exceptionException
- If an exception occurred while processing the event.
-
getResult
public Object getResult() throws Exception
Returns the result of the building process. This method is called just before the parse() method of IXMLParser returns.- Specified by:
getResult
in interfaceIXMLBuilder
- Returns:
- the result of the building process.
- Throws:
Exception
- If an exception occurred while processing the event.- See Also:
IXMLParser.parse()
-
-