File: System\Xml\Core\IDtdParserAdapter.cs
Web Access
Project: src\src\libraries\System.Private.Xml\src\System.Private.Xml.csproj (System.Private.Xml)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System;
using System.Diagnostics.CodeAnalysis;
using System.Text;
using System.Xml.Schema;
 
namespace System.Xml
{
    internal partial interface IDtdParserAdapter
    {
        XmlNameTable NameTable { get; }
        IXmlNamespaceResolver? NamespaceResolver { get; }
 
        Uri? BaseUri { get; }
 
        char[] ParsingBuffer { get; }
        int ParsingBufferLength { get; }
        int CurrentPosition { get; set; }
        int LineNo { get; }
        int LineStartPosition { get; }
        bool IsEof { get; }
        int EntityStackLength { get; }
        bool IsEntityEolNormalized { get; }
 
        int ReadData();
 
        void OnNewLine(int pos);
 
        int ParseNumericCharRef(StringBuilder? internalSubsetBuilder);
        int ParseNamedCharRef(bool expand, StringBuilder? internalSubsetBuilder);
        void ParsePI(StringBuilder? sb);
        void ParseComment(StringBuilder? sb);
 
        bool PushEntity(IDtdEntityInfo entity, out int entityId);
 
        bool PopEntity(out IDtdEntityInfo? oldEntity, out int newEntityId);
 
        bool PushExternalSubset(string? systemId, string? publicId);
 
        void PushInternalDtd(string baseUri, string internalDtd);
        void OnSystemId(string systemId, LineInfo keywordLineInfo, LineInfo systemLiteralLineInfo);
        void OnPublicId(string publicId, LineInfo keywordLineInfo, LineInfo publicLiteralLineInfo);
 
        [DoesNotReturn]
        void Throw(Exception e);
    }
 
    internal interface IDtdParserAdapterWithValidation : IDtdParserAdapter
    {
        bool DtdValidation { get; }
        IValidationEventHandling? ValidationEventHandling { get; }
    }
 
    internal interface IDtdParserAdapterV1 : IDtdParserAdapterWithValidation
    {
        bool V1CompatibilityMode { get; }
        bool Normalization { get; }
        bool Namespaces { get; }
    }
}