// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
namespace Microsoft.Xml.Schema
{
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
[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 int Depth; // The validation state
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 = new BitSet[2];
//For all
public BitSet AllElementsSet;
//For MinMaxNFA
public List<RangePositionInfo> RunningPositions;
public bool TooComplex;
};
}
|