net.n3.nanoxml

Class ValidatorPlugin

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
voidattributeAdded(String key, String value, String systemId, int lineNr)
This method is called when the attributes of an XML element have been processed.
voidelementAttributesProcessed(String name, Properties extraAttributes, String systemId, int lineNr)
Indicates that an attribute has been added to the current element.
voidelementEnded(String name, String systemId, int lineNr)
Indicates that the current element has ended.
voidelementStarted(String name, String systemId, int lineNr)
Indicates that an element has been started.
protected voidfinalize()
Cleans up the object when it's destroyed.
IXMLValidatorgetDelegate()
Returns the delegate.
IXMLEntityResolvergetParameterEntityResolver()
Returns the parameter entity resolver.
voidinvalidAttributeValue(String systemID, int lineNr, String elementName, String attributeName, String attributeValue)
Throws an XMLValidationException to indicate that an attribute has an invalid value.
voidmissingAttribute(String systemID, int lineNr, String elementName, String attributeName)
Throws an XMLValidationException to indicate that an attribute is missing.
voidmissingElement(String systemID, int lineNr, String parentElementName, String missingElementName)
Throws an XMLValidationException to indicate that an element is missing.
voidmissingPCData(String systemID, int lineNr, String parentElementName)
Throws an XMLValidationException to indicate that a #PCDATA element was missing.
voidparseDTD(String publicID, IXMLReader reader, IXMLEntityResolver entityResolver, boolean external)
Parses the DTD.
voidPCDataAdded(String systemId, int lineNr)
Indicates that a new #PCDATA element has been encountered.
voidsetDelegate(IXMLValidator delegate)
Sets the delegate.
voidsetParameterEntityResolver(IXMLEntityResolver resolver)
Sets the parameter entity resolver.
voidunexpectedAttribute(String systemID, int lineNr, String elementName, String attributeName)
Throws an XMLValidationException to indicate that an attribute is unexpected.
voidunexpectedElement(String systemID, int lineNr, String parentElementName, String unexpectedElementName)
Throws an XMLValidationException to indicate that an element is unexpected.
voidunexpectedPCData(String systemID, int lineNr, String parentElementName)
Throws an XMLValidationException to indicate that a #PCDATA element was unexpected.
voidvalidationError(String systemID, int lineNr, String message, String elementName, String attributeName, String attributeValue)
Throws an XMLValidationException.

Constructor Detail

ValidatorPlugin

public ValidatorPlugin()
Initializes the plugin.

Method Detail

attributeAdded

public void attributeAdded(String key, String value, String systemId, int lineNr)
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.

Parameters: name the name of the element. extraAttributes where to put extra attributes. systemId the system ID of the XML data of the element. lineNr the line number in the XML data of the element.

Throws: java.lang.Exception if the element could not be validated.

elementAttributesProcessed

public void elementAttributesProcessed(String name, Properties extraAttributes, String systemId, int lineNr)
Indicates that an attribute has been added to the current element.

Parameters: key the name of the attribute. value the value of the attribute. systemId the system ID of the XML data of the element. lineNr the line number in the XML data of the element.

Throws: java.lang.Exception if the attribute could not be validated.

elementEnded

public void elementEnded(String name, String systemId, int lineNr)
Indicates that the current element has ended.

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.

Throws: java.lang.Exception if the element could not be validated.

elementStarted

public void elementStarted(String name, String systemId, int lineNr)
Indicates that an element has been started.

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.

Throws: java.lang.Exception if the element could not be validated.

finalize

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

getDelegate

public IXMLValidator getDelegate()
Returns the delegate.

getParameterEntityResolver

public IXMLEntityResolver getParameterEntityResolver()
Returns the parameter entity resolver.

Returns: the entity resolver.

invalidAttributeValue

public void invalidAttributeValue(String systemID, int lineNr, String elementName, String attributeName, String attributeValue)
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: net.n3.nanoxml.XMLValidationException of course :-)

missingAttribute

public void missingAttribute(String systemID, int lineNr, String elementName, String attributeName)
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: net.n3.nanoxml.XMLValidationException of course :-)

missingElement

public void missingElement(String systemID, int lineNr, String parentElementName, String missingElementName)
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: net.n3.nanoxml.XMLValidationException of course :-)

missingPCData

public void missingPCData(String systemID, int lineNr, String parentElementName)
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: net.n3.nanoxml.XMLValidationException of course :-)

parseDTD

public void parseDTD(String publicID, IXMLReader reader, IXMLEntityResolver entityResolver, boolean external)
Parses the DTD. The validator object is responsible for reading the full DTD.

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.

Throws: java.lang.Exception if something went wrong.

PCDataAdded

public void PCDataAdded(String systemId, int lineNr)
Indicates that a new #PCDATA element has been encountered.

Parameters: systemId the system ID of the XML data of the element. lineNr the line number in the XML data of the element.

Throws: java.lang.Exception if the element could not be validated.

setDelegate

public void setDelegate(IXMLValidator delegate)
Sets the delegate.

Parameters: delegate the delegate

setParameterEntityResolver

public void setParameterEntityResolver(IXMLEntityResolver resolver)
Sets the parameter entity resolver.

Parameters: resolver the entity resolver.

unexpectedAttribute

public void unexpectedAttribute(String systemID, int lineNr, String elementName, String attributeName)
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: net.n3.nanoxml.XMLValidationException of course :-)

unexpectedElement

public void unexpectedElement(String systemID, int lineNr, String parentElementName, String unexpectedElementName)
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: net.n3.nanoxml.XMLValidationException of course :-)

unexpectedPCData

public void unexpectedPCData(String systemID, int lineNr, String parentElementName)
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: net.n3.nanoxml.XMLValidationException of course :-)

validationError

public void validationError(String systemID, int lineNr, String message, String elementName, String attributeName, String attributeValue)
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: net.n3.nanoxml.XMLValidationException of course :-)