blob: 409e44a17c3e426b3bdc0396b36cdb29f35996ef [file] [log] [blame]
// DefaultHandler2.java - extended DefaultHandler
// http://www.saxproject.org
// Public Domain: no warranty.
// $Id: DefaultHandler2.java,v 1.3 2002/01/12 19:04:19 dbrownell Exp $
using Sax.Helpers;
namespace Sax.Ext
{
/// <summary>
/// This class extends the SAX2 base handler class to support the
/// SAX2 <see cref="ILexicalHandler"/>, <see cref="IDeclHandler"/>, and
/// <see cref="IEntityResolver2"/> extensions. Except for overriding the
/// original SAX1 <see cref="DefaultHandler.ResolveEntity(string, string)"/>
/// method the added handler methods just return. Subclassers may
/// override everything on a method-by-method basis.
/// </summary>
/// <remarks>
/// <em>This module, both source code and documentation, is in the
/// Public Domain, and comes with <strong>NO WARRANTY</strong>.</em>
/// <para/>
/// <em>Note:</em> this class might yet learn that the
/// <see cref="IContentHandler.SetDocumentLocator(ILocator)"/> call might be passed a
/// <see cref="Locator2"/> object, and that the
/// <em>ContentHandler.startElement()</em> call might be passed a
/// <see cref="Attributes2"/> object.
/// </remarks>
/// <since>2.0 (extensions 1.1 alpha)</since>
/// <author>David Brownell</author>
/// <version>TBS</version>
public class DefaultHandler2 : DefaultHandler, ILexicalHandler, IDeclHandler, IEntityResolver2
{
/// <summary>Constructs a handler which ignores all parsing events.</summary>
public DefaultHandler2() { }
// SAX2 ext-1.0 LexicalHandler
public virtual void StartCDATA()
{ }
public virtual void EndCDATA()
{ }
public virtual void StartDTD(string name, string publicId, string systemId)
{ }
public virtual void EndDTD()
{ }
public virtual void StartEntity(string name)
{ }
public virtual void EndEntity(string name)
{ }
public virtual void Comment(char[] ch, int start, int length)
{ }
// SAX2 ext-1.0 DeclHandler
public virtual void AttributeDecl(string eName, string aName,
string type, string mode, string value)
{ }
public virtual void ElementDecl(string name, string model)
{ }
public virtual void ExternalEntityDecl(string name,
string publicId, string systemId)
{ }
public virtual void InternalEntityDecl(string name, string value)
{ }
// SAX2 ext-1.1 EntityResolver2
/// <summary>
/// Tells the parser that if no external subset has been declared
/// in the document text, none should be used.
/// </summary>
public virtual InputSource GetExternalSubset(string name, string baseURI)
{
return null;
}
/// <summary>
/// Tells the parser to resolve the systemId against the baseURI
/// and read the entity text from that resulting absolute URI.
/// Note that because the older <see cref="DefaultHandler.ResolveEntity(string, string)"/>,
/// method is overridden to call this one, this method may sometimes
/// be invoked with null <paramref name="name"/> and <paramref name="baseURI"/>, and
/// with the <paramref name="systemId"/> already absolutized.
/// </summary>
public virtual InputSource ResolveEntity(string name, string publicId,
string baseURI, string systemId)
{ return null; }
// SAX1 EntityResolver
/// <summary>
/// Invokes <see cref="IEntityResolver2.ResolveEntity(string, string, string, string)"/>
/// with null entity name and base URI.
/// You only need to override that method to use this class.
/// </summary>
public override InputSource ResolveEntity(string publicId, string systemId)
{
return ResolveEntity(null, publicId, null, systemId);
}
}
}