Преглед изворни кода

* xmlread.pp, renamed TXMLReader to TXMLTextReader.

git-svn-id: trunk@18054 -
sergei пре 14 година
родитељ
комит
65b41a6c73
1 измењених фајлова са 117 додато и 117 уклоњено
  1. 117 117
      packages/fcl-xml/src/xmlread.pp

+ 117 - 117
packages/fcl-xml/src/xmlread.pp

@@ -160,13 +160,13 @@ type
 
   TDOMEntityEx = class(TDOMEntity);
 
-  TXMLReader = class;
+  TXMLTextReader = class;
 
   TXMLCharSource = class(TObject)
   private
     FBuf: PWideChar;
     FBufEnd: PWideChar;
-    FReader: TXMLReader;
+    FReader: TXMLTextReader;
     FParent: TXMLCharSource;
     FEntity: TEntityDecl;
     FLineNo: Integer;
@@ -268,7 +268,7 @@ type
 
   TLiteralType = (ltPlain, ltPubid, ltEntity);
 
-  TXMLReader = class
+  TXMLTextReader = class
   private
     FSource: TXMLCharSource;
     FNameTable: THashTable;
@@ -536,7 +536,7 @@ procedure TDOMParser.Parse(Src: TXMLInputSource; out ADoc: TXMLDocument);
 var
   InputSrc: TXMLCharSource;
 begin
-  with TXMLReader.Create(Self) do
+  with TXMLTextReader.Create(Self) do
   try
     ConvertSource(Src, InputSrc);  // handles 'no-input-specified' case
     ProcessXML(InputSrc)
@@ -551,7 +551,7 @@ var
   Src: TXMLCharSource;
 begin
   ADoc := nil;
-  with TXMLReader.Create(Self) do
+  with TXMLTextReader.Create(Self) do
   try
     if ResolveResource(URI, '', '', Src) then
       ProcessXML(Src)
@@ -581,7 +581,7 @@ begin
   if not (node.NodeType in [ELEMENT_NODE, DOCUMENT_FRAGMENT_NODE]) then
     raise EDOMHierarchyRequest.Create('DOMParser.ParseWithContext');
 
-  with TXMLReader.Create(Self) do
+  with TXMLTextReader.Create(Self) do
   try
     ConvertSource(Src, InputSrc);    // handles 'no-input-specified' case
     Frag := Context.OwnerDocument.CreateDocumentFragment;
@@ -957,9 +957,9 @@ begin
   inherited Destroy;
 end;
 
-{ TXMLReader }
+{ TXMLTextReader }
 
-procedure TXMLReader.ConvertSource(SrcIn: TXMLInputSource; out SrcOut: TXMLCharSource);
+procedure TXMLTextReader.ConvertSource(SrcIn: TXMLInputSource; out SrcOut: TXMLCharSource);
 begin
   SrcOut := nil;
   if Assigned(SrcIn) then
@@ -975,13 +975,13 @@ begin
     DoErrorPos(esFatal, 'No input source specified', NullLocation);
 end;
 
-procedure TXMLReader.StoreLocation(out Loc: TLocation);
+procedure TXMLTextReader.StoreLocation(out Loc: TLocation);
 begin
   Loc.Line := FSource.FLineNo;
   Loc.LinePos := FSource.FBuf-FSource.LFPos;
 end;
 
-function TXMLReader.ResolveResource(const ASystemID, APublicID, ABaseURI: WideString; out Source: TXMLCharSource): Boolean;
+function TXMLTextReader.ResolveResource(const ASystemID, APublicID, ABaseURI: WideString; out Source: TXMLCharSource): Boolean;
 var
   AbsSysID: WideString;
   Filename: string;
@@ -1012,7 +1012,7 @@ begin
   Result := Assigned(Source);
 end;
 
-procedure TXMLReader.Initialize(ASource: TXMLCharSource);
+procedure TXMLTextReader.Initialize(ASource: TXMLCharSource);
 begin
   ASource.FParent := FSource;
   FSource := ASource;
@@ -1021,29 +1021,29 @@ begin
   FSource.Initialize;
 end;
 
-procedure TXMLReader.FatalError(Expected: WideChar);
+procedure TXMLTextReader.FatalError(Expected: WideChar);
 begin
 // FIX: don't output what is found - anything may be found, including exploits...
   FatalError('Expected "%1s"', [string(Expected)]);
 end;
 
-procedure TXMLReader.FatalError(const descr: String; LineOffs: Integer);
+procedure TXMLTextReader.FatalError(const descr: String; LineOffs: Integer);
 begin
   DoError(esFatal, descr, LineOffs);
 end;
 
