| File: System\Xml\Schema\ValidationState.cs | Web Access |
| Project: src\runtime\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.Collections; using System.Collections.Generic; using System.Runtime.InteropServices; namespace System.Xml.Schema { [StructLayout(LayoutKind.Explicit)] internal struct StateUnion { [FieldOffset(0)] public int State; //DFA [FieldOffset(0)] public int AllElementsRequired; //AllContentValidator [FieldOffset(0)] public int CurPosIndex; //NFAContentValidator [FieldOffset(0)] public int NumberOfRunningPos; //RangeContentValidator } internal sealed class ValidationState { public bool IsNill; public bool IsDefault; public bool NeedValidateChildren; // whether need to validate the children of this element public bool CheckRequiredAttribute; //PSVI public bool ValidationSkipped; public XmlSchemaContentProcessing ProcessContents; public XmlSchemaValidity Validity; public SchemaElementDecl? ElementDecl; // ElementDecl public SchemaElementDecl? ElementDeclBeforeXsi; //elementDecl before its changed by that of xsi:type's public string? LocalName; public string? Namespace; public ConstraintStruct[]? Constr; public StateUnion CurrentState; //For content model validation public bool HasMatched; // whether the element has been verified correctly //For NFAs public BitSet[] CurPos => field ??= new BitSet[2]; //For all public BitSet? AllElementsSet; //For MinMaxNFA public List<RangePositionInfo>? RunningPositions; public bool TooComplex; }; }