mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 17:09:09 +02:00
SAX cleanup, part 1:
* dynamic -> virtual (does not change anything, in fact, because FPC handles these two keywords identically). * Default implementations for GetFeature, GetProperty, SetFeature, SetProperty - removes warnings about abstract methods at build time. git-svn-id: trunk@13382 -
This commit is contained in:
parent
d8a74620a5
commit
cc253cca5b
@ -27,6 +27,8 @@ uses SysUtils, Classes;
|
|||||||
|
|
||||||
resourcestring
|
resourcestring
|
||||||
SSAXAttributeIndexError = 'Invalid attribute index %d';
|
SSAXAttributeIndexError = 'Invalid attribute index %d';
|
||||||
|
SSAXUnrecognizedFeature = 'Unknown SAX feature: "%s"';
|
||||||
|
SSAXUnrecognizedProperty = 'Unknown SAX property: "%s"';
|
||||||
|
|
||||||
const
|
const
|
||||||
XMLNS = 'http://www.w3.org/XML/1998/namespace';
|
XMLNS = 'http://www.w3.org/XML/1998/namespace';
|
||||||
@ -47,6 +49,7 @@ type
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
ESAXParseException = class(ESAXError);
|
ESAXParseException = class(ESAXError);
|
||||||
|
ESAXNotRecognizedException = class(ESAXError);
|
||||||
|
|
||||||
|
|
||||||
{ TSAXInputSource: A single input source for an XML entity }
|
{ TSAXInputSource: A single input source for an XML entity }
|
||||||
@ -175,40 +178,40 @@ type
|
|||||||
FCurColumnNumber, FCurLineNumber: Integer;
|
FCurColumnNumber, FCurLineNumber: Integer;
|
||||||
FCurPublicID, FCurSystemID: SAXString;
|
FCurPublicID, FCurSystemID: SAXString;
|
||||||
|
|
||||||
function GetFeature(const Name: String): Boolean; dynamic; abstract;
|
function GetFeature(const Name: String): Boolean; virtual;
|
||||||
function GetProperty(const Name: String): TObject; dynamic; abstract;
|
function GetProperty(const Name: String): TObject; virtual;
|
||||||
procedure SetFeature(const Name: String; Value: Boolean); dynamic; abstract;
|
procedure SetFeature(const Name: String; Value: Boolean); virtual;
|
||||||
procedure SetProperty(const Name: String; Value: TObject); dynamic; abstract;
|
procedure SetProperty(const Name: String; Value: TObject); virtual;
|
||||||
|
|
||||||
// Notification of the content of a document
|
// Notification of the content of a document
|
||||||
procedure DoCharacters(const ch: PSAXChar; AStart, ALength: Integer); dynamic;
|
procedure DoCharacters(const ch: PSAXChar; AStart, ALength: Integer); virtual;
|
||||||
procedure DoComment(const ch: PSAXChar; AStart, ALength: Integer); dynamic;
|
procedure DoComment(const ch: PSAXChar; AStart, ALength: Integer); virtual;
|
||||||
procedure DoEndDocument; dynamic;
|
procedure DoEndDocument; virtual;
|
||||||
procedure DoEndElement(const NamespaceURI, LocalName, QName: SAXString); dynamic;
|
procedure DoEndElement(const NamespaceURI, LocalName, QName: SAXString); virtual;
|
||||||
procedure DoEndPrefixMapping(const Prefix: SAXString); dynamic;
|
procedure DoEndPrefixMapping(const Prefix: SAXString); virtual;
|
||||||
procedure DoIgnorableWhitespace(const ch: PSAXChar; AStart, ALength: Integer); dynamic;
|
procedure DoIgnorableWhitespace(const ch: PSAXChar; AStart, ALength: Integer); virtual;
|
||||||
procedure DoProcessingInstruction(const Target, Data: SAXString); dynamic;
|
procedure DoProcessingInstruction(const Target, Data: SAXString); virtual;
|
||||||
procedure DoSkippedEntity(const Name: SAXString); dynamic;
|
procedure DoSkippedEntity(const Name: SAXString); virtual;
|
||||||
procedure DoStartDocument; dynamic;
|
procedure DoStartDocument; virtual;
|
||||||
procedure DoStartElement(const NamespaceURI, LocalName, QName: SAXString; Atts: TSAXAttributes); dynamic;
|
procedure DoStartElement(const NamespaceURI, LocalName, QName: SAXString; Atts: TSAXAttributes); virtual;
|
||||||
procedure DoStartPrefixMapping(const Prefix, URI: SAXString); dynamic;
|
procedure DoStartPrefixMapping(const Prefix, URI: SAXString); virtual;
|
||||||
|
|
||||||
// Notification of basic DTD-related events
|
// Notification of basic DTD-related events
|
||||||
procedure DoNotationDecl(const Name, PublicID, SystemID: SAXString); dynamic;
|
procedure DoNotationDecl(const Name, PublicID, SystemID: SAXString); virtual;
|
||||||
procedure DoUnparsedEntityDecl(const Name, PublicID,
|
procedure DoUnparsedEntityDecl(const Name, PublicID,
|
||||||
SystemID, NotationName: SAXString); dynamic;
|
SystemID, NotationName: SAXString); virtual;
|
||||||
|
|
||||||
// Resolving entities
|
// Resolving entities
|
||||||
function DoResolveEntity(const PublicID,
|
function DoResolveEntity(const PublicID,
|
||||||
SystemID: SAXString): TSAXInputSource; dynamic;
|
SystemID: SAXString): TSAXInputSource; virtual;
|
||||||
|
|
||||||
// SAX error handlers
|
// SAX error handlers
|
||||||
procedure DoError(AException: ESAXParseException); dynamic;
|
procedure DoError(AException: ESAXParseException); virtual;
|
||||||
procedure DoFatalError(AException: ESAXParseException); dynamic;
|
procedure DoFatalError(AException: ESAXParseException); virtual;
|
||||||
procedure DoWarning(AException: ESAXParseException); dynamic;
|
procedure DoWarning(AException: ESAXParseException); virtual;
|
||||||
public
|
public
|
||||||
procedure Parse(AInput: TSAXInputSource); dynamic; abstract; overload;
|
procedure Parse(AInput: TSAXInputSource); virtual; abstract; overload;
|
||||||
procedure Parse(const SystemID: SAXString); dynamic; overload;
|
procedure Parse(const SystemID: SAXString); virtual; overload;
|
||||||
procedure ParseStream(AStream: TStream);
|
procedure ParseStream(AStream: TStream);
|
||||||
|
|
||||||
// Current location
|
// Current location
|
||||||
@ -672,6 +675,28 @@ begin
|
|||||||
OnUnparsedEntityDecl(Self, Name, PublicID, SystemID, NotationName);
|
OnUnparsedEntityDecl(Self, Name, PublicID, SystemID, NotationName);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TSAXReader.GetFeature(const Name: String): Boolean;
|
||||||
|
begin
|
||||||
|
raise ESAXNotRecognizedException.CreateFmt(SSAXUnrecognizedFeature, [Name]);
|
||||||
|
Result := False;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TSAXReader.GetProperty(const Name: String): TObject;
|
||||||
|
begin
|
||||||
|
raise ESAXNotRecognizedException.CreateFmt(SSAXUnrecognizedProperty, [Name]);
|
||||||
|
Result := nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSAXReader.SetFeature(const Name: String; Value: Boolean);
|
||||||
|
begin
|
||||||
|
raise ESAXNotRecognizedException.CreateFmt(SSAXUnrecognizedFeature, [Name]);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TSAXReader.SetProperty(const Name: String; Value: TObject);
|
||||||
|
begin
|
||||||
|
raise ESAXNotRecognizedException.CreateFmt(SSAXUnrecognizedProperty, [Name]);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TSAXReader.DoCharacters(const ch: PSAXChar;
|
procedure TSAXReader.DoCharacters(const ch: PSAXChar;
|
||||||
AStart, ALength: Integer);
|
AStart, ALength: Integer);
|
||||||
begin
|
begin
|
||||||
|
Loading…
Reference in New Issue
Block a user