-procedure TXMLReader.FatalError(const descr: string; const args: array of const; LineOffs: Integer);
+procedure TXMLTextReader.FatalError(const descr: string; const args: array of const; LineOffs: Integer);
 begin
   DoError(esFatal, Format(descr, args), LineOffs);
 end;
 
-procedure TXMLReader.ValidationError(const Msg: string; const Args: array of const; LineOffs: Integer);
+procedure TXMLTextReader.ValidationError(const Msg: string; const Args: array of const; LineOffs: Integer);
 begin
   if FValidate then
     DoError(esError, Format(Msg, Args), LineOffs);
 end;
 
-procedure TXMLReader.ValidationErrorWithName(const Msg: string; LineOffs: Integer);
+procedure TXMLTextReader.ValidationErrorWithName(const Msg: string; LineOffs: Integer);
 var
   ws: WideString;
 begin
@@ -1051,7 +1051,7 @@ begin
   ValidationError(Msg, [ws], LineOffs);
 end;
 
-procedure TXMLReader.DoError(Severity: TErrorSeverity; const descr: string; LineOffs: Integer);
+procedure TXMLTextReader.DoError(Severity: TErrorSeverity; const descr: string; LineOffs: Integer);
 var
   Loc: TLocation;
 begin
@@ -1065,13 +1065,13 @@ begin
     DoErrorPos(Severity, descr, FTokenStart);
 end;
 
