58 lines
2.2 KiB
C#
58 lines
2.2 KiB
C#
|
//------------------------------------------------------------------------------
|
||
|
// <copyright file="validationstate.cs" company="Microsoft">
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
// </copyright>
|
||
|
// <owner current="true" primary="true">[....]</owner>
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
namespace System.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;
|
||
|
};
|
||
|
|
||
|
|
||
|
|
||
|
}
|
||
|
|