net.n3.nanoxml

Class ValidatorPlugin

Implemented Interfaces:
IXMLValidator

public class ValidatorPlugin
extends Object
implements IXMLValidator

ValidatorPlugin allows the application to insert additional validators into NanoXML.
Version:
$Name: RELEASE_2_2_1 $, $Revision: 1.3 $
Author:
Marc De Scheemaecker

Constructor Summary

ValidatorPlugin()
Initializes the plugin.

Method Summary

void
PCDataAdded(String systemId, int lineNr)
Indicates that a new #PCDATA element has been encountered.
void
attributeAdded(String key, String value, String systemId, int lineNr)
This method is called when the attributes of an XML element have been processed.
void
elementAttributesProcessed(String name, Properties extraAttributes, String systemId, int lineNr)
Indicates that an attribute has been added to the current element.
void
elementEnded(String name, String systemId, int lineNr)
Indicates that the current element has ended.
void
elementStarted(String name, String systemId, int lineNr)
Indicates that an element has been started.
protected void
finalize()
Cleans up the object when it's destroyed.
IXMLValidator
getDelegate()
Returns the delegate.
IXMLEntityResolver
getParameterEntityResolver()
Returns the parameter entity resolver.
void
invalidAttributeValue(String systemID, int lineNr, String elementName, String attributeName, String attributeValue)
Throws an XMLValidationException to indicate that an attribute has an invalid value.
void
missingAttribute(String systemID, int lineNr, String elementName, String attributeName)
Throws an XMLValidationException to indicate that an attribute is missing.
void
missingElement(String systemID, int lineNr, String parentElementName, String missingElementName)
Throws an XMLValidationException to indicate that an element is missing.
void
missingPCData(String systemID, int lineNr, String parentElementName)
Throws an XMLValidationException to indicate that a #PCDATA element was missing.
void
parseDTD(String publicID, IXMLReader reader, IXMLEntityResolver entityResolver, boolean external)
Parses the DTD.
void
setDelegate(IXMLValidator delegate)
Sets the delegate.
void
setParameterEntityResolver(IXMLEntityResolver resolver)
Sets the parameter entity resolver.
void
unexpectedAttribute(String systemID, int lineNr, String elementName, String attributeName)
Throws an XMLValidationException to indicate that an attribute is unexpected.
void
unexpectedElement(String systemID, int lineNr, String parentElementName, String unexpectedElementName)
Throws an XMLValidationException to indicate that an element is unexpected.
void
unexpectedPCData(String systemID, int lineNr, String parentElementName)
Throws an XMLValidationException to indicate that a #PCDATA element was unexpected.
void
validationError(String systemID, int lineNr, String message, String elementName, String attributeName, String attributeValue)
Throws an XMLValidationException.

Constructor Details

ValidatorPlugin

public ValidatorPlugin()
Initializes the plugin.

Method Details

PCDataAdded

public void PCDataAdded(String systemId,
                        int lineNr)
            throws Exception
Indicates that a new #PCDATA element has been encountered.
Specified by:
PCDataAdded in interface IXMLValidator
Parameters:
systemId - the system ID of the XML data of the element.
lineNr - the line number in the XML data of the element.

attributeAdded

public void attributeAdded(String key,
                           String value,
                           String systemId,
                           int lineNr)
            throws Exception
This method is called when the attributes of an XML element have been processed. If there are attributes with a default value which have not been specified yet, they have to be put into extraAttributes.
Specified by:
attributeAdded in interface IXMLValidator
Parameters:
systemId - the system ID of the XML data of the element.
lineNr - the line number in the XML data of the element.

elementAttributesProcessed

public void elementAttributesProcessed(String name,
                                       Properties extraAttributes,
                                       String systemId,
                                       int lineNr)
            throws Exception
Indicates that an attribute has been added to the current element.
Specified by:
elementAttributesProcessed in interface IXMLValidator
Parameters:
systemId - the system ID of the XML data of the element.
lineNr - the line number in the XML data of the element.

elementEnded

public void elementEnded(String name,
                         String systemId,
                         int lineNr)
            throws Exception
Indicates that the current element has ended.
Specified by:
elementEnded in interface IXMLValidator
Parameters:
name - the name of the element.
systemId - the system ID of the XML data of the element.
lineNr - the line number in the XML data of the element.

elementStarted

public void elementStarted(String name,
                           String systemId,
                           int lineNr)
            throws Exception
Indicates that an element has been started.
Specified by:
elementStarted in interface IXMLValidator
Parameters:
name - the name of the element.
systemId - the system ID of the XML data of the element.
lineNr - the line number in the XML data of the element.

finalize

protected void finalize()
            throws Throwable