-procedure TXMLReader.DoErrorPos(Severity: TErrorSeverity; const descr: string;
+procedure TXMLTextReader.DoErrorPos(Severity: TErrorSeverity; const descr: string;
   const args: array of const; const ErrPos: TLocation);
 begin
   DoErrorPos(Severity, Format(descr, args), ErrPos);
 end;
 
-procedure TXMLReader.DoErrorPos(Severity: TErrorSeverity; const descr: string; const ErrPos: TLocation);
+procedure TXMLTextReader.DoErrorPos(Severity: TErrorSeverity; const descr: string; const ErrPos: TLocation);
 var
   E: EXMLReadError;
   sysid: WideString;
@@ -1095,7 +1095,7 @@ begin
   E.Free;
 end;
 
-procedure TXMLReader.CheckMaxChars(ToAdd: Cardinal);
+procedure TXMLTextReader.CheckMaxChars(ToAdd: Cardinal);
 var
   src: TXMLCharSource;
   total: Cardinal;
@@ -1113,7 +1113,7 @@ begin
   until src = nil;
 end;
 
-procedure TXMLReader.CallErrorHandler(E: EXMLReadError);
+procedure TXMLTextReader.CallErrorHandler(E: EXMLReadError);
 begin
   try
     if Assigned(FCtrl) and Assigned(FCtrl.FOnError) then
@@ -1127,7 +1127,7 @@ begin
   end;
 end;
 
-function TXMLReader.SkipWhitespace(PercentAloneIsOk: Boolean): Boolean;
+function TXMLTextReader.SkipWhitespace(PercentAloneIsOk: Boolean): Boolean;
 begin
   Result := False;
   repeat
@@ -1162,13 +1162,13 @@ begin
   until False;
 end;
 
-procedure TXMLReader.ExpectWhitespace;
+procedure TXMLTextReader.ExpectWhitespace;
 begin
   if not SkipWhitespace then
     FatalError('Expected whitespace');
 end;
 
-function TXMLReader.SkipS(Required: Boolean): Boolean;
+function TXMLTextReader.SkipS(Required: Boolean): Boolean;
 var
   p: PWideChar;
 begin
@@ -1193,7 +1193,7 @@ begin
     FatalError('Expected whitespace');
 end;
 
-procedure TXMLReader.ExpectString(const s: String);
+procedure TXMLTextReader.ExpectString(const s: String);
 var
   I: Integer;
 begin
@@ -1205,7 +1205,7 @@ begin
   end;
 end;
 
-function TXMLReader.CheckForChar(c: WideChar): Boolean;
+function TXMLTextReader.CheckForChar(c: WideChar): Boolean;
 begin
   Result := (FSource.FBuf^ = c);
   if Result then
@@ -1216,7 +1216,7 @@ begin
   end;  
 end;
 
-procedure TXMLReader.SkipQuote(out Delim: WideChar; required: Boolean);
+procedure TXMLTextReader.SkipQuote(out Delim: WideChar; required: Boolean);
 begin
   Delim := #0;
   if (FSource.FBuf^ = '''') or (FSource.FBuf^ = '"') then
@@ -1232,7 +1232,7 @@ end;
 const
   PrefixDefault: array[0..4] of WideChar = ('x','m','l','n','s');
 
-constructor TXMLReader.Create;
+constructor TXMLTextReader.Create;
 begin
   inherited Create;
   BufAllocate(FName, 128);
@@ -1246,7 +1246,7 @@ begin
   SetLength(FValidators, 16);
 end;
 
-constructor TXMLReader.Create(AParser: TDOMParser);
+constructor TXMLTextReader.Create(AParser: TDOMParser);
 begin
   Create;
   FCtrl := AParser;
@@ -1264,7 +1264,7 @@ begin
   FMaxChars := FCtrl.Options.MaxChars;
 end;
 
-destructor TXMLReader.Destroy;
+destructor TXMLTextReader.Destroy;
 var
   i: Integer;
 begin
@@ -1288,7 +1288,7 @@ begin
   inherited Destroy;
 end;
 
-procedure TXMLReader.XML11_BuildTables;
+procedure TXMLTextReader.XML11_BuildTables;
 begin
   FNamePages := Xml11NamePages;
   FXML11 := True;
@@ -1297,7 +1297,7 @@ end;
 
 { Must be executed after doc has been set.
   After introducing own NameTable, merge this into constructor }
-procedure TXMLReader.NSPrepare;
+procedure TXMLTextReader.NSPrepare;
 begin
   if FNamespaces then
   begin
@@ -1311,7 +1311,7 @@ begin
   end;
 end;
 
-procedure TXMLReader.ProcessXML(ASource: TXMLCharSource);
+procedure TXMLTextReader.ProcessXML(ASource: TXMLCharSource);
 begin
   doc := TXMLDocument.Create;
   doc.documentURI := ASource.SystemID;  // TODO: to be changed to URI or BaseURI
@@ -1337,7 +1337,7 @@ begin
   FIDMap := nil;
 end;
 
-procedure TXMLReader.ProcessFragment(ASource: TXMLCharSource; AOwner: TDOMNode);
+procedure TXMLTextReader.ProcessFragment(ASource: TXMLCharSource; AOwner: TDOMNode);
 var
   DoctypeNode: TDOMDocumentTypeEx;
 begin
@@ -1368,7 +1368,7 @@ begin
   ParseContent(aOwner as TDOMNode_WithChildren);
 end;
 
-function TXMLReader.CheckName(aFlags: TCheckNameFlags): Boolean;
+function TXMLTextReader.CheckName(aFlags: TCheckNameFlags): Boolean;
 var
   p: PWideChar;
   NameStartFlag: Boolean;
@@ -1441,13 +1441,13 @@ begin
     RaiseNameNotFound;
 end;
 
-procedure TXMLReader.CheckNCName;
+procedure TXMLTextReader.CheckNCName;
 begin
   if FNamespaces and (FColonPos <> -1) then
     FatalError('Names of entities, notations and processing instructions may not contain colons', FName.Length);
 end;
 
-procedure TXMLReader.RaiseNameNotFound;
+procedure TXMLTextReader.RaiseNameNotFound;
 begin
   if FColonPos <> -1 then
     FatalError('Bad QName syntax, local part is missing')
@@ -1460,13 +1460,13 @@ begin
     FatalError('Name starts with invalid character');
 end;
 
-function TXMLReader.ExpectName: WideString;
+function TXMLTextReader.ExpectName: WideString;
 begin
   CheckName;
   SetString(Result, FName.Buffer, FName.Length);
 end;
 
-function TXMLReader.ResolvePredefined: Boolean;
+function TXMLTextReader.ResolvePredefined: Boolean;
 var
   wc: WideChar;
 begin
@@ -1500,7 +1500,7 @@ begin
   Result := True;
 end;
 
-function TXMLReader.ParseRef(var ToFill: TWideCharBuf): Boolean;  // [67]
+function TXMLTextReader.ParseRef(var ToFill: TWideCharBuf): Boolean;  // [67]
 var
   Code: Integer;
 begin
@@ -1560,7 +1560,7 @@ const
   a node chain starting from AttrData.FNext. Node chain is built only for the
   first level. If NonCDATA=True, additionally normalizes whitespace in string value. }
 
-procedure TXMLReader.ExpectAttValue(AttrData: PNodeData; NonCDATA: Boolean);
+procedure TXMLTextReader.ExpectAttValue(AttrData: PNodeData; NonCDATA: Boolean);
 var
   wc: WideChar;
   Delim: WideChar;
@@ -1641,7 +1641,7 @@ end;
 const
   PrefixChar: array[Boolean] of string = ('', '%');
 
-procedure TXMLReader.EntityToSource(AEntity: TEntityDecl; out Src: TXMLCharSource);
+procedure TXMLTextReader.EntityToSource(AEntity: TEntityDecl; out Src: TXMLCharSource);
 begin
   if AEntity.FOnStack then
     FatalError('Entity ''%s%s'' recursively references itself', [PrefixChar[AEntity.FIsPE], AEntity.FName]);
@@ -1670,7 +1670,7 @@ begin
   Src.FEntity := AEntity;
 end;
 
-function TXMLReader.ContextPush(AEntity: TEntityDecl): Boolean;
+function TXMLTextReader.ContextPush(AEntity: TEntityDecl): Boolean;
 var
   Src: TXMLCharSource;
 begin
@@ -1680,7 +1680,7 @@ begin
     Initialize(Src);
 end;
 
-function TXMLReader.ContextPop(Forced: Boolean): Boolean;
+function TXMLTextReader.ContextPop(Forced: Boolean): Boolean;
 var
   Src: TXMLCharSource;
   Error: Boolean;
@@ -1705,7 +1705,7 @@ begin
   end;
 end;
 
-function TXMLReader.EntityCheck(NoExternals: Boolean): TEntityDecl;
+function TXMLTextReader.EntityCheck(NoExternals: Boolean): TEntityDecl;
 var
   RefName: WideString;
   cnt: Integer;
@@ -1742,7 +1742,7 @@ begin
     CheckMaxChars(Result.FCharCount - cnt);
 end;
 
-procedure TXMLReader.StartPE;
+procedure TXMLTextReader.StartPE;
 var
   PEnt: TEntityDecl;
 begin
@@ -1770,7 +1770,7 @@ begin
   FHavePERefs := True;
 end;
 
-function TXMLReader.PrefetchEntity(AEntity: TEntityDecl): Boolean;
+function TXMLTextReader.PrefetchEntity(AEntity: TEntityDecl): Boolean;
 begin
   Result := ContextPush(AEntity);
   if Result then
@@ -1796,7 +1796,7 @@ const
     [#0, '%', '&', '''', '"']                 // ltEntity
   );
 
-function TXMLReader.ParseLiteral(var ToFill: TWideCharBuf; aType: TLiteralType;
+function TXMLTextReader.ParseLiteral(var ToFill: TWideCharBuf; aType: TLiteralType;
   Required: Boolean): Boolean;
 var
   start: TObject;
@@ -1845,7 +1845,7 @@ begin
     BufNormalize(ToFill, dummy);
 end;
 
-function TXMLReader.SkipUntilSeq(const Delim: TSetOfChar; c1: WideChar; c2: WideChar = #0): Boolean;
+function TXMLTextReader.SkipUntilSeq(const Delim: TSetOfChar; c1: WideChar; c2: WideChar = #0): Boolean;
 var
   wc: WideChar;
 begin
@@ -1871,7 +1871,7 @@ begin
   until wc = #0;
 end;
 
-procedure TXMLReader.ParseComment(discard: Boolean);    // [15]
+procedure TXMLTextReader.ParseComment(discard: Boolean);    // [15]
 var
   SaveLength: Integer;
 begin
@@ -1892,7 +1892,7 @@ begin
   FValue.Length := SaveLength;
 end;
 
-procedure TXMLReader.ParsePI;                    // [16]
+procedure TXMLTextReader.ParsePI;                    // [16]
 begin
   FSource.NextChar;      // skip '?'
   CheckName;
@@ -1919,7 +1919,7 @@ begin
     FNameTable.FindOrAdd(FName.Buffer, FName.Length));
 end;
 
-function TXMLReader.CreatePINode: TDOMNode;
+function TXMLTextReader.CreatePINode: TDOMNode;
 var
   NameStr, ValueStr: WideString;
 begin
@@ -1931,7 +1931,7 @@ end;
 const
   vers: array[Boolean] of TXMLVersion = (xmlVersion10, xmlVersion11);
 
-procedure TXMLReader.ParseXmlOrTextDecl(TextDecl: Boolean);
+procedure TXMLTextReader.ParseXmlOrTextDecl(TextDecl: Boolean);
 var
   Delim: WideChar;
   buf: array[0..31] of WideChar;
@@ -2012,7 +2012,7 @@ begin
     FXML11 := True;
 end;
 
-procedure TXMLReader.DTDReloadHook;
+procedure TXMLTextReader.DTDReloadHook;
 var
   p: PWideChar;
 begin
@@ -2031,7 +2031,7 @@ begin
   FDTDStartPos := TXMLDecodingSource(FSource).FBufStart;
 end;
 
-procedure TXMLReader.ParseDoctypeDecl;    // [28]
+procedure TXMLTextReader.ParseDoctypeDecl;    // [28]
 var
   Src: TXMLCharSource;
 begin
@@ -2092,7 +2092,7 @@ begin
   FCurrNode^.FNodeType := ntDocumentType;
 end;
 
-procedure TXMLReader.ExpectEq;   // [25]
+procedure TXMLTextReader.ExpectEq;   // [25]
 begin
   if FSource.FBuf^ <> '=' then
     SkipS;
@@ -2105,18 +2105,18 @@ end;
 
 { DTD stuff }
 
-procedure TXMLReader.BadPENesting(S: TErrorSeverity);
+procedure TXMLTextReader.BadPENesting(S: TErrorSeverity);
 begin
   if (S = esFatal) or FValidate then
     DoError(S, 'Parameter entities must be properly nested');
 end;
 
-procedure TXMLReader.StandaloneError(LineOffs: Integer);
+procedure TXMLTextReader.StandaloneError(LineOffs: Integer);
 begin
   ValidationError('Standalone constriant violation', [], LineOffs);
 end;
 
-function TXMLReader.ParseQuantity: TCPQuant;
+function TXMLTextReader.ParseQuantity: TCPQuant;
 begin
   case FSource.FBuf^ of
     '?': Result := cqZeroOrOnce;
@@ -2129,7 +2129,7 @@ begin
   FSource.NextChar;
 end;
 
-function TXMLReader.FindOrCreateElDef: TElementDecl;
+function TXMLTextReader.FindOrCreateElDef: TElementDecl;
 var
   p: PHashItem;
 begin
@@ -2143,7 +2143,7 @@ begin
   end;
 end;
 
-procedure TXMLReader.ExpectChoiceOrSeq(CP: TContentParticle; MustEndIn: TObject);     // [49], [50]
+procedure TXMLTextReader.ExpectChoiceOrSeq(CP: TContentParticle; MustEndIn: TObject);     // [49], [50]
 var
   Delim: WideChar;
   CurrentCP: TContentParticle;
@@ -2183,7 +2183,7 @@ begin
     CP.CPType := ctSeq;    // '(foo)' is a sequence!
 end;
 
-procedure TXMLReader.ParseElementDecl;            // [45]
+procedure TXMLTextReader.ParseElementDecl;            // [45]
 var
   ElDef: TElementDecl;
   CurrentEntity: TObject;
@@ -2263,7 +2263,7 @@ begin
 end;
 
 
-procedure TXMLReader.ParseNotationDecl;        // [82]
+procedure TXMLTextReader.ParseNotationDecl;        // [82]
 var
   NameStr, SysID, PubID: WideString;
 begin
@@ -2290,7 +2290,7 @@ const
     'NOTATION'
   );
 
-procedure TXMLReader.ParseAttlistDecl;         // [52]
+procedure TXMLTextReader.ParseAttlistDecl;         // [52]
 var
   ElDef: TElementDecl;
   AttDef: TAttributeDef;
@@ -2423,7 +2423,7 @@ begin
   end;
 end;
 
-procedure TXMLReader.ParseEntityDecl;        // [70]
+procedure TXMLTextReader.ParseEntityDecl;        // [70]
 var
   IsPE, Exists: Boolean;
   Entity: TEntityDecl;
@@ -2500,7 +2500,7 @@ begin
 end;
 
 
-procedure TXMLReader.ParseMarkupDecl;        // [29]
+procedure TXMLTextReader.ParseMarkupDecl;        // [29]
 var
   IncludeLevel: Integer;
   IgnoreLevel: Integer;
@@ -2611,7 +2611,7 @@ begin
     FatalError('Illegal character in DTD');
 end;
 
-procedure TXMLReader.ProcessDTD(ASource: TXMLCharSource);
+procedure TXMLTextReader.ProcessDTD(ASource: TXMLCharSource);
 begin
   doc := TXMLDocument.Create;
   FNameTable := doc.Names;
@@ -2624,9 +2624,9 @@ begin
 end;
 
 
-procedure TXMLReader.LoadEntity(AEntity: TEntityDecl);
+procedure TXMLTextReader.LoadEntity(AEntity: TEntityDecl);
 var
-  InnerReader: TXMLReader;
+  InnerReader: TXMLTextReader;
   Src: TXMLCharSource;
   Ent: TDOMEntityEx;
   DoctypeNode: TDOMDocumentType;
@@ -2637,7 +2637,7 @@ begin
   Ent := TDOMEntityEx(DocTypeNode.Entities.GetNamedItem(AEntity.FName));
   if Ent = nil then
     Exit;
-  InnerReader := TXMLReader.Create(FCtrl);
+  InnerReader := TXMLTextReader.Create(FCtrl);
   try
     InnerReader.FAttrTag := FAttrTag;
     InnerReader.FDocType := FDocType.Reference;
@@ -2654,7 +2654,7 @@ begin
   end;
 end;
 
-procedure TXMLReader.ValidateCurrentNode;
+procedure TXMLTextReader.ValidateCurrentNode;
 var
   ElDef: TElementDecl;
   AttDef: TAttributeDef;
@@ -2750,7 +2750,7 @@ begin
   end;
 end;
 
-procedure TXMLReader.HandleEntityStart;
+procedure TXMLTextReader.HandleEntityStart;
 begin
   { FNesting+1 is available due to overallocation in AllocNodeData() }
   FCurrNode := @FNodeStack[FNesting+1];
@@ -2760,7 +2760,7 @@ begin
   FCurrNode^.FValueLength := 0;
 end;
 
-procedure TXMLReader.HandleEntityEnd;
+procedure TXMLTextReader.HandleEntityEnd;
 begin
   ContextPop(True);
   if FNesting > 0 then Dec(FNesting);
@@ -2770,7 +2770,7 @@ begin
   FNext := xtText;
 end;
 
-procedure TXMLReader.ResolveEntity;
+procedure TXMLTextReader.ResolveEntity;
 begin
   if FCurrNode^.FNodeType <> ntEntityReference then
     raise EInvalidOperation.Create('Wrong node type');
@@ -2780,7 +2780,7 @@ begin
   FNext := xtPushEntity;
 end;
 
-procedure TXMLReader.DoStartEntity;
+procedure TXMLTextReader.DoStartEntity;
 var
   src: TXMLCharSource;
 begin
@@ -2798,7 +2798,7 @@ begin
   FNext := xtText;
 end;
 
-function TXMLReader.DoStartElement: TDOMElement;
+function TXMLTextReader.DoStartElement: TDOMElement;
 var
   Attr: TDOMAttr;
   i: Integer;
@@ -2871,7 +2871,7 @@ const
     ntText
   );
 
-procedure TXMLReader.ParseContent(parent: TDOMNode_WithChildren);
+procedure TXMLTextReader.ParseContent(parent: TDOMNode_WithChildren);
 var
   cursor: TDOMNode_WithChildren;
   element: TDOMElement;
@@ -2920,7 +2920,7 @@ begin
   end;
 end;
 
-function TXMLReader.ReadTopLevel: Boolean;
+function TXMLTextReader.ReadTopLevel: Boolean;
 var
   nonWs: Boolean;
   wc: WideChar;
@@ -3020,7 +3020,7 @@ begin
   Result := tok <> xtEOF;
 end;
 
-function TXMLReader.Read: Boolean;
+function TXMLTextReader.Read: Boolean;
 var
   nonWs: Boolean;
   wc: WideChar;
@@ -3199,7 +3199,7 @@ begin
     Reload;
 end;
 
-procedure TXMLReader.ExpectChar(wc: WideChar);
+procedure TXMLTextReader.ExpectChar(wc: WideChar);
 begin
   if FSource.FBuf^ = wc then
     FSource.NextChar
@@ -3208,7 +3208,7 @@ begin
 end;
 
 // Element name already in FNameBuffer
-procedure TXMLReader.ParseStartTag;    // [39] [40] [44]
+procedure TXMLTextReader.ParseStartTag;    // [39] [40] [44]
 var
   ElDef: TElementDecl;
   IsEmpty: Boolean;
@@ -3295,7 +3295,7 @@ begin
     FNext := xtPopEmptyElement;
 end;
 
-procedure TXMLReader.ParseEndTag;     // [42]
+procedure TXMLTextReader.ParseEndTag;     // [42]
 var
   ElName: PHashItem;
 begin
@@ -3321,7 +3321,7 @@ begin
   FNext := xtPopElement;
 end;
 
-procedure TXMLReader.ParseAttribute(ElDef: TElementDecl);
+procedure TXMLTextReader.ParseAttribute(ElDef: TElementDecl);
 var
   attrName: PHashItem;
   attrData: PNodeData;
@@ -3385,7 +3385,7 @@ begin
   end;
 end;
 
-procedure TXMLReader.AddForwardRef(Buf: PWideChar; Length: Integer);
+procedure TXMLTextReader.AddForwardRef(Buf: PWideChar; Length: Integer);
 var
   w: PForwardRef;
 begin
@@ -3395,7 +3395,7 @@ begin
   FForwardRefs.Add(w);
 end;
 
-procedure TXMLReader.ClearForwardRefs;
+procedure TXMLTextReader.ClearForwardRefs;
 var
   I: Integer;
 begin
@@ -3404,7 +3404,7 @@ begin
   FForwardRefs.Clear;
 end;
 
-procedure TXMLReader.ValidateIdRefs;
+procedure TXMLTextReader.ValidateIdRefs;
 var
   I: Integer;
 begin
@@ -3415,7 +3415,7 @@ begin
   ClearForwardRefs;
 end;
 
-procedure TXMLReader.ProcessDefaultAttributes(ElDef: TElementDecl);
+procedure TXMLTextReader.ProcessDefaultAttributes(ElDef: TElementDecl);
 var
   I: Integer;
   AttDef: TAttributeDef;
@@ -3460,7 +3460,7 @@ begin
 end;
 
 
-function TXMLReader.AddBinding(attrData: PNodeData): Boolean;
+function TXMLTextReader.AddBinding(attrData: PNodeData): Boolean;
 var
   nsUri, Pfx: PHashItem;
 begin
@@ -3488,7 +3488,7 @@ begin
     FNSHelper.BindPrefix(attrData^.FValueStr, Pfx);
 end;
 
-procedure TXMLReader.ProcessNamespaceAtts;
+procedure TXMLTextReader.ProcessNamespaceAtts;
 var
   I, J: Integer;
   Pfx, AttrName: PHashItem;
@@ -3518,7 +3518,7 @@ begin
   end;
 end;
 
-function TXMLReader.ParseExternalID(out SysID, PubID: WideString;     // [75]
+function TXMLTextReader.ParseExternalID(out SysID, PubID: WideString;     // [75]
   SysIdOptional: Boolean): Boolean;
 var
   I: Integer;
@@ -3551,7 +3551,7 @@ begin
   Result := True;
 end;
 
-function TXMLReader.ValidateAttrSyntax(AttrDef: TAttributeDef; const aValue: WideString): Boolean;
+function TXMLTextReader.ValidateAttrSyntax(AttrDef: TAttributeDef; const aValue: WideString): Boolean;
 begin
   case AttrDef.DataType of
     dtId, dtIdRef, dtEntity: Result := IsXmlName(aValue, FXML11) and
@@ -3567,7 +3567,7 @@ begin
   end;
 end;
 
-procedure TXMLReader.ValidateAttrValue(AttrDef: TAttributeDef; attrData: PNodeData);
+procedure TXMLTextReader.ValidateAttrValue(AttrDef: TAttributeDef; attrData: PNodeData);
 var
   L, StartPos, EndPos: Integer;
   Entity: TEntityDecl;
@@ -3608,7 +3608,7 @@ begin
   end;
 end;
 
-procedure TXMLReader.ValidateDTD;
+procedure TXMLTextReader.ValidateDTD;
 var
   I: Integer;
 begin
@@ -3619,7 +3619,7 @@ begin
 end;
 
 
-function TXMLReader.DoCDSect(ch: PWideChar; Count: Integer): TDOMNode;
+function TXMLTextReader.DoCDSect(ch: PWideChar; Count: Integer): TDOMNode;
 var
   s: WideString;
 begin
@@ -3629,7 +3629,7 @@ begin
   result := doc.CreateCDATASection(s);
 end;
 
-procedure TXMLReader.DoNotationDecl(const aName, aPubID, aSysID: WideString);
+procedure TXMLTextReader.DoNotationDecl(const aName, aPubID, aSysID: WideString);
 var
   Notation: TNotationDecl;
   Entry: PHashItem;
@@ -3647,7 +3647,7 @@ begin
     ValidationError('Duplicate notation declaration: ''%s''', [aName]);
 end;
 
-function TXMLReader.AddId(aNodeData: PNodeData): Boolean;
+function TXMLTextReader.AddId(aNodeData: PNodeData): Boolean;
 var
   e: PHashItem;
 begin
@@ -3659,7 +3659,7 @@ begin
     aNodeData^.FIDEntry := e;
 end;
 
-function TXMLReader.AllocAttributeData: PNodeData;
+function TXMLTextReader.AllocAttributeData: PNodeData;
 begin
   Result := AllocNodeData(FNesting + FAttrCount + 1);
   Result^.FNodeType := ntAttribute;
@@ -3667,7 +3667,7 @@ begin
   Inc(FAttrCount);
 end;
 
-function TXMLReader.AllocNodeData(AIndex: Integer): PNodeData;
+function TXMLTextReader.AllocNodeData(AIndex: Integer): PNodeData;
 begin
   {make sure we have an extra slot to place child text/comment/etc}
   if AIndex >= Length(FNodeStack)-1 then
@@ -3679,7 +3679,7 @@ begin
   Result^.FIDEntry := nil;
 end;
 
-function TXMLReader.AllocAttributeValueChunk(APrev: PNodeData): PNodeData;
+function TXMLTextReader.AllocAttributeValueChunk(APrev: PNodeData): PNodeData;
 begin
   { when parsing DTD, don't take ownership of allocated data }
   if FState = rsDTD then
@@ -3705,7 +3705,7 @@ begin
   APrev^.FNext := result;
 end;
 
-procedure TXMLReader.CleanupAttributes;
+procedure TXMLTextReader.CleanupAttributes;
 var
   i: Integer;
 begin
@@ -3715,7 +3715,7 @@ begin
   FAttrCleanupFlag := False;
 end;
 
-procedure TXMLReader.CleanupAttribute(aNode: PNodeData);
+procedure TXMLTextReader.CleanupAttribute(aNode: PNodeData);
 var
   chunk, tmp: PNodeData;
 begin
@@ -3730,7 +3730,7 @@ begin
   aNode^.FNext := nil;
 end;
 
-procedure TXMLReader.SetNodeInfoWithValue(typ: TXMLNodeType; AName: PHashItem = nil);
+procedure TXMLTextReader.SetNodeInfoWithValue(typ: TXMLNodeType; AName: PHashItem = nil);
 begin
   {FNesting+1 is available due to overallocation in AllocNodeData() }
   FCurrNode := @FNodeStack[FNesting+1];
@@ -3740,7 +3740,7 @@ begin
   FCurrNode^.FValueLength := FValue.Length;
 end;
 
-function TXMLReader.SetupFakeLF(nextstate: TXMLToken): Boolean;
+function TXMLTextReader.SetupFakeLF(nextstate: TXMLToken): Boolean;
 begin
   FValue.Buffer[0] := #10;
   FValue.Length := 1;
@@ -3749,7 +3749,7 @@ begin
   Result := True;
 end;
 
-procedure TXMLReader.PushVC(aElDef: TElementDecl);
+procedure TXMLTextReader.PushVC(aElDef: TElementDecl);
 begin
   Inc(FValidatorNesting);
   if FValidatorNesting >= Length(FValidators) then
@@ -3770,7 +3770,7 @@ begin
   end;
 end;
 
-procedure TXMLReader.PopElement;
+procedure TXMLTextReader.PopElement;
 begin
   if FNamespaces then
     FNSHelper.EndElement;
@@ -3831,12 +3831,12 @@ end;
 
 procedure ReadXMLFile(out ADoc: TXMLDocument; var f: Text);
 var
-  Reader: TXMLReader;
+  Reader: TXMLTextReader;
   Src: TXMLCharSource;
 begin
   ADoc := nil;
   Src := TXMLFileInputSource.Create(f);
-  Reader := TXMLReader.Create;
+  Reader := TXMLTextReader.Create;
   try
     Reader.ProcessXML(Src);
   finally
@@ -3847,11 +3847,11 @@ end;
 
 procedure ReadXMLFile(out ADoc: TXMLDocument; f: TStream; const ABaseURI: String);
 var
-  Reader: TXMLReader;
+  Reader: TXMLTextReader;
   Src: TXMLCharSource;
 begin
   ADoc := nil;
-  Reader := TXMLReader.Create;
+  Reader := TXMLTextReader.Create;
   try
     Src := TXMLStreamInputSource.Create(f, False);
     Src.SystemID := ABaseURI;
@@ -3882,10 +3882,10 @@ end;
 
 procedure ReadXMLFragment(AParentNode: TDOMNode; var f: Text);
 var
-  Reader: TXMLReader;
+  Reader: TXMLTextReader;
   Src: TXMLCharSource;
 begin
-  Reader := TXMLReader.Create;
+  Reader := TXMLTextReader.Create;
   try
     Src := TXMLFileInputSource.Create(f);
     Reader.ProcessFragment(Src, AParentNode);
@@ -3896,10 +3896,10 @@ end;
 
 procedure ReadXMLFragment(AParentNode: TDOMNode; f: TStream; const ABaseURI: String);
 var
-  Reader: TXMLReader;
+  Reader: TXMLTextReader;
   Src: TXMLCharSource;
 begin
-  Reader := TXMLReader.Create;
+  Reader := TXMLTextReader.Create;
   try
     Src := TXMLStreamInputSource.Create(f, False);
     Src.SystemID := ABaseURI;
@@ -3929,11 +3929,11 @@ end;
 
 procedure ReadDTDFile(out ADoc: TXMLDocument; var f: Text);
 var
-  Reader: TXMLReader;
+  Reader: TXMLTextReader;
   Src: TXMLCharSource;
 begin
   ADoc := nil;
-  Reader := TXMLReader.Create;
+  Reader := TXMLTextReader.Create;
   try
     Src := TXMLFileInputSource.Create(f);
     Reader.ProcessDTD(Src);
@@ -3945,11 +3945,11 @@ end;
 
 procedure ReadDTDFile(out ADoc: TXMLDocument; f: TStream; const ABaseURI: String);
 var
-  Reader: TXMLReader;
+  Reader: TXMLTextReader;
   Src: TXMLCharSource;
 begin
   ADoc := nil;
-  Reader := TXMLReader.Create;
+  Reader := TXMLTextReader.Create;
   try
     Src := TXMLStreamInputSource.Create(f, False);
     Src.SystemID := ABaseURI;