Cleans up the object when it's destroyed.

getDelegate

public IXMLValidator getDelegate()
Returns the delegate.

getParameterEntityResolver

public IXMLEntityResolver getParameterEntityResolver()
Returns the parameter entity resolver.
Specified by:
getParameterEntityResolver in interface IXMLValidator
Returns:
the entity resolver.

invalidAttributeValue

public void invalidAttributeValue(String systemID,
                                  int lineNr,
                                  String elementName,
                                  String attributeName,
                                  String attributeValue)
            throws XMLValidationException
Throws an XMLValidationException to indicate that an attribute has an invalid value.
Parameters:
systemID - the system ID of the XML data of the element
lineNr - the line number in the XML data of the element
elementName - the name of the element
attributeName - the name of the attribute
attributeValue - the value of the attribute
Throws:
XMLValidationException - of course :-)

missingAttribute

public void missingAttribute(String systemID,
                             int lineNr,
                             String elementName,
                             String attributeName)
            throws XMLValidationException
Throws an XMLValidationException to indicate that an attribute is missing.
Parameters:
systemID - the system ID of the XML data of the element
lineNr - the line number in the XML data of the element
elementName - the name of the element
attributeName - the name of the missing attribute
Throws:
XMLValidationException - of course :-)

missingElement

public void missingElement(String systemID,
                           int lineNr,
                           String parentElementName,
                           String missingElementName)
            throws XMLValidationException
Throws an XMLValidationException to indicate that an element is missing.
Parameters:
systemID - the system ID of the XML data of the element
lineNr - the line number in the XML data of the element
parentElementName - the name of the parent element
missingElementName - the name of the missing element
Throws:
XMLValidationException - of course :-)

missingPCData

public void missingPCData(String systemID,
                          int lineNr,
                          String parentElementName)
            throws XMLValidationException
Throws an XMLValidationException to indicate that a #PCDATA element was missing.
Parameters:
systemID - the system ID of the XML data of the element
lineNr - the line number in the XML data of the element
parentElementName - the name of the parent element
Throws:
XMLValidationException - of course :-)

parseDTD

public void parseDTD(String publicID,
                     IXMLReader reader,
                     IXMLEntityResolver entityResolver,
                     boolean external)
            throws Exception
Parses the DTD. The validator object is responsible for reading the full DTD.
Specified by:
parseDTD in interface IXMLValidator
Parameters:
publicID - the public ID, which may be null.
reader - the reader to read the DTD from.
entityResolver - the entity resolver.
external - true if the DTD is external.

setDelegate

public void setDelegate(IXMLValidator delegate)
Sets the delegate.
Parameters:
delegate - the delegate

setParameterEntityResolver

public void setParameterEntityResolver(IXMLEntityResolver resolver)
Sets the parameter entity resolver.
Specified by:
setParameterEntityResolver in interface IXMLValidator
Parameters:
resolver - the entity resolver.

unexpectedAttribute

public void unexpectedAttribute(String systemID,
                                int lineNr,
                                String elementName,
                                String attributeName)
            throws XMLValidationException
Throws an XMLValidationException to indicate that an attribute is unexpected.
Parameters:
systemID - the system ID of the XML data of the element
lineNr - the line number in the XML data of the element
elementName - the name of the element
attributeName - the name of the unexpected attribute
Throws:
XMLValidationException - of course :-)

unexpectedElement

public void unexpectedElement(String systemID,
                              int lineNr,
                              String parentElementName,
                              String unexpectedElementName)
            throws XMLValidationException
Throws an XMLValidationException to indicate that an element is unexpected.
Parameters:
systemID - the system ID of the XML data of the element
lineNr - the line number in the XML data of the element
parentElementName - the name of the parent element
unexpectedElementName - the name of the missing element
Throws:
XMLValidationException - of course :-)

unexpectedPCData

public void unexpectedPCData(String systemID,
                             int lineNr,
                             String parentElementName)
            throws XMLValidationException
Throws an XMLValidationException to indicate that a #PCDATA element was unexpected.
Parameters:
systemID - the system ID of the XML data of the element
lineNr - the line number in the XML data of the element
parentElementName - the name of the parent element
Throws:
XMLValidationException - of course :-)

validationError

public void validationError(String systemID,
                            int lineNr,
                            String message,
                            String elementName,
                            String attributeName,
                            String attributeValue)
            throws XMLValidationException
Throws an XMLValidationException.
Parameters:
systemID - the system ID of the XML data of the element
lineNr - the line number in the XML data of the element
message - the error message
elementName - the name of the element (may be null)
attributeName - the name of the attribute (may be null)
attributeValue - the value of the attribute (may be null)
Throws:
XMLValidationException - of course :-)