//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This source code was auto-generated by xsd, Version=4.8.3928.0.
// 
namespace Microsoft.SqlTools.ServiceLayer.ExecutionPlan.ShowPlan {
    using System.Xml.Serialization;
    
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan", IsNullable=false)]
    public partial class ShowPlanXML {
        
        private StmtBlockType[][] batchSequenceField;
        
        private string versionField;
        
        private string buildField;
        
        private bool clusteredModeField;
        
        private bool clusteredModeFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Batch", IsNullable=false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("Statements", IsNullable=false, NestingLevel=1)]
        public StmtBlockType[][] BatchSequence {
            get {
                return this.batchSequenceField;
            }
            set {
                this.batchSequenceField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Version {
            get {
                return this.versionField;
            }
            set {
                this.versionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Build {
            get {
                return this.buildField;
            }
            set {
                this.buildField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ClusteredMode {
            get {
                return this.clusteredModeField;
            }
            set {
                this.clusteredModeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ClusteredModeSpecified {
            get {
                return this.clusteredModeFieldSpecified;
            }
            set {
                this.clusteredModeFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class StmtBlockType {
        
        private object[] itemsField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ExternalDistributedComputation", typeof(ExternalDistributedComputationType))]
        [System.Xml.Serialization.XmlElementAttribute("StmtCond", typeof(StmtCondType))]
        [System.Xml.Serialization.XmlElementAttribute("StmtCursor", typeof(StmtCursorType))]
        [System.Xml.Serialization.XmlElementAttribute("StmtReceive", typeof(StmtReceiveType))]
        [System.Xml.Serialization.XmlElementAttribute("StmtSimple", typeof(StmtSimpleType))]
        [System.Xml.Serialization.XmlElementAttribute("StmtUseDb", typeof(StmtUseDbType))]
        public object[] Items {
            get {
                return this.itemsField;
            }
            set {
                this.itemsField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ExternalDistributedComputationType {
        
        private StmtSimpleType[] itemsField;
        
        private string edcShowplanXmlField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("StmtSimple")]
        public StmtSimpleType[] Items {
            get {
                return this.itemsField;
            }
            set {
                this.itemsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string EdcShowplanXml {
            get {
                return this.edcShowplanXmlField;
            }
            set {
                this.edcShowplanXmlField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class StmtSimpleType : BaseStmtInfoType {
        
        private ParameterSensitivePredicateType[] dispatcherField;
        
        private QueryPlanType queryPlanField;
        
        private FunctionType[] uDFField;
        
        private FunctionType storedProcField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ParameterSensitivePredicate", IsNullable=false)]
        public ParameterSensitivePredicateType[] Dispatcher {
            get {
                return this.dispatcherField;
            }
            set {
                this.dispatcherField = value;
            }
        }
        
        /// <remarks/>
        public QueryPlanType QueryPlan {
            get {
                return this.queryPlanField;
            }
            set {
                this.queryPlanField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("UDF")]
        public FunctionType[] UDF {
            get {
                return this.uDFField;
            }
            set {
                this.uDFField = value;
            }
        }
        
        /// <remarks/>
        public FunctionType StoredProc {
            get {
                return this.storedProcField;
            }
            set {
                this.storedProcField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ParameterSensitivePredicateType {
        
        private StatsInfoType[] statisticsInfoField;
        
        private ScalarExpressionType predicateField;
        
        private double lowBoundaryField;
        
        private double highBoundaryField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("StatisticsInfo")]
        public StatsInfoType[] StatisticsInfo {
            get {
                return this.statisticsInfoField;
            }
            set {
                this.statisticsInfoField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType Predicate {
            get {
                return this.predicateField;
            }
            set {
                this.predicateField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double LowBoundary {
            get {
                return this.lowBoundaryField;
            }
            set {
                this.lowBoundaryField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double HighBoundary {
            get {
                return this.highBoundaryField;
            }
            set {
                this.highBoundaryField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class StatsInfoType {
        
        private string databaseField;
        
        private string schemaField;
        
        private string tableField;
        
        private string statisticsField;
        
        private ulong modificationCountField;
        
        private double samplingPercentField;
        
        private System.DateTime lastUpdateField;
        
        private bool lastUpdateFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Database {
            get {
                return this.databaseField;
            }
            set {
                this.databaseField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Schema {
            get {
                return this.schemaField;
            }
            set {
                this.schemaField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Table {
            get {
                return this.tableField;
            }
            set {
                this.tableField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Statistics {
            get {
                return this.statisticsField;
            }
            set {
                this.statisticsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ModificationCount {
            get {
                return this.modificationCountField;
            }
            set {
                this.modificationCountField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double SamplingPercent {
            get {
                return this.samplingPercentField;
            }
            set {
                this.samplingPercentField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public System.DateTime LastUpdate {
            get {
                return this.lastUpdateField;
            }
            set {
                this.lastUpdateField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool LastUpdateSpecified {
            get {
                return this.lastUpdateFieldSpecified;
            }
            set {
                this.lastUpdateFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class CursorPlanType {
        
        private CursorPlanTypeOperation[] operationField;
        
        private string cursorNameField;
        
        private CursorType cursorActualTypeField;
        
        private bool cursorActualTypeFieldSpecified;
        
        private CursorType cursorRequestedTypeField;
        
        private bool cursorRequestedTypeFieldSpecified;
        
        private CursorPlanTypeCursorConcurrency cursorConcurrencyField;
        
        private bool cursorConcurrencyFieldSpecified;
        
        private bool forwardOnlyField;
        
        private bool forwardOnlyFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Operation")]
        public CursorPlanTypeOperation[] Operation {
            get {
                return this.operationField;
            }
            set {
                this.operationField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string CursorName {
            get {
                return this.cursorNameField;
            }
            set {
                this.cursorNameField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public CursorType CursorActualType {
            get {
                return this.cursorActualTypeField;
            }
            set {
                this.cursorActualTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool CursorActualTypeSpecified {
            get {
                return this.cursorActualTypeFieldSpecified;
            }
            set {
                this.cursorActualTypeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public CursorType CursorRequestedType {
            get {
                return this.cursorRequestedTypeField;
            }
            set {
                this.cursorRequestedTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool CursorRequestedTypeSpecified {
            get {
                return this.cursorRequestedTypeFieldSpecified;
            }
            set {
                this.cursorRequestedTypeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public CursorPlanTypeCursorConcurrency CursorConcurrency {
            get {
                return this.cursorConcurrencyField;
            }
            set {
                this.cursorConcurrencyField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool CursorConcurrencySpecified {
            get {
                return this.cursorConcurrencyFieldSpecified;
            }
            set {
                this.cursorConcurrencyFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ForwardOnly {
            get {
                return this.forwardOnlyField;
            }
            set {
                this.forwardOnlyField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ForwardOnlySpecified {
            get {
                return this.forwardOnlyFieldSpecified;
            }
            set {
                this.forwardOnlyFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class CursorPlanTypeOperation {
        
        private ParameterSensitivePredicateType[] dispatcherField;
        
        private QueryPlanType queryPlanField;
        
        private FunctionType[] uDFField;
        
        private CursorPlanTypeOperationOperationType operationTypeField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ParameterSensitivePredicate", IsNullable=false)]
        public ParameterSensitivePredicateType[] Dispatcher {
            get {
                return this.dispatcherField;
            }
            set {
                this.dispatcherField = value;
            }
        }
        
        /// <remarks/>
        public QueryPlanType QueryPlan {
            get {
                return this.queryPlanField;
            }
            set {
                this.queryPlanField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("UDF")]
        public FunctionType[] UDF {
            get {
                return this.uDFField;
            }
            set {
                this.uDFField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public CursorPlanTypeOperationOperationType OperationType {
            get {
                return this.operationTypeField;
            }
            set {
                this.operationTypeField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class QueryPlanType {
        
        private InternalInfoType internalInfoField;
        
        private ThreadStatType threadStatField;
        
        private MissingIndexGroupType[] missingIndexesField;
        
        private GuessedSelectivityType guessedSelectivityField;
        
        private UnmatchedIndexesType unmatchedIndexesField;
        
        private WarningsType warningsField;
        
        private MemoryGrantType memoryGrantInfoField;
        
        private OptimizerHardwareDependentPropertiesType optimizerHardwareDependentPropertiesField;
        
        private StatsInfoType[] optimizerStatsUsageField;
        
        private TraceFlagListType[] traceFlagsField;
        
        private WaitStatType[] waitStatsField;
        
        private QueryExecTimeType queryTimeStatsField;
        
        private RelOpType relOpField;
        
        private ColumnReferenceType[] parameterListField;
        
        private int degreeOfParallelismField;
        
        private bool degreeOfParallelismFieldSpecified;
        
        private int effectiveDegreeOfParallelismField;
        
        private bool effectiveDegreeOfParallelismFieldSpecified;
        
        private string nonParallelPlanReasonField;
        
        private ulong memoryGrantField;
        
        private bool memoryGrantFieldSpecified;
        
        private ulong cachedPlanSizeField;
        
        private bool cachedPlanSizeFieldSpecified;
        
        private ulong compileTimeField;
        
        private bool compileTimeFieldSpecified;
        
        private ulong compileCPUField;
        
        private bool compileCPUFieldSpecified;
        
        private ulong compileMemoryField;
        
        private bool compileMemoryFieldSpecified;
        
        private bool usePlanField;
        
        private bool usePlanFieldSpecified;
        
        private bool containsInterleavedExecutionCandidatesField;
        
        private bool containsInterleavedExecutionCandidatesFieldSpecified;
        
        private bool containsInlineScalarTsqlUdfsField;
        
        private bool containsInlineScalarTsqlUdfsFieldSpecified;
        
        private int queryVariantIDField;
        
        private bool queryVariantIDFieldSpecified;
        
        private string dispatcherPlanHandleField;
        
        /// <remarks/>
        public InternalInfoType InternalInfo {
            get {
                return this.internalInfoField;
            }
            set {
                this.internalInfoField = value;
            }
        }
        
        /// <remarks/>
        public ThreadStatType ThreadStat {
            get {
                return this.threadStatField;
            }
            set {
                this.threadStatField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("MissingIndexGroup", IsNullable=false)]
        public MissingIndexGroupType[] MissingIndexes {
            get {
                return this.missingIndexesField;
            }
            set {
                this.missingIndexesField = value;
            }
        }
        
        /// <remarks/>
        public GuessedSelectivityType GuessedSelectivity {
            get {
                return this.guessedSelectivityField;
            }
            set {
                this.guessedSelectivityField = value;
            }
        }
        
        /// <remarks/>
        public UnmatchedIndexesType UnmatchedIndexes {
            get {
                return this.unmatchedIndexesField;
            }
            set {
                this.unmatchedIndexesField = value;
            }
        }
        
        /// <remarks/>
        public WarningsType Warnings {
            get {
                return this.warningsField;
            }
            set {
                this.warningsField = value;
            }
        }
        
        /// <remarks/>
        public MemoryGrantType MemoryGrantInfo {
            get {
                return this.memoryGrantInfoField;
            }
            set {
                this.memoryGrantInfoField = value;
            }
        }
        
        /// <remarks/>
        public OptimizerHardwareDependentPropertiesType OptimizerHardwareDependentProperties {
            get {
                return this.optimizerHardwareDependentPropertiesField;
            }
            set {
                this.optimizerHardwareDependentPropertiesField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("StatisticsInfo", IsNullable=false)]
        public StatsInfoType[] OptimizerStatsUsage {
            get {
                return this.optimizerStatsUsageField;
            }
            set {
                this.optimizerStatsUsageField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("TraceFlags")]
        public TraceFlagListType[] TraceFlags {
            get {
                return this.traceFlagsField;
            }
            set {
                this.traceFlagsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Wait", IsNullable=false)]
        public WaitStatType[] WaitStats {
            get {
                return this.waitStatsField;
            }
            set {
                this.waitStatsField = value;
            }
        }
        
        /// <remarks/>
        public QueryExecTimeType QueryTimeStats {
            get {
                return this.queryTimeStatsField;
            }
            set {
                this.queryTimeStatsField = value;
            }
        }
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] ParameterList {
            get {
                return this.parameterListField;
            }
            set {
                this.parameterListField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int DegreeOfParallelism {
            get {
                return this.degreeOfParallelismField;
            }
            set {
                this.degreeOfParallelismField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool DegreeOfParallelismSpecified {
            get {
                return this.degreeOfParallelismFieldSpecified;
            }
            set {
                this.degreeOfParallelismFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int EffectiveDegreeOfParallelism {
            get {
                return this.effectiveDegreeOfParallelismField;
            }
            set {
                this.effectiveDegreeOfParallelismField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool EffectiveDegreeOfParallelismSpecified {
            get {
                return this.effectiveDegreeOfParallelismFieldSpecified;
            }
            set {
                this.effectiveDegreeOfParallelismFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string NonParallelPlanReason {
            get {
                return this.nonParallelPlanReasonField;
            }
            set {
                this.nonParallelPlanReasonField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong MemoryGrant {
            get {
                return this.memoryGrantField;
            }
            set {
                this.memoryGrantField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool MemoryGrantSpecified {
            get {
                return this.memoryGrantFieldSpecified;
            }
            set {
                this.memoryGrantFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong CachedPlanSize {
            get {
                return this.cachedPlanSizeField;
            }
            set {
                this.cachedPlanSizeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool CachedPlanSizeSpecified {
            get {
                return this.cachedPlanSizeFieldSpecified;
            }
            set {
                this.cachedPlanSizeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong CompileTime {
            get {
                return this.compileTimeField;
            }
            set {
                this.compileTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool CompileTimeSpecified {
            get {
                return this.compileTimeFieldSpecified;
            }
            set {
                this.compileTimeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong CompileCPU {
            get {
                return this.compileCPUField;
            }
            set {
                this.compileCPUField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool CompileCPUSpecified {
            get {
                return this.compileCPUFieldSpecified;
            }
            set {
                this.compileCPUFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong CompileMemory {
            get {
                return this.compileMemoryField;
            }
            set {
                this.compileMemoryField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool CompileMemorySpecified {
            get {
                return this.compileMemoryFieldSpecified;
            }
            set {
                this.compileMemoryFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool UsePlan {
            get {
                return this.usePlanField;
            }
            set {
                this.usePlanField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool UsePlanSpecified {
            get {
                return this.usePlanFieldSpecified;
            }
            set {
                this.usePlanFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ContainsInterleavedExecutionCandidates {
            get {
                return this.containsInterleavedExecutionCandidatesField;
            }
            set {
                this.containsInterleavedExecutionCandidatesField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ContainsInterleavedExecutionCandidatesSpecified {
            get {
                return this.containsInterleavedExecutionCandidatesFieldSpecified;
            }
            set {
                this.containsInterleavedExecutionCandidatesFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ContainsInlineScalarTsqlUdfs {
            get {
                return this.containsInlineScalarTsqlUdfsField;
            }
            set {
                this.containsInlineScalarTsqlUdfsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ContainsInlineScalarTsqlUdfsSpecified {
            get {
                return this.containsInlineScalarTsqlUdfsFieldSpecified;
            }
            set {
                this.containsInlineScalarTsqlUdfsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int QueryVariantID {
            get {
                return this.queryVariantIDField;
            }
            set {
                this.queryVariantIDField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool QueryVariantIDSpecified {
            get {
                return this.queryVariantIDFieldSpecified;
            }
            set {
                this.queryVariantIDFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string DispatcherPlanHandle {
            get {
                return this.dispatcherPlanHandleField;
            }
            set {
                this.dispatcherPlanHandleField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class InternalInfoType {
        
        private System.Xml.XmlElement[] anyField;
        
        private System.Xml.XmlAttribute[] anyAttrField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAnyElementAttribute()]
        public System.Xml.XmlElement[] Any {
            get {
                return this.anyField;
            }
            set {
                this.anyField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAnyAttributeAttribute()]
        public System.Xml.XmlAttribute[] AnyAttr {
            get {
                return this.anyAttrField;
            }
            set {
                this.anyAttrField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ThreadStatType {
        
        private ThreadReservationType[] threadReservationField;
        
        private int branchesField;
        
        private int usedThreadsField;
        
        private bool usedThreadsFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ThreadReservation")]
        public ThreadReservationType[] ThreadReservation {
            get {
                return this.threadReservationField;
            }
            set {
                this.threadReservationField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int Branches {
            get {
                return this.branchesField;
            }
            set {
                this.branchesField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int UsedThreads {
            get {
                return this.usedThreadsField;
            }
            set {
                this.usedThreadsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool UsedThreadsSpecified {
            get {
                return this.usedThreadsFieldSpecified;
            }
            set {
                this.usedThreadsFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ThreadReservationType {
        
        private int nodeIdField;
        
        private bool nodeIdFieldSpecified;
        
        private int reservedThreadsField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int NodeId {
            get {
                return this.nodeIdField;
            }
            set {
                this.nodeIdField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool NodeIdSpecified {
            get {
                return this.nodeIdFieldSpecified;
            }
            set {
                this.nodeIdFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int ReservedThreads {
            get {
                return this.reservedThreadsField;
            }
            set {
                this.reservedThreadsField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class MissingIndexGroupType {
        
        private MissingIndexType[] missingIndexField;
        
        private double impactField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("MissingIndex")]
        public MissingIndexType[] MissingIndex {
            get {
                return this.missingIndexField;
            }
            set {
                this.missingIndexField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double Impact {
            get {
                return this.impactField;
            }
            set {
                this.impactField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class MissingIndexType {
        
        private ColumnGroupType[] columnGroupField;
        
        private string databaseField;
        
        private string schemaField;
        
        private string tableField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ColumnGroup")]
        public ColumnGroupType[] ColumnGroup {
            get {
                return this.columnGroupField;
            }
            set {
                this.columnGroupField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Database {
            get {
                return this.databaseField;
            }
            set {
                this.databaseField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Schema {
            get {
                return this.schemaField;
            }
            set {
                this.schemaField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Table {
            get {
                return this.tableField;
            }
            set {
                this.tableField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ColumnGroupType {
        
        private ColumnType[] columnField;
        
        private ColumnGroupTypeUsage usageField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Column")]
        public ColumnType[] Column {
            get {
                return this.columnField;
            }
            set {
                this.columnField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ColumnGroupTypeUsage Usage {
            get {
                return this.usageField;
            }
            set {
                this.usageField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ColumnType {
        
        private string nameField;
        
        private int columnIdField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Name {
            get {
                return this.nameField;
            }
            set {
                this.nameField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int ColumnId {
            get {
                return this.columnIdField;
            }
            set {
                this.columnIdField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum ColumnGroupTypeUsage {
        
        /// <remarks/>
        EQUALITY,
        
        /// <remarks/>
        INEQUALITY,
        
        /// <remarks/>
        INCLUDE,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class GuessedSelectivityType {
        
        private ObjectType spatialField;
        
        /// <remarks/>
        public ObjectType Spatial {
            get {
                return this.spatialField;
            }
            set {
                this.spatialField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ObjectType {
        
        private string serverField;
        
        private string databaseField;
        
        private string schemaField;
        
        private string tableField;
        
        private string indexField;
        
        private bool filteredField;
        
        private bool filteredFieldSpecified;
        
        private int onlineInbuildIndexField;
        
        private bool onlineInbuildIndexFieldSpecified;
        
        private int onlineIndexBuildMappingIndexField;
        
        private bool onlineIndexBuildMappingIndexFieldSpecified;
        
        private string aliasField;
        
        private int tableReferenceIdField;
        
        private bool tableReferenceIdFieldSpecified;
        
        private IndexKindType indexKindField;
        
        private bool indexKindFieldSpecified;
        
        private CloneAccessScopeType cloneAccessScopeField;
        
        private bool cloneAccessScopeFieldSpecified;
        
        private StorageType storageField;
        
        private bool storageFieldSpecified;
        
        private int graphWorkTableTypeField;
        
        private bool graphWorkTableTypeFieldSpecified;
        
        private int graphWorkTableIdentifierField;
        
        private bool graphWorkTableIdentifierFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Server {
            get {
                return this.serverField;
            }
            set {
                this.serverField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Database {
            get {
                return this.databaseField;
            }
            set {
                this.databaseField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Schema {
            get {
                return this.schemaField;
            }
            set {
                this.schemaField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Table {
            get {
                return this.tableField;
            }
            set {
                this.tableField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Index {
            get {
                return this.indexField;
            }
            set {
                this.indexField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Filtered {
            get {
                return this.filteredField;
            }
            set {
                this.filteredField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool FilteredSpecified {
            get {
                return this.filteredFieldSpecified;
            }
            set {
                this.filteredFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int OnlineInbuildIndex {
            get {
                return this.onlineInbuildIndexField;
            }
            set {
                this.onlineInbuildIndexField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool OnlineInbuildIndexSpecified {
            get {
                return this.onlineInbuildIndexFieldSpecified;
            }
            set {
                this.onlineInbuildIndexFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int OnlineIndexBuildMappingIndex {
            get {
                return this.onlineIndexBuildMappingIndexField;
            }
            set {
                this.onlineIndexBuildMappingIndexField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool OnlineIndexBuildMappingIndexSpecified {
            get {
                return this.onlineIndexBuildMappingIndexFieldSpecified;
            }
            set {
                this.onlineIndexBuildMappingIndexFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Alias {
            get {
                return this.aliasField;
            }
            set {
                this.aliasField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int TableReferenceId {
            get {
                return this.tableReferenceIdField;
            }
            set {
                this.tableReferenceIdField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool TableReferenceIdSpecified {
            get {
                return this.tableReferenceIdFieldSpecified;
            }
            set {
                this.tableReferenceIdFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public IndexKindType IndexKind {
            get {
                return this.indexKindField;
            }
            set {
                this.indexKindField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IndexKindSpecified {
            get {
                return this.indexKindFieldSpecified;
            }
            set {
                this.indexKindFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public CloneAccessScopeType CloneAccessScope {
            get {
                return this.cloneAccessScopeField;
            }
            set {
                this.cloneAccessScopeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool CloneAccessScopeSpecified {
            get {
                return this.cloneAccessScopeFieldSpecified;
            }
            set {
                this.cloneAccessScopeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public StorageType Storage {
            get {
                return this.storageField;
            }
            set {
                this.storageField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool StorageSpecified {
            get {
                return this.storageFieldSpecified;
            }
            set {
                this.storageFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int GraphWorkTableType {
            get {
                return this.graphWorkTableTypeField;
            }
            set {
                this.graphWorkTableTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool GraphWorkTableTypeSpecified {
            get {
                return this.graphWorkTableTypeFieldSpecified;
            }
            set {
                this.graphWorkTableTypeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int GraphWorkTableIdentifier {
            get {
                return this.graphWorkTableIdentifierField;
            }
            set {
                this.graphWorkTableIdentifierField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool GraphWorkTableIdentifierSpecified {
            get {
                return this.graphWorkTableIdentifierFieldSpecified;
            }
            set {
                this.graphWorkTableIdentifierFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum IndexKindType {
        
        /// <remarks/>
        Heap,
        
        /// <remarks/>
        Clustered,
        
        /// <remarks/>
        FTSChangeTracking,
        
        /// <remarks/>
        FTSMapping,
        
        /// <remarks/>
        NonClustered,
        
        /// <remarks/>
        PrimaryXML,
        
        /// <remarks/>
        SecondaryXML,
        
        /// <remarks/>
        Spatial,
        
        /// <remarks/>
        ViewClustered,
        
        /// <remarks/>
        ViewNonClustered,
        
        /// <remarks/>
        NonClusteredHash,
        
        /// <remarks/>
        SelectiveXML,
        
        /// <remarks/>
        SecondarySelectiveXML,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum CloneAccessScopeType {
        
        /// <remarks/>
        Primary,
        
        /// <remarks/>
        Secondary,
        
        /// <remarks/>
        Both,
        
        /// <remarks/>
        Either,
        
        /// <remarks/>
        ExactMatch,
        
        /// <remarks/>
        Local,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum StorageType {
        
        /// <remarks/>
        RowStore,
        
        /// <remarks/>
        ColumnStore,
        
        /// <remarks/>
        MemoryOptimized,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class UnmatchedIndexesType {
        
        private ObjectType[] parameterizationField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Object", IsNullable=false)]
        public ObjectType[] Parameterization {
            get {
                return this.parameterizationField;
            }
            set {
                this.parameterizationField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class WarningsType {
        
        private object[] itemsField;
        
        private ItemsChoiceType[] itemsElementNameField;
        
        private bool noJoinPredicateField;
        
        private bool noJoinPredicateFieldSpecified;
        
        private bool spatialGuessField;
        
        private bool spatialGuessFieldSpecified;
        
        private bool unmatchedIndexesField;
        
        private bool unmatchedIndexesFieldSpecified;
        
        private bool fullUpdateForOnlineIndexBuildField;
        
        private bool fullUpdateForOnlineIndexBuildFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ColumnsWithNoStatistics", typeof(ColumnReferenceListType))]
        [System.Xml.Serialization.XmlElementAttribute("ColumnsWithStaleStatistics", typeof(ColumnReferenceListType))]
        [System.Xml.Serialization.XmlElementAttribute("ExchangeSpillDetails", typeof(ExchangeSpillDetailsType))]
        [System.Xml.Serialization.XmlElementAttribute("HashSpillDetails", typeof(HashSpillDetailsType))]
        [System.Xml.Serialization.XmlElementAttribute("MemoryGrantWarning", typeof(MemoryGrantWarningInfo))]
        [System.Xml.Serialization.XmlElementAttribute("PlanAffectingConvert", typeof(AffectingConvertWarningType))]
        [System.Xml.Serialization.XmlElementAttribute("SortSpillDetails", typeof(SortSpillDetailsType))]
        [System.Xml.Serialization.XmlElementAttribute("SpillOccurred", typeof(SpillOccurredType))]
        [System.Xml.Serialization.XmlElementAttribute("SpillToTempDb", typeof(SpillToTempDbType))]
        [System.Xml.Serialization.XmlElementAttribute("Wait", typeof(WaitWarningType))]
        [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")]
        public object[] Items {
            get {
                return this.itemsField;
            }
            set {
                this.itemsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ItemsElementName")]
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public ItemsChoiceType[] ItemsElementName {
            get {
                return this.itemsElementNameField;
            }
            set {
                this.itemsElementNameField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool NoJoinPredicate {
            get {
                return this.noJoinPredicateField;
            }
            set {
                this.noJoinPredicateField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool NoJoinPredicateSpecified {
            get {
                return this.noJoinPredicateFieldSpecified;
            }
            set {
                this.noJoinPredicateFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool SpatialGuess {
            get {
                return this.spatialGuessField;
            }
            set {
                this.spatialGuessField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool SpatialGuessSpecified {
            get {
                return this.spatialGuessFieldSpecified;
            }
            set {
                this.spatialGuessFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool UnmatchedIndexes {
            get {
                return this.unmatchedIndexesField;
            }
            set {
                this.unmatchedIndexesField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool UnmatchedIndexesSpecified {
            get {
                return this.unmatchedIndexesFieldSpecified;
            }
            set {
                this.unmatchedIndexesFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool FullUpdateForOnlineIndexBuild {
            get {
                return this.fullUpdateForOnlineIndexBuildField;
            }
            set {
                this.fullUpdateForOnlineIndexBuildField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool FullUpdateForOnlineIndexBuildSpecified {
            get {
                return this.fullUpdateForOnlineIndexBuildFieldSpecified;
            }
            set {
                this.fullUpdateForOnlineIndexBuildFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ColumnReferenceListType {
        
        private ColumnReferenceType[] columnReferenceField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ColumnReference")]
        public ColumnReferenceType[] ColumnReference {
            get {
                return this.columnReferenceField;
            }
            set {
                this.columnReferenceField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ColumnReferenceType {
        
        private ScalarType scalarOperatorField;
        
        private InternalInfoType internalInfoField;
        
        private string serverField;
        
        private string databaseField;
        
        private string schemaField;
        
        private string tableField;
        
        private string aliasField;
        
        private string columnField;
        
        private bool computedColumnField;
        
        private bool computedColumnFieldSpecified;
        
        private string parameterDataTypeField;
        
        private string parameterCompiledValueField;
        
        private string parameterRuntimeValueField;
        
        /// <remarks/>
        public ScalarType ScalarOperator {
            get {
                return this.scalarOperatorField;
            }
            set {
                this.scalarOperatorField = value;
            }
        }
        
        /// <remarks/>
        public InternalInfoType InternalInfo {
            get {
                return this.internalInfoField;
            }
            set {
                this.internalInfoField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Server {
            get {
                return this.serverField;
            }
            set {
                this.serverField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Database {
            get {
                return this.databaseField;
            }
            set {
                this.databaseField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Schema {
            get {
                return this.schemaField;
            }
            set {
                this.schemaField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Table {
            get {
                return this.tableField;
            }
            set {
                this.tableField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Alias {
            get {
                return this.aliasField;
            }
            set {
                this.aliasField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Column {
            get {
                return this.columnField;
            }
            set {
                this.columnField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ComputedColumn {
            get {
                return this.computedColumnField;
            }
            set {
                this.computedColumnField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ComputedColumnSpecified {
            get {
                return this.computedColumnFieldSpecified;
            }
            set {
                this.computedColumnFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string ParameterDataType {
            get {
                return this.parameterDataTypeField;
            }
            set {
                this.parameterDataTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string ParameterCompiledValue {
            get {
                return this.parameterCompiledValueField;
            }
            set {
                this.parameterCompiledValueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string ParameterRuntimeValue {
            get {
                return this.parameterRuntimeValueField;
            }
            set {
                this.parameterRuntimeValueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ScalarType {
        
        private object itemField;
        
        private InternalInfoType internalInfoField;
        
        private string scalarStringField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Aggregate", typeof(AggregateType))]
        [System.Xml.Serialization.XmlElementAttribute("Arithmetic", typeof(ArithmeticType))]
        [System.Xml.Serialization.XmlElementAttribute("Assign", typeof(AssignType))]
        [System.Xml.Serialization.XmlElementAttribute("Compare", typeof(CompareType))]
        [System.Xml.Serialization.XmlElementAttribute("Const", typeof(ConstType))]
        [System.Xml.Serialization.XmlElementAttribute("Convert", typeof(ConvertType))]
        [System.Xml.Serialization.XmlElementAttribute("IF", typeof(ConditionalType))]
        [System.Xml.Serialization.XmlElementAttribute("Identifier", typeof(IdentType))]
        [System.Xml.Serialization.XmlElementAttribute("Intrinsic", typeof(IntrinsicType))]
        [System.Xml.Serialization.XmlElementAttribute("Logical", typeof(LogicalType))]
        [System.Xml.Serialization.XmlElementAttribute("MultipleAssign", typeof(MultAssignType))]
        [System.Xml.Serialization.XmlElementAttribute("ScalarExpressionList", typeof(ScalarExpressionListType))]
        [System.Xml.Serialization.XmlElementAttribute("Sequence", typeof(ScalarSequenceType))]
        [System.Xml.Serialization.XmlElementAttribute("Subquery", typeof(SubqueryType))]
        [System.Xml.Serialization.XmlElementAttribute("UDTMethod", typeof(UDTMethodType))]
        [System.Xml.Serialization.XmlElementAttribute("UserDefinedAggregate", typeof(UDAggregateType))]
        [System.Xml.Serialization.XmlElementAttribute("UserDefinedFunction", typeof(UDFType))]
        public object Item {
            get {
                return this.itemField;
            }
            set {
                this.itemField = value;
            }
        }
        
        /// <remarks/>
        public InternalInfoType InternalInfo {
            get {
                return this.internalInfoField;
            }
            set {
                this.internalInfoField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string ScalarString {
            get {
                return this.scalarStringField;
            }
            set {
                this.scalarStringField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class AggregateType {
        
        private ScalarType[] scalarOperatorField;
        
        private string aggTypeField;
        
        private bool distinctField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ScalarOperator")]
        public ScalarType[] ScalarOperator {
            get {
                return this.scalarOperatorField;
            }
            set {
                this.scalarOperatorField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string AggType {
            get {
                return this.aggTypeField;
            }
            set {
                this.aggTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Distinct {
            get {
                return this.distinctField;
            }
            set {
                this.distinctField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ArithmeticType {
        
        private ScalarType[] scalarOperatorField;
        
        private ArithmeticOperationType operationField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ScalarOperator")]
        public ScalarType[] ScalarOperator {
            get {
                return this.scalarOperatorField;
            }
            set {
                this.scalarOperatorField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ArithmeticOperationType Operation {
            get {
                return this.operationField;
            }
            set {
                this.operationField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum ArithmeticOperationType {
        
        /// <remarks/>
        ADD,
        
        /// <remarks/>
        BIT_ADD,
        
        /// <remarks/>
        BIT_AND,
        
        /// <remarks/>
        BIT_COMBINE,
        
        /// <remarks/>
        BIT_NOT,
        
        /// <remarks/>
        BIT_OR,
        
        /// <remarks/>
        BIT_XOR,
        
        /// <remarks/>
        DIV,
        
        /// <remarks/>
        HASH,
        
        /// <remarks/>
        MINUS,
        
        /// <remarks/>
        MOD,
        
        /// <remarks/>
        MULT,
        
        /// <remarks/>
        SUB,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class AssignType {
        
        private object itemField;
        
        private ScalarType scalarOperatorField;
        
        private ColumnReferenceType[] sourceColumnField;
        
        private ColumnReferenceType[] targetColumnField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ColumnReference", typeof(ColumnReferenceType), Order=0)]
        [System.Xml.Serialization.XmlElementAttribute("ScalarOperator", typeof(ScalarType), Order=0)]
        public object Item {
            get {
                return this.itemField;
            }
            set {
                this.itemField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute(Order=1)]
        public ScalarType ScalarOperator {
            get {
                return this.scalarOperatorField;
            }
            set {
                this.scalarOperatorField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("SourceColumn", Order=2)]
        public ColumnReferenceType[] SourceColumn {
            get {
                return this.sourceColumnField;
            }
            set {
                this.sourceColumnField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("TargetColumn", Order=3)]
        public ColumnReferenceType[] TargetColumn {
            get {
                return this.targetColumnField;
            }
            set {
                this.targetColumnField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class CompareType {
        
        private ScalarType[] scalarOperatorField;
        
        private CompareOpType compareOpField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ScalarOperator")]
        public ScalarType[] ScalarOperator {
            get {
                return this.scalarOperatorField;
            }
            set {
                this.scalarOperatorField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public CompareOpType CompareOp {
            get {
                return this.compareOpField;
            }
            set {
                this.compareOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum CompareOpType {
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("BINARY IS")]
        BINARYIS,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("BOTH NULL")]
        BOTHNULL,
        
        /// <remarks/>
        EQ,
        
        /// <remarks/>
        GE,
        
        /// <remarks/>
        GT,
        
        /// <remarks/>
        IS,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("IS NOT")]
        ISNOT,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("IS NOT NULL")]
        ISNOTNULL,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("IS NULL")]
        ISNULL,
        
        /// <remarks/>
        LE,
        
        /// <remarks/>
        LT,
        
        /// <remarks/>
        NE,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("ONE NULL")]
        ONENULL,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ConstType {
        
        private string constValueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string ConstValue {
            get {
                return this.constValueField;
            }
            set {
                this.constValueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ConvertType {
        
        private ScalarExpressionType styleField;
        
        private ScalarType scalarOperatorField;
        
        private string dataTypeField;
        
        private int lengthField;
        
        private bool lengthFieldSpecified;
        
        private int precisionField;
        
        private bool precisionFieldSpecified;
        
        private int scaleField;
        
        private bool scaleFieldSpecified;
        
        private int style1Field;
        
        private bool implicitField;
        
        /// <remarks/>
        public ScalarExpressionType Style {
            get {
                return this.styleField;
            }
            set {
                this.styleField = value;
            }
        }
        
        /// <remarks/>
        public ScalarType ScalarOperator {
            get {
                return this.scalarOperatorField;
            }
            set {
                this.scalarOperatorField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string DataType {
            get {
                return this.dataTypeField;
            }
            set {
                this.dataTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int Length {
            get {
                return this.lengthField;
            }
            set {
                this.lengthField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool LengthSpecified {
            get {
                return this.lengthFieldSpecified;
            }
            set {
                this.lengthFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int Precision {
            get {
                return this.precisionField;
            }
            set {
                this.precisionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool PrecisionSpecified {
            get {
                return this.precisionFieldSpecified;
            }
            set {
                this.precisionFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int Scale {
            get {
                return this.scaleField;
            }
            set {
                this.scaleField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ScaleSpecified {
            get {
                return this.scaleFieldSpecified;
            }
            set {
                this.scaleFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("Style")]
        public int Style1 {
            get {
                return this.style1Field;
            }
            set {
                this.style1Field = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Implicit {
            get {
                return this.implicitField;
            }
            set {
                this.implicitField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SetPredicateElementType))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ScalarExpressionType {
        
        private ScalarType scalarOperatorField;
        
        /// <remarks/>
        public ScalarType ScalarOperator {
            get {
                return this.scalarOperatorField;
            }
            set {
                this.scalarOperatorField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SetPredicateElementType : ScalarExpressionType {
        
        private SetPredicateType setPredicateTypeField;
        
        private bool setPredicateTypeFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public SetPredicateType SetPredicateType {
            get {
                return this.setPredicateTypeField;
            }
            set {
                this.setPredicateTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool SetPredicateTypeSpecified {
            get {
                return this.setPredicateTypeFieldSpecified;
            }
            set {
                this.setPredicateTypeFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum SetPredicateType {
        
        /// <remarks/>
        Update,
        
        /// <remarks/>
        Insert,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ConditionalType {
        
        private ScalarExpressionType conditionField;
        
        private ScalarExpressionType thenField;
        
        private ScalarExpressionType elseField;
        
        /// <remarks/>
        public ScalarExpressionType Condition {
            get {
                return this.conditionField;
            }
            set {
                this.conditionField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType Then {
            get {
                return this.thenField;
            }
            set {
                this.thenField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType Else {
            get {
                return this.elseField;
            }
            set {
                this.elseField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class IdentType {
        
        private ColumnReferenceType columnReferenceField;
        
        private string tableField;
        
        /// <remarks/>
        public ColumnReferenceType ColumnReference {
            get {
                return this.columnReferenceField;
            }
            set {
                this.columnReferenceField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Table {
            get {
                return this.tableField;
            }
            set {
                this.tableField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class IntrinsicType {
        
        private ScalarType[] scalarOperatorField;
        
        private string functionNameField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ScalarOperator")]
        public ScalarType[] ScalarOperator {
            get {
                return this.scalarOperatorField;
            }
            set {
                this.scalarOperatorField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string FunctionName {
            get {
                return this.functionNameField;
            }
            set {
                this.functionNameField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class LogicalType {
        
        private ScalarType[] scalarOperatorField;
        
        private LogicalOperationType operationField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ScalarOperator")]
        public ScalarType[] ScalarOperator {
            get {
                return this.scalarOperatorField;
            }
            set {
                this.scalarOperatorField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public LogicalOperationType Operation {
            get {
                return this.operationField;
            }
            set {
                this.operationField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum LogicalOperationType {
        
        /// <remarks/>
        AND,
        
        /// <remarks/>
        IMPLIES,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("IS NOT NULL")]
        ISNOTNULL,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("IS NULL")]
        ISNULL,
        
        /// <remarks/>
        IS,
        
        /// <remarks/>
        IsFalseOrNull,
        
        /// <remarks/>
        NOT,
        
        /// <remarks/>
        OR,
        
        /// <remarks/>
        XOR,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class MultAssignType {
        
        private AssignType[] assignField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Assign")]
        public AssignType[] Assign {
            get {
                return this.assignField;
            }
            set {
                this.assignField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ScalarExpressionListType {
        
        private ScalarType[] scalarOperatorField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ScalarOperator")]
        public ScalarType[] ScalarOperator {
            get {
                return this.scalarOperatorField;
            }
            set {
                this.scalarOperatorField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ScalarSequenceType {
        
        private string functionNameField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string FunctionName {
            get {
                return this.functionNameField;
            }
            set {
                this.functionNameField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SubqueryType {
        
        private ScalarType scalarOperatorField;
        
        private RelOpType relOpField;
        
        private SubqueryOperationType operationField;
        
        /// <remarks/>
        public ScalarType ScalarOperator {
            get {
                return this.scalarOperatorField;
            }
            set {
                this.scalarOperatorField = value;
            }
        }
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public SubqueryOperationType Operation {
            get {
                return this.operationField;
            }
            set {
                this.operationField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class RelOpType {
        
        private ColumnReferenceType[] outputListField;
        
        private WarningsType warningsField;
        
        private MemoryFractionsType memoryFractionsField;
        
        private RunTimeInformationTypeRunTimeCountersPerThread[] runTimeInformationField;
        
        private RunTimePartitionSummaryType runTimePartitionSummaryField;
        
        private InternalInfoType internalInfoField;
        
        private RelOpBaseType itemField;
        
        private ItemChoiceType itemElementNameField;
        
        private double avgRowSizeField;
        
        private double estimateCPUField;
        
        private double estimateIOField;
        
        private double estimateRebindsField;
        
        private double estimateRewindsField;
        
        private ExecutionModeType estimatedExecutionModeField;
        
        private bool estimatedExecutionModeFieldSpecified;
        
        private bool groupExecutedField;
        
        private bool groupExecutedFieldSpecified;
        
        private double estimateRowsField;
        
        private double estimateRowsWithoutRowGoalField;
        
        private bool estimateRowsWithoutRowGoalFieldSpecified;
        
        private double estimatedRowsReadField;
        
        private bool estimatedRowsReadFieldSpecified;
        
        private LogicalOpType logicalOpField;
        
        private int nodeIdField;
        
        private bool nodeIdFieldSpecified;
        
        private bool parallelField;
        
        private bool remoteDataAccessField;
        
        private bool remoteDataAccessFieldSpecified;
        
        private bool partitionedField;
        
        private bool partitionedFieldSpecified;
        
        private PhysicalOpType physicalOpField;
        
        private bool isAdaptiveField;
        
        private bool isAdaptiveFieldSpecified;
        
        private double adaptiveThresholdRowsField;
        
        private bool adaptiveThresholdRowsFieldSpecified;
        
        private double estimatedTotalSubtreeCostField;
        
        private double tableCardinalityField;
        
        private bool tableCardinalityFieldSpecified;
        
        private ulong statsCollectionIdField;
        
        private bool statsCollectionIdFieldSpecified;
        
        private PhysicalOpType estimatedJoinTypeField;
        
        private bool estimatedJoinTypeFieldSpecified;
        
        private double pDWAccumulativeCostField;
        
        private bool pDWAccumulativeCostFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] OutputList {
            get {
                return this.outputListField;
            }
            set {
                this.outputListField = value;
            }
        }
        
        /// <remarks/>
        public WarningsType Warnings {
            get {
                return this.warningsField;
            }
            set {
                this.warningsField = value;
            }
        }
        
        /// <remarks/>
        public MemoryFractionsType MemoryFractions {
            get {
                return this.memoryFractionsField;
            }
            set {
                this.memoryFractionsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("RunTimeCountersPerThread", IsNullable=false)]
        public RunTimeInformationTypeRunTimeCountersPerThread[] RunTimeInformation {
            get {
                return this.runTimeInformationField;
            }
            set {
                this.runTimeInformationField = value;
            }
        }
        
        /// <remarks/>
        public RunTimePartitionSummaryType RunTimePartitionSummary {
            get {
                return this.runTimePartitionSummaryField;
            }
            set {
                this.runTimePartitionSummaryField = value;
            }
        }
        
        /// <remarks/>
        public InternalInfoType InternalInfo {
            get {
                return this.internalInfoField;
            }
            set {
                this.internalInfoField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("AdaptiveJoin", typeof(AdaptiveJoinType))]
        [System.Xml.Serialization.XmlElementAttribute("Apply", typeof(JoinType))]
        [System.Xml.Serialization.XmlElementAttribute("Assert", typeof(FilterType))]
        [System.Xml.Serialization.XmlElementAttribute("BatchHashTableBuild", typeof(BatchHashTableBuildType))]
        [System.Xml.Serialization.XmlElementAttribute("Bitmap", typeof(BitmapType))]
        [System.Xml.Serialization.XmlElementAttribute("Collapse", typeof(CollapseType))]
        [System.Xml.Serialization.XmlElementAttribute("ComputeScalar", typeof(ComputeScalarType))]
        [System.Xml.Serialization.XmlElementAttribute("Concat", typeof(ConcatType))]
        [System.Xml.Serialization.XmlElementAttribute("ConstTableGet", typeof(GetType))]
        [System.Xml.Serialization.XmlElementAttribute("ConstantScan", typeof(ConstantScanType))]
        [System.Xml.Serialization.XmlElementAttribute("CreateIndex", typeof(CreateIndexType))]
        [System.Xml.Serialization.XmlElementAttribute("Delete", typeof(DMLOpType))]
        [System.Xml.Serialization.XmlElementAttribute("DeletedScan", typeof(RowsetType))]
        [System.Xml.Serialization.XmlElementAttribute("ExtExtractScan", typeof(RemoteType))]
        [System.Xml.Serialization.XmlElementAttribute("Extension", typeof(UDXType))]
        [System.Xml.Serialization.XmlElementAttribute("ExternalSelect", typeof(ExternalSelectType))]
        [System.Xml.Serialization.XmlElementAttribute("Filter", typeof(FilterType))]
        [System.Xml.Serialization.XmlElementAttribute("ForeignKeyReferencesCheck", typeof(ForeignKeyReferencesCheckType))]
        [System.Xml.Serialization.XmlElementAttribute("GbAgg", typeof(GbAggType))]
        [System.Xml.Serialization.XmlElementAttribute("GbApply", typeof(GbApplyType))]
        [System.Xml.Serialization.XmlElementAttribute("Generic", typeof(GenericType))]
        [System.Xml.Serialization.XmlElementAttribute("Get", typeof(GetType))]
        [System.Xml.Serialization.XmlElementAttribute("Hash", typeof(HashType))]
        [System.Xml.Serialization.XmlElementAttribute("IndexScan", typeof(IndexScanType))]
        [System.Xml.Serialization.XmlElementAttribute("Insert", typeof(DMLOpType))]
        [System.Xml.Serialization.XmlElementAttribute("InsertedScan", typeof(RowsetType))]
        [System.Xml.Serialization.XmlElementAttribute("Join", typeof(JoinType))]
        [System.Xml.Serialization.XmlElementAttribute("LocalCube", typeof(LocalCubeType))]
        [System.Xml.Serialization.XmlElementAttribute("LogRowScan", typeof(RelOpBaseType))]
        [System.Xml.Serialization.XmlElementAttribute("Merge", typeof(MergeType))]
        [System.Xml.Serialization.XmlElementAttribute("MergeInterval", typeof(SimpleIteratorOneChildType))]
        [System.Xml.Serialization.XmlElementAttribute("Move", typeof(MoveType))]
        [System.Xml.Serialization.XmlElementAttribute("NestedLoops", typeof(NestedLoopsType))]
        [System.Xml.Serialization.XmlElementAttribute("OnlineIndex", typeof(CreateIndexType))]
        [System.Xml.Serialization.XmlElementAttribute("Parallelism", typeof(ParallelismType))]
        [System.Xml.Serialization.XmlElementAttribute("ParameterTableScan", typeof(RelOpBaseType))]
        [System.Xml.Serialization.XmlElementAttribute("PrintDataflow", typeof(RelOpBaseType))]
        [System.Xml.Serialization.XmlElementAttribute("Project", typeof(ProjectType))]
        [System.Xml.Serialization.XmlElementAttribute("Put", typeof(PutType))]
        [System.Xml.Serialization.XmlElementAttribute("RemoteFetch", typeof(RemoteFetchType))]
        [System.Xml.Serialization.XmlElementAttribute("RemoteModify", typeof(RemoteModifyType))]
        [System.Xml.Serialization.XmlElementAttribute("RemoteQuery", typeof(RemoteQueryType))]
        [System.Xml.Serialization.XmlElementAttribute("RemoteRange", typeof(RemoteRangeType))]
        [System.Xml.Serialization.XmlElementAttribute("RemoteScan", typeof(RemoteType))]
        [System.Xml.Serialization.XmlElementAttribute("RowCountSpool", typeof(SpoolType))]
        [System.Xml.Serialization.XmlElementAttribute("ScalarInsert", typeof(ScalarInsertType))]
        [System.Xml.Serialization.XmlElementAttribute("Segment", typeof(SegmentType))]
        [System.Xml.Serialization.XmlElementAttribute("Sequence", typeof(SequenceType))]
        [System.Xml.Serialization.XmlElementAttribute("SequenceProject", typeof(ComputeScalarType))]
        [System.Xml.Serialization.XmlElementAttribute("SimpleUpdate", typeof(SimpleUpdateType))]
        [System.Xml.Serialization.XmlElementAttribute("Sort", typeof(SortType))]
        [System.Xml.Serialization.XmlElementAttribute("Split", typeof(SplitType))]
        [System.Xml.Serialization.XmlElementAttribute("Spool", typeof(SpoolType))]
        [System.Xml.Serialization.XmlElementAttribute("StreamAggregate", typeof(StreamAggregateType))]
        [System.Xml.Serialization.XmlElementAttribute("Switch", typeof(SwitchType))]
        [System.Xml.Serialization.XmlElementAttribute("TFP", typeof(PredictFunctionType))]
        [System.Xml.Serialization.XmlElementAttribute("TableScan", typeof(TableScanType))]
        [System.Xml.Serialization.XmlElementAttribute("TableValuedFunction", typeof(TableValuedFunctionType))]
        [System.Xml.Serialization.XmlElementAttribute("Top", typeof(TopType))]
        [System.Xml.Serialization.XmlElementAttribute("TopSort", typeof(TopSortType))]
        [System.Xml.Serialization.XmlElementAttribute("Union", typeof(ConcatType))]
        [System.Xml.Serialization.XmlElementAttribute("UnionAll", typeof(ConcatType))]
        [System.Xml.Serialization.XmlElementAttribute("Update", typeof(UpdateType))]
        [System.Xml.Serialization.XmlElementAttribute("WindowAggregate", typeof(WindowAggregateType))]
        [System.Xml.Serialization.XmlElementAttribute("WindowSpool", typeof(WindowType))]
        [System.Xml.Serialization.XmlElementAttribute("XcsScan", typeof(XcsScanType))]
        [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemElementName")]
        public RelOpBaseType Item {
            get {
                return this.itemField;
            }
            set {
                this.itemField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public ItemChoiceType ItemElementName {
            get {
                return this.itemElementNameField;
            }
            set {
                this.itemElementNameField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double AvgRowSize {
            get {
                return this.avgRowSizeField;
            }
            set {
                this.avgRowSizeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double EstimateCPU {
            get {
                return this.estimateCPUField;
            }
            set {
                this.estimateCPUField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double EstimateIO {
            get {
                return this.estimateIOField;
            }
            set {
                this.estimateIOField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double EstimateRebinds {
            get {
                return this.estimateRebindsField;
            }
            set {
                this.estimateRebindsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double EstimateRewinds {
            get {
                return this.estimateRewindsField;
            }
            set {
                this.estimateRewindsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ExecutionModeType EstimatedExecutionMode {
            get {
                return this.estimatedExecutionModeField;
            }
            set {
                this.estimatedExecutionModeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool EstimatedExecutionModeSpecified {
            get {
                return this.estimatedExecutionModeFieldSpecified;
            }
            set {
                this.estimatedExecutionModeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool GroupExecuted {
            get {
                return this.groupExecutedField;
            }
            set {
                this.groupExecutedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool GroupExecutedSpecified {
            get {
                return this.groupExecutedFieldSpecified;
            }
            set {
                this.groupExecutedFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double EstimateRows {
            get {
                return this.estimateRowsField;
            }
            set {
                this.estimateRowsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double EstimateRowsWithoutRowGoal {
            get {
                return this.estimateRowsWithoutRowGoalField;
            }
            set {
                this.estimateRowsWithoutRowGoalField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool EstimateRowsWithoutRowGoalSpecified {
            get {
                return this.estimateRowsWithoutRowGoalFieldSpecified;
            }
            set {
                this.estimateRowsWithoutRowGoalFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double EstimatedRowsRead {
            get {
                return this.estimatedRowsReadField;
            }
            set {
                this.estimatedRowsReadField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool EstimatedRowsReadSpecified {
            get {
                return this.estimatedRowsReadFieldSpecified;
            }
            set {
                this.estimatedRowsReadFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public LogicalOpType LogicalOp {
            get {
                return this.logicalOpField;
            }
            set {
                this.logicalOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int NodeId {
            get {
                return this.nodeIdField;
            }
            set {
                this.nodeIdField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool NodeIdSpecified {
            get {
                return this.nodeIdFieldSpecified;
            }
            set {
                this.nodeIdFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Parallel {
            get {
                return this.parallelField;
            }
            set {
                this.parallelField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool RemoteDataAccess {
            get {
                return this.remoteDataAccessField;
            }
            set {
                this.remoteDataAccessField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool RemoteDataAccessSpecified {
            get {
                return this.remoteDataAccessFieldSpecified;
            }
            set {
                this.remoteDataAccessFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Partitioned {
            get {
                return this.partitionedField;
            }
            set {
                this.partitionedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool PartitionedSpecified {
            get {
                return this.partitionedFieldSpecified;
            }
            set {
                this.partitionedFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public PhysicalOpType PhysicalOp {
            get {
                return this.physicalOpField;
            }
            set {
                this.physicalOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsAdaptive {
            get {
                return this.isAdaptiveField;
            }
            set {
                this.isAdaptiveField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsAdaptiveSpecified {
            get {
                return this.isAdaptiveFieldSpecified;
            }
            set {
                this.isAdaptiveFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double AdaptiveThresholdRows {
            get {
                return this.adaptiveThresholdRowsField;
            }
            set {
                this.adaptiveThresholdRowsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool AdaptiveThresholdRowsSpecified {
            get {
                return this.adaptiveThresholdRowsFieldSpecified;
            }
            set {
                this.adaptiveThresholdRowsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double EstimatedTotalSubtreeCost {
            get {
                return this.estimatedTotalSubtreeCostField;
            }
            set {
                this.estimatedTotalSubtreeCostField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double TableCardinality {
            get {
                return this.tableCardinalityField;
            }
            set {
                this.tableCardinalityField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool TableCardinalitySpecified {
            get {
                return this.tableCardinalityFieldSpecified;
            }
            set {
                this.tableCardinalityFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong StatsCollectionId {
            get {
                return this.statsCollectionIdField;
            }
            set {
                this.statsCollectionIdField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool StatsCollectionIdSpecified {
            get {
                return this.statsCollectionIdFieldSpecified;
            }
            set {
                this.statsCollectionIdFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public PhysicalOpType EstimatedJoinType {
            get {
                return this.estimatedJoinTypeField;
            }
            set {
                this.estimatedJoinTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool EstimatedJoinTypeSpecified {
            get {
                return this.estimatedJoinTypeFieldSpecified;
            }
            set {
                this.estimatedJoinTypeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double PDWAccumulativeCost {
            get {
                return this.pDWAccumulativeCostField;
            }
            set {
                this.pDWAccumulativeCostField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool PDWAccumulativeCostSpecified {
            get {
                return this.pDWAccumulativeCostFieldSpecified;
            }
            set {
                this.pDWAccumulativeCostFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class MemoryFractionsType {
        
        private double inputField;
        
        private double outputField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double Input {
            get {
                return this.inputField;
            }
            set {
                this.inputField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double Output {
            get {
                return this.outputField;
            }
            set {
                this.outputField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class RunTimeInformationTypeRunTimeCountersPerThread {
        
        private int threadField;
        
        private int brickIdField;
        
        private bool brickIdFieldSpecified;
        
        private ulong actualRebindsField;
        
        private bool actualRebindsFieldSpecified;
        
        private ulong actualRewindsField;
        
        private bool actualRewindsFieldSpecified;
        
        private ulong actualRowsField;
        
        private ulong actualRowsReadField;
        
        private bool actualRowsReadFieldSpecified;
        
        private ulong batchesField;
        
        private bool batchesFieldSpecified;
        
        private ulong actualEndOfScansField;
        
        private ulong actualExecutionsField;
        
        private ExecutionModeType actualExecutionModeField;
        
        private bool actualExecutionModeFieldSpecified;
        
        private ulong taskAddrField;
        
        private bool taskAddrFieldSpecified;
        
        private ulong schedulerIdField;
        
        private bool schedulerIdFieldSpecified;
        
        private ulong firstActiveTimeField;
        
        private bool firstActiveTimeFieldSpecified;
        
        private ulong lastActiveTimeField;
        
        private bool lastActiveTimeFieldSpecified;
        
        private ulong openTimeField;
        
        private bool openTimeFieldSpecified;
        
        private ulong firstRowTimeField;
        
        private bool firstRowTimeFieldSpecified;
        
        private ulong lastRowTimeField;
        
        private bool lastRowTimeFieldSpecified;
        
        private ulong closeTimeField;
        
        private bool closeTimeFieldSpecified;
        
        private ulong actualElapsedmsField;
        
        private bool actualElapsedmsFieldSpecified;
        
        private ulong actualCPUmsField;
        
        private bool actualCPUmsFieldSpecified;
        
        private ulong actualScansField;
        
        private bool actualScansFieldSpecified;
        
        private ulong actualLogicalReadsField;
        
        private bool actualLogicalReadsFieldSpecified;
        
        private ulong actualPhysicalReadsField;
        
        private bool actualPhysicalReadsFieldSpecified;
        
        private ulong actualPageServerReadsField;
        
        private bool actualPageServerReadsFieldSpecified;
        
        private ulong actualReadAheadsField;
        
        private bool actualReadAheadsFieldSpecified;
        
        private ulong actualPageServerReadAheadsField;
        
        private bool actualPageServerReadAheadsFieldSpecified;
        
        private ulong actualLobLogicalReadsField;
        
        private bool actualLobLogicalReadsFieldSpecified;
        
        private ulong actualLobPhysicalReadsField;
        
        private bool actualLobPhysicalReadsFieldSpecified;
        
        private ulong actualLobPageServerReadsField;
        
        private bool actualLobPageServerReadsFieldSpecified;
        
        private ulong actualLobReadAheadsField;
        
        private bool actualLobReadAheadsFieldSpecified;
        
        private ulong actualLobPageServerReadAheadsField;
        
        private bool actualLobPageServerReadAheadsFieldSpecified;
        
        private int segmentReadsField;
        
        private bool segmentReadsFieldSpecified;
        
        private int segmentSkipsField;
        
        private bool segmentSkipsFieldSpecified;
        
        private ulong actualLocallyAggregatedRowsField;
        
        private bool actualLocallyAggregatedRowsFieldSpecified;
        
        private ulong inputMemoryGrantField;
        
        private bool inputMemoryGrantFieldSpecified;
        
        private ulong outputMemoryGrantField;
        
        private bool outputMemoryGrantFieldSpecified;
        
        private ulong usedMemoryGrantField;
        
        private bool usedMemoryGrantFieldSpecified;
        
        private bool isInterleavedExecutedField;
        
        private bool isInterleavedExecutedFieldSpecified;
        
        private PhysicalOpType actualJoinTypeField;
        
        private bool actualJoinTypeFieldSpecified;
        
        private ulong hpcRowCountField;
        
        private bool hpcRowCountFieldSpecified;
        
        private ulong hpcKernelElapsedUsField;
        
        private bool hpcKernelElapsedUsFieldSpecified;
        
        private ulong hpcHostToDeviceBytesField;
        
        private bool hpcHostToDeviceBytesFieldSpecified;
        
        private ulong hpcDeviceToHostBytesField;
        
        private bool hpcDeviceToHostBytesFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int Thread {
            get {
                return this.threadField;
            }
            set {
                this.threadField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int BrickId {
            get {
                return this.brickIdField;
            }
            set {
                this.brickIdField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool BrickIdSpecified {
            get {
                return this.brickIdFieldSpecified;
            }
            set {
                this.brickIdFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualRebinds {
            get {
                return this.actualRebindsField;
            }
            set {
                this.actualRebindsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualRebindsSpecified {
            get {
                return this.actualRebindsFieldSpecified;
            }
            set {
                this.actualRebindsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualRewinds {
            get {
                return this.actualRewindsField;
            }
            set {
                this.actualRewindsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualRewindsSpecified {
            get {
                return this.actualRewindsFieldSpecified;
            }
            set {
                this.actualRewindsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualRows {
            get {
                return this.actualRowsField;
            }
            set {
                this.actualRowsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualRowsRead {
            get {
                return this.actualRowsReadField;
            }
            set {
                this.actualRowsReadField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualRowsReadSpecified {
            get {
                return this.actualRowsReadFieldSpecified;
            }
            set {
                this.actualRowsReadFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong Batches {
            get {
                return this.batchesField;
            }
            set {
                this.batchesField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool BatchesSpecified {
            get {
                return this.batchesFieldSpecified;
            }
            set {
                this.batchesFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualEndOfScans {
            get {
                return this.actualEndOfScansField;
            }
            set {
                this.actualEndOfScansField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualExecutions {
            get {
                return this.actualExecutionsField;
            }
            set {
                this.actualExecutionsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ExecutionModeType ActualExecutionMode {
            get {
                return this.actualExecutionModeField;
            }
            set {
                this.actualExecutionModeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualExecutionModeSpecified {
            get {
                return this.actualExecutionModeFieldSpecified;
            }
            set {
                this.actualExecutionModeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong TaskAddr {
            get {
                return this.taskAddrField;
            }
            set {
                this.taskAddrField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool TaskAddrSpecified {
            get {
                return this.taskAddrFieldSpecified;
            }
            set {
                this.taskAddrFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong SchedulerId {
            get {
                return this.schedulerIdField;
            }
            set {
                this.schedulerIdField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool SchedulerIdSpecified {
            get {
                return this.schedulerIdFieldSpecified;
            }
            set {
                this.schedulerIdFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong FirstActiveTime {
            get {
                return this.firstActiveTimeField;
            }
            set {
                this.firstActiveTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool FirstActiveTimeSpecified {
            get {
                return this.firstActiveTimeFieldSpecified;
            }
            set {
                this.firstActiveTimeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong LastActiveTime {
            get {
                return this.lastActiveTimeField;
            }
            set {
                this.lastActiveTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool LastActiveTimeSpecified {
            get {
                return this.lastActiveTimeFieldSpecified;
            }
            set {
                this.lastActiveTimeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong OpenTime {
            get {
                return this.openTimeField;
            }
            set {
                this.openTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool OpenTimeSpecified {
            get {
                return this.openTimeFieldSpecified;
            }
            set {
                this.openTimeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong FirstRowTime {
            get {
                return this.firstRowTimeField;
            }
            set {
                this.firstRowTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool FirstRowTimeSpecified {
            get {
                return this.firstRowTimeFieldSpecified;
            }
            set {
                this.firstRowTimeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong LastRowTime {
            get {
                return this.lastRowTimeField;
            }
            set {
                this.lastRowTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool LastRowTimeSpecified {
            get {
                return this.lastRowTimeFieldSpecified;
            }
            set {
                this.lastRowTimeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong CloseTime {
            get {
                return this.closeTimeField;
            }
            set {
                this.closeTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool CloseTimeSpecified {
            get {
                return this.closeTimeFieldSpecified;
            }
            set {
                this.closeTimeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualElapsedms {
            get {
                return this.actualElapsedmsField;
            }
            set {
                this.actualElapsedmsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualElapsedmsSpecified {
            get {
                return this.actualElapsedmsFieldSpecified;
            }
            set {
                this.actualElapsedmsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualCPUms {
            get {
                return this.actualCPUmsField;
            }
            set {
                this.actualCPUmsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualCPUmsSpecified {
            get {
                return this.actualCPUmsFieldSpecified;
            }
            set {
                this.actualCPUmsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualScans {
            get {
                return this.actualScansField;
            }
            set {
                this.actualScansField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualScansSpecified {
            get {
                return this.actualScansFieldSpecified;
            }
            set {
                this.actualScansFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualLogicalReads {
            get {
                return this.actualLogicalReadsField;
            }
            set {
                this.actualLogicalReadsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualLogicalReadsSpecified {
            get {
                return this.actualLogicalReadsFieldSpecified;
            }
            set {
                this.actualLogicalReadsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualPhysicalReads {
            get {
                return this.actualPhysicalReadsField;
            }
            set {
                this.actualPhysicalReadsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualPhysicalReadsSpecified {
            get {
                return this.actualPhysicalReadsFieldSpecified;
            }
            set {
                this.actualPhysicalReadsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualPageServerReads {
            get {
                return this.actualPageServerReadsField;
            }
            set {
                this.actualPageServerReadsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualPageServerReadsSpecified {
            get {
                return this.actualPageServerReadsFieldSpecified;
            }
            set {
                this.actualPageServerReadsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualReadAheads {
            get {
                return this.actualReadAheadsField;
            }
            set {
                this.actualReadAheadsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualReadAheadsSpecified {
            get {
                return this.actualReadAheadsFieldSpecified;
            }
            set {
                this.actualReadAheadsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualPageServerReadAheads {
            get {
                return this.actualPageServerReadAheadsField;
            }
            set {
                this.actualPageServerReadAheadsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualPageServerReadAheadsSpecified {
            get {
                return this.actualPageServerReadAheadsFieldSpecified;
            }
            set {
                this.actualPageServerReadAheadsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualLobLogicalReads {
            get {
                return this.actualLobLogicalReadsField;
            }
            set {
                this.actualLobLogicalReadsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualLobLogicalReadsSpecified {
            get {
                return this.actualLobLogicalReadsFieldSpecified;
            }
            set {
                this.actualLobLogicalReadsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualLobPhysicalReads {
            get {
                return this.actualLobPhysicalReadsField;
            }
            set {
                this.actualLobPhysicalReadsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualLobPhysicalReadsSpecified {
            get {
                return this.actualLobPhysicalReadsFieldSpecified;
            }
            set {
                this.actualLobPhysicalReadsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualLobPageServerReads {
            get {
                return this.actualLobPageServerReadsField;
            }
            set {
                this.actualLobPageServerReadsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualLobPageServerReadsSpecified {
            get {
                return this.actualLobPageServerReadsFieldSpecified;
            }
            set {
                this.actualLobPageServerReadsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualLobReadAheads {
            get {
                return this.actualLobReadAheadsField;
            }
            set {
                this.actualLobReadAheadsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualLobReadAheadsSpecified {
            get {
                return this.actualLobReadAheadsFieldSpecified;
            }
            set {
                this.actualLobReadAheadsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualLobPageServerReadAheads {
            get {
                return this.actualLobPageServerReadAheadsField;
            }
            set {
                this.actualLobPageServerReadAheadsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualLobPageServerReadAheadsSpecified {
            get {
                return this.actualLobPageServerReadAheadsFieldSpecified;
            }
            set {
                this.actualLobPageServerReadAheadsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int SegmentReads {
            get {
                return this.segmentReadsField;
            }
            set {
                this.segmentReadsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool SegmentReadsSpecified {
            get {
                return this.segmentReadsFieldSpecified;
            }
            set {
                this.segmentReadsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int SegmentSkips {
            get {
                return this.segmentSkipsField;
            }
            set {
                this.segmentSkipsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool SegmentSkipsSpecified {
            get {
                return this.segmentSkipsFieldSpecified;
            }
            set {
                this.segmentSkipsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ActualLocallyAggregatedRows {
            get {
                return this.actualLocallyAggregatedRowsField;
            }
            set {
                this.actualLocallyAggregatedRowsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualLocallyAggregatedRowsSpecified {
            get {
                return this.actualLocallyAggregatedRowsFieldSpecified;
            }
            set {
                this.actualLocallyAggregatedRowsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong InputMemoryGrant {
            get {
                return this.inputMemoryGrantField;
            }
            set {
                this.inputMemoryGrantField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool InputMemoryGrantSpecified {
            get {
                return this.inputMemoryGrantFieldSpecified;
            }
            set {
                this.inputMemoryGrantFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong OutputMemoryGrant {
            get {
                return this.outputMemoryGrantField;
            }
            set {
                this.outputMemoryGrantField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool OutputMemoryGrantSpecified {
            get {
                return this.outputMemoryGrantFieldSpecified;
            }
            set {
                this.outputMemoryGrantFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong UsedMemoryGrant {
            get {
                return this.usedMemoryGrantField;
            }
            set {
                this.usedMemoryGrantField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool UsedMemoryGrantSpecified {
            get {
                return this.usedMemoryGrantFieldSpecified;
            }
            set {
                this.usedMemoryGrantFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsInterleavedExecuted {
            get {
                return this.isInterleavedExecutedField;
            }
            set {
                this.isInterleavedExecutedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsInterleavedExecutedSpecified {
            get {
                return this.isInterleavedExecutedFieldSpecified;
            }
            set {
                this.isInterleavedExecutedFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public PhysicalOpType ActualJoinType {
            get {
                return this.actualJoinTypeField;
            }
            set {
                this.actualJoinTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ActualJoinTypeSpecified {
            get {
                return this.actualJoinTypeFieldSpecified;
            }
            set {
                this.actualJoinTypeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong HpcRowCount {
            get {
                return this.hpcRowCountField;
            }
            set {
                this.hpcRowCountField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool HpcRowCountSpecified {
            get {
                return this.hpcRowCountFieldSpecified;
            }
            set {
                this.hpcRowCountFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong HpcKernelElapsedUs {
            get {
                return this.hpcKernelElapsedUsField;
            }
            set {
                this.hpcKernelElapsedUsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool HpcKernelElapsedUsSpecified {
            get {
                return this.hpcKernelElapsedUsFieldSpecified;
            }
            set {
                this.hpcKernelElapsedUsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong HpcHostToDeviceBytes {
            get {
                return this.hpcHostToDeviceBytesField;
            }
            set {
                this.hpcHostToDeviceBytesField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool HpcHostToDeviceBytesSpecified {
            get {
                return this.hpcHostToDeviceBytesFieldSpecified;
            }
            set {
                this.hpcHostToDeviceBytesFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong HpcDeviceToHostBytes {
            get {
                return this.hpcDeviceToHostBytesField;
            }
            set {
                this.hpcDeviceToHostBytesField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool HpcDeviceToHostBytesSpecified {
            get {
                return this.hpcDeviceToHostBytesFieldSpecified;
            }
            set {
                this.hpcDeviceToHostBytesFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum ExecutionModeType {
        
        /// <remarks/>
        Row,
        
        /// <remarks/>
        Batch,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum PhysicalOpType {
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Adaptive Join")]
        AdaptiveJoin,
        
        /// <remarks/>
        Apply,
        
        /// <remarks/>
        Assert,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Batch Hash Table Build")]
        BatchHashTableBuild,
        
        /// <remarks/>
        Bitmap,
        
        /// <remarks/>
        Broadcast,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Clustered Index Delete")]
        ClusteredIndexDelete,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Clustered Index Insert")]
        ClusteredIndexInsert,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Clustered Index Scan")]
        ClusteredIndexScan,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Clustered Index Seek")]
        ClusteredIndexSeek,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Clustered Index Update")]
        ClusteredIndexUpdate,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Clustered Index Merge")]
        ClusteredIndexMerge,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Clustered Update")]
        ClusteredUpdate,
        
        /// <remarks/>
        Collapse,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Columnstore Index Delete")]
        ColumnstoreIndexDelete,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Columnstore Index Insert")]
        ColumnstoreIndexInsert,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Columnstore Index Merge")]
        ColumnstoreIndexMerge,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Columnstore Index Scan")]
        ColumnstoreIndexScan,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Columnstore Index Update")]
        ColumnstoreIndexUpdate,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Compute Scalar")]
        ComputeScalar,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Compute To Control Node")]
        ComputeToControlNode,
        
        /// <remarks/>
        Concatenation,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Constant Scan")]
        ConstantScan,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Constant Table Get")]
        ConstantTableGet,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Control To Compute Nodes")]
        ControlToComputeNodes,
        
        /// <remarks/>
        Delete,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Deleted Scan")]
        DeletedScan,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("External Broadcast")]
        ExternalBroadcast,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("External Extraction Scan")]
        ExternalExtractionScan,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("External Local Streaming")]
        ExternalLocalStreaming,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("External Round Robin")]
        ExternalRoundRobin,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("External Select")]
        ExternalSelect,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("External Shuffle")]
        ExternalShuffle,
        
        /// <remarks/>
        Filter,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Foreign Key References Check")]
        ForeignKeyReferencesCheck,
        
        /// <remarks/>
        GbAgg,
        
        /// <remarks/>
        GbApply,
        
        /// <remarks/>
        Get,
        
        /// <remarks/>
        Generic,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Hash Match")]
        HashMatch,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Index Delete")]
        IndexDelete,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Index Insert")]
        IndexInsert,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Index Scan")]
        IndexScan,
        
        /// <remarks/>
        Insert,
        
        /// <remarks/>
        Join,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Index Seek")]
        IndexSeek,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Index Spool")]
        IndexSpool,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Index Update")]
        IndexUpdate,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Inserted Scan")]
        InsertedScan,
        
        /// <remarks/>
        LocalCube,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Log Row Scan")]
        LogRowScan,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Merge Interval")]
        MergeInterval,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Merge Join")]
        MergeJoin,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Nested Loops")]
        NestedLoops,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Online Index Insert")]
        OnlineIndexInsert,
        
        /// <remarks/>
        Parallelism,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Parameter Table Scan")]
        ParameterTableScan,
        
        /// <remarks/>
        Print,
        
        /// <remarks/>
        Project,
        
        /// <remarks/>
        Put,
        
        /// <remarks/>
        Rank,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Remote Delete")]
        RemoteDelete,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Remote Index Scan")]
        RemoteIndexScan,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Remote Index Seek")]
        RemoteIndexSeek,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Remote Insert")]
        RemoteInsert,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Remote Query")]
        RemoteQuery,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Remote Scan")]
        RemoteScan,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Remote Update")]
        RemoteUpdate,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("RID Lookup")]
        RIDLookup,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Row Count Spool")]
        RowCountSpool,
        
        /// <remarks/>
        Segment,
        
        /// <remarks/>
        Sequence,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Sequence Project")]
        SequenceProject,
        
        /// <remarks/>
        Shuffle,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Single Source Round Robin Move")]
        SingleSourceRoundRobinMove,
        
        /// <remarks/>
        Sort,
        
        /// <remarks/>
        Split,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Stream Aggregate")]
        StreamAggregate,
        
        /// <remarks/>
        Switch,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Table Delete")]
        TableDelete,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Table Insert")]
        TableInsert,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Table Merge")]
        TableMerge,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Table Scan")]
        TableScan,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Table Spool")]
        TableSpool,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Table Update")]
        TableUpdate,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Table-valued function")]
        Tablevaluedfunction,
        
        /// <remarks/>
        TFP,
        
        /// <remarks/>
        Top,
        
        /// <remarks/>
        Trim,
        
        /// <remarks/>
        UDX,
        
        /// <remarks/>
        Union,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Union All")]
        UnionAll,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Window Aggregate")]
        WindowAggregate,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Window Spool")]
        WindowSpool,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Key Lookup")]
        KeyLookup,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Extensible Column Store Scan")]
        ExtensibleColumnStoreScan,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class RunTimePartitionSummaryType {
        
        private RunTimePartitionSummaryTypePartitionsAccessed partitionsAccessedField;
        
        /// <remarks/>
        public RunTimePartitionSummaryTypePartitionsAccessed PartitionsAccessed {
            get {
                return this.partitionsAccessedField;
            }
            set {
                this.partitionsAccessedField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class RunTimePartitionSummaryTypePartitionsAccessed {
        
        private RunTimePartitionSummaryTypePartitionsAccessedPartitionRange[] partitionRangeField;
        
        private ulong partitionCountField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("PartitionRange")]
        public RunTimePartitionSummaryTypePartitionsAccessedPartitionRange[] PartitionRange {
            get {
                return this.partitionRangeField;
            }
            set {
                this.partitionRangeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong PartitionCount {
            get {
                return this.partitionCountField;
            }
            set {
                this.partitionCountField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class RunTimePartitionSummaryTypePartitionsAccessedPartitionRange {
        
        private ulong startField;
        
        private ulong endField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong Start {
            get {
                return this.startField;
            }
            set {
                this.startField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong End {
            get {
                return this.endField;
            }
            set {
                this.endField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class AdaptiveJoinType : RelOpBaseType {
        
        private ColumnReferenceType[] hashKeysBuildField;
        
        private ColumnReferenceType[] hashKeysProbeField;
        
        private ScalarExpressionType buildResidualField;
        
        private ScalarExpressionType probeResidualField;
        
        private StarJoinInfoType starJoinInfoField;
        
        private ScalarExpressionType predicateField;
        
        private ScalarExpressionType passThruField;
        
        private ColumnReferenceType[] outerReferencesField;
        
        private SingleColumnReferenceType partitionIdField;
        
        private RelOpType[] relOpField;
        
        private bool bitmapCreatorField;
        
        private bool bitmapCreatorFieldSpecified;
        
        private bool optimizedField;
        
        private bool withOrderedPrefetchField;
        
        private bool withOrderedPrefetchFieldSpecified;
        
        private bool withUnorderedPrefetchField;
        
        private bool withUnorderedPrefetchFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] HashKeysBuild {
            get {
                return this.hashKeysBuildField;
            }
            set {
                this.hashKeysBuildField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] HashKeysProbe {
            get {
                return this.hashKeysProbeField;
            }
            set {
                this.hashKeysProbeField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType BuildResidual {
            get {
                return this.buildResidualField;
            }
            set {
                this.buildResidualField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType ProbeResidual {
            get {
                return this.probeResidualField;
            }
            set {
                this.probeResidualField = value;
            }
        }
        
        /// <remarks/>
        public StarJoinInfoType StarJoinInfo {
            get {
                return this.starJoinInfoField;
            }
            set {
                this.starJoinInfoField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType Predicate {
            get {
                return this.predicateField;
            }
            set {
                this.predicateField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType PassThru {
            get {
                return this.passThruField;
            }
            set {
                this.passThruField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] OuterReferences {
            get {
                return this.outerReferencesField;
            }
            set {
                this.outerReferencesField = value;
            }
        }
        
        /// <remarks/>
        public SingleColumnReferenceType PartitionId {
            get {
                return this.partitionIdField;
            }
            set {
                this.partitionIdField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("RelOp")]
        public RelOpType[] RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool BitmapCreator {
            get {
                return this.bitmapCreatorField;
            }
            set {
                this.bitmapCreatorField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool BitmapCreatorSpecified {
            get {
                return this.bitmapCreatorFieldSpecified;
            }
            set {
                this.bitmapCreatorFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Optimized {
            get {
                return this.optimizedField;
            }
            set {
                this.optimizedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool WithOrderedPrefetch {
            get {
                return this.withOrderedPrefetchField;
            }
            set {
                this.withOrderedPrefetchField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool WithOrderedPrefetchSpecified {
            get {
                return this.withOrderedPrefetchFieldSpecified;
            }
            set {
                this.withOrderedPrefetchFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool WithUnorderedPrefetch {
            get {
                return this.withUnorderedPrefetchField;
            }
            set {
                this.withUnorderedPrefetchField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool WithUnorderedPrefetchSpecified {
            get {
                return this.withUnorderedPrefetchFieldSpecified;
            }
            set {
                this.withUnorderedPrefetchFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class StarJoinInfoType {
        
        private bool rootField;
        
        private bool rootFieldSpecified;
        
        private StarJoinInfoTypeOperationType operationTypeField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Root {
            get {
                return this.rootField;
            }
            set {
                this.rootField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool RootSpecified {
            get {
                return this.rootFieldSpecified;
            }
            set {
                this.rootFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public StarJoinInfoTypeOperationType OperationType {
            get {
                return this.operationTypeField;
            }
            set {
                this.operationTypeField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum StarJoinInfoTypeOperationType {
        
        /// <remarks/>
        Fetch,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Index Intersection")]
        IndexIntersection,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Index Filter")]
        IndexFilter,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Index Lookup")]
        IndexLookup,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SingleColumnReferenceType {
        
        private ColumnReferenceType columnReferenceField;
        
        /// <remarks/>
        public ColumnReferenceType ColumnReference {
            get {
                return this.columnReferenceField;
            }
            set {
                this.columnReferenceField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GetType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(DMLOpType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(LocalCubeType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GbAggType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GbApplyType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(JoinType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ProjectType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ExternalSelectType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MoveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(GenericType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RemoteType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RemoteQueryType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PutType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RemoteModifyType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RemoteFetchType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RemoteRangeType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(BatchHashTableBuildType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SpoolType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(WindowAggregateType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(WindowType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(UDXType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TopType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SplitType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SequenceType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SegmentType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(NestedLoopsType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(MergeType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ConcatType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SwitchType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CollapseType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(BitmapType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SortType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TopSortType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(StreamAggregateType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ParallelismType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ComputeScalarType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(HashType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TableValuedFunctionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PredictFunctionType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ConstantScanType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(FilterType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SimpleIteratorOneChildType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RowsetType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ScalarInsertType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CreateIndexType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(UpdateType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SimpleUpdateType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(IndexScanType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(XcsScanType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TableScanType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ForeignKeyReferencesCheckType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(AdaptiveJoinType))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class RelOpBaseType {
        
        private DefinedValuesListTypeDefinedValue[] definedValuesField;
        
        private InternalInfoType internalInfoField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("DefinedValue", IsNullable=false)]
        public DefinedValuesListTypeDefinedValue[] DefinedValues {
            get {
                return this.definedValuesField;
            }
            set {
                this.definedValuesField = value;
            }
        }
        
        /// <remarks/>
        public InternalInfoType InternalInfo {
            get {
                return this.internalInfoField;
            }
            set {
                this.internalInfoField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class DefinedValuesListTypeDefinedValue {
        
        private object itemField;
        
        private object[] itemsField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ColumnReference", typeof(ColumnReferenceType), Order=0)]
        [System.Xml.Serialization.XmlElementAttribute("ValueVector", typeof(DefinedValuesListTypeDefinedValueValueVector), Order=0)]
        public object Item {
            get {
                return this.itemField;
            }
            set {
                this.itemField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ColumnReference", typeof(ColumnReferenceType), Order=1)]
        [System.Xml.Serialization.XmlElementAttribute("ScalarOperator", typeof(ScalarType), Order=1)]
        public object[] Items {
            get {
                return this.itemsField;
            }
            set {
                this.itemsField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class DefinedValuesListTypeDefinedValueValueVector {
        
        private ColumnReferenceType[] columnReferenceField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ColumnReference")]
        public ColumnReferenceType[] ColumnReference {
            get {
                return this.columnReferenceField;
            }
            set {
                this.columnReferenceField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class GetType : RelOpBaseType {
        
        private ColumnReferenceType[] bookmarksField;
        
        private OutputColumnsType outputColumnsField;
        
        private ScalarType[] generatedDataField;
        
        private RelOpType[] relOpField;
        
        private int numRowsField;
        
        private bool numRowsFieldSpecified;
        
        private bool isExternalField;
        
        private bool isExternalFieldSpecified;
        
        private bool isDistributedField;
        
        private bool isDistributedFieldSpecified;
        
        private bool isHashDistributedField;
        
        private bool isHashDistributedFieldSpecified;
        
        private bool isReplicatedField;
        
        private bool isReplicatedFieldSpecified;
        
        private bool isRoundRobinField;
        
        private bool isRoundRobinFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] Bookmarks {
            get {
                return this.bookmarksField;
            }
            set {
                this.bookmarksField = value;
            }
        }
        
        /// <remarks/>
        public OutputColumnsType OutputColumns {
            get {
                return this.outputColumnsField;
            }
            set {
                this.outputColumnsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ScalarOperator", IsNullable=false)]
        public ScalarType[] GeneratedData {
            get {
                return this.generatedDataField;
            }
            set {
                this.generatedDataField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("RelOp")]
        public RelOpType[] RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int NumRows {
            get {
                return this.numRowsField;
            }
            set {
                this.numRowsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool NumRowsSpecified {
            get {
                return this.numRowsFieldSpecified;
            }
            set {
                this.numRowsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsExternal {
            get {
                return this.isExternalField;
            }
            set {
                this.isExternalField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsExternalSpecified {
            get {
                return this.isExternalFieldSpecified;
            }
            set {
                this.isExternalFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsDistributed {
            get {
                return this.isDistributedField;
            }
            set {
                this.isDistributedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsDistributedSpecified {
            get {
                return this.isDistributedFieldSpecified;
            }
            set {
                this.isDistributedFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsHashDistributed {
            get {
                return this.isHashDistributedField;
            }
            set {
                this.isHashDistributedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsHashDistributedSpecified {
            get {
                return this.isHashDistributedFieldSpecified;
            }
            set {
                this.isHashDistributedFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsReplicated {
            get {
                return this.isReplicatedField;
            }
            set {
                this.isReplicatedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsReplicatedSpecified {
            get {
                return this.isReplicatedFieldSpecified;
            }
            set {
                this.isReplicatedFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsRoundRobin {
            get {
                return this.isRoundRobinField;
            }
            set {
                this.isRoundRobinField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsRoundRobinSpecified {
            get {
                return this.isRoundRobinFieldSpecified;
            }
            set {
                this.isRoundRobinFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class OutputColumnsType {
        
        private DefinedValuesListTypeDefinedValue[] definedValuesField;
        
        private ObjectType[] objectField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("DefinedValue", IsNullable=false)]
        public DefinedValuesListTypeDefinedValue[] DefinedValues {
            get {
                return this.definedValuesField;
            }
            set {
                this.definedValuesField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Object")]
        public ObjectType[] Object {
            get {
                return this.objectField;
            }
            set {
                this.objectField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class DMLOpType : RelOpBaseType {
        
        private AssignType[] assignmentMapField;
        
        private ObjectType[] sourceTableField;
        
        private ObjectType[] targetTableField;
        
        private RelOpType[] relOpField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Assign", IsNullable=false)]
        public AssignType[] AssignmentMap {
            get {
                return this.assignmentMapField;
            }
            set {
                this.assignmentMapField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Object", IsNullable=false)]
        public ObjectType[] SourceTable {
            get {
                return this.sourceTableField;
            }
            set {
                this.sourceTableField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Object", IsNullable=false)]
        public ObjectType[] TargetTable {
            get {
                return this.targetTableField;
            }
            set {
                this.targetTableField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("RelOp")]
        public RelOpType[] RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class LocalCubeType : RelOpBaseType {
        
        private ColumnReferenceType[] groupByField;
        
        private GroupingSetReferenceType[] groupingSetsField;
        
        private RelOpType[] relOpField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] GroupBy {
            get {
                return this.groupByField;
            }
            set {
                this.groupByField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("GroupingSet", IsNullable=false)]
        public GroupingSetReferenceType[] GroupingSets {
            get {
                return this.groupingSetsField;
            }
            set {
                this.groupingSetsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("RelOp")]
        public RelOpType[] RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class GroupingSetReferenceType {
        
        private string valueField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class GbAggType : RelOpBaseType {
        
        private ColumnReferenceType[] groupByField;
        
        private DefinedValuesListTypeDefinedValue[] aggFunctionsField;
        
        private RelOpType[] relOpField;
        
        private bool isScalarField;
        
        private bool isScalarFieldSpecified;
        
        private string aggTypeField;
        
        private string hintTypeField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] GroupBy {
            get {
                return this.groupByField;
            }
            set {
                this.groupByField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("DefinedValue", IsNullable=false)]
        public DefinedValuesListTypeDefinedValue[] AggFunctions {
            get {
                return this.aggFunctionsField;
            }
            set {
                this.aggFunctionsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("RelOp")]
        public RelOpType[] RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsScalar {
            get {
                return this.isScalarField;
            }
            set {
                this.isScalarField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsScalarSpecified {
            get {
                return this.isScalarFieldSpecified;
            }
            set {
                this.isScalarFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string AggType {
            get {
                return this.aggTypeField;
            }
            set {
                this.aggTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string HintType {
            get {
                return this.hintTypeField;
            }
            set {
                this.hintTypeField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class GbApplyType : RelOpBaseType {
        
        private ScalarExpressionType[] predicateField;
        
        private DefinedValuesListTypeDefinedValue[] aggFunctionsField;
        
        private RelOpType[] relOpField;
        
        private string joinTypeField;
        
        private string aggTypeField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Predicate")]
        public ScalarExpressionType[] Predicate {
            get {
                return this.predicateField;
            }
            set {
                this.predicateField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("DefinedValue", IsNullable=false)]
        public DefinedValuesListTypeDefinedValue[] AggFunctions {
            get {
                return this.aggFunctionsField;
            }
            set {
                this.aggFunctionsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("RelOp")]
        public RelOpType[] RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string JoinType {
            get {
                return this.joinTypeField;
            }
            set {
                this.joinTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string AggType {
            get {
                return this.aggTypeField;
            }
            set {
                this.aggTypeField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class JoinType : RelOpBaseType {
        
        private ScalarExpressionType[] predicateField;
        
        private SingleColumnReferenceType[] probeField;
        
        private RelOpType[] relOpField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Predicate")]
        public ScalarExpressionType[] Predicate {
            get {
                return this.predicateField;
            }
            set {
                this.predicateField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Probe")]
        public SingleColumnReferenceType[] Probe {
            get {
                return this.probeField;
            }
            set {
                this.probeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("RelOp")]
        public RelOpType[] RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ProjectType : RelOpBaseType {
        
        private RelOpType[] relOpField;
        
        private bool isNoOpField;
        
        private bool isNoOpFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("RelOp")]
        public RelOpType[] RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsNoOp {
            get {
                return this.isNoOpField;
            }
            set {
                this.isNoOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsNoOpSpecified {
            get {
                return this.isNoOpFieldSpecified;
            }
            set {
                this.isNoOpFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ExternalSelectType : RelOpBaseType {
        
        private RelOpType[] relOpField;
        
        private string materializeOperationField;
        
        private string distributionTypeField;
        
        private bool isDistributedField;
        
        private bool isDistributedFieldSpecified;
        
        private bool isExternalField;
        
        private bool isExternalFieldSpecified;
        
        private bool isFullField;
        
        private bool isFullFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("RelOp")]
        public RelOpType[] RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string MaterializeOperation {
            get {
                return this.materializeOperationField;
            }
            set {
                this.materializeOperationField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string DistributionType {
            get {
                return this.distributionTypeField;
            }
            set {
                this.distributionTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsDistributed {
            get {
                return this.isDistributedField;
            }
            set {
                this.isDistributedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsDistributedSpecified {
            get {
                return this.isDistributedFieldSpecified;
            }
            set {
                this.isDistributedFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsExternal {
            get {
                return this.isExternalField;
            }
            set {
                this.isExternalField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsExternalSpecified {
            get {
                return this.isExternalFieldSpecified;
            }
            set {
                this.isExternalFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsFull {
            get {
                return this.isFullField;
            }
            set {
                this.isFullField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsFullSpecified {
            get {
                return this.isFullFieldSpecified;
            }
            set {
                this.isFullFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class MoveType : RelOpBaseType {
        
        private ColumnReferenceType[] distributionKeyField;
        
        private RelOpType[] relOpField;
        
        private string moveType1Field;
        
        private string distributionTypeField;
        
        private bool isDistributedField;
        
        private bool isDistributedFieldSpecified;
        
        private bool isExternalField;
        
        private bool isExternalFieldSpecified;
        
        private bool isFullField;
        
        private bool isFullFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] DistributionKey {
            get {
                return this.distributionKeyField;
            }
            set {
                this.distributionKeyField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("RelOp")]
        public RelOpType[] RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("MoveType")]
        public string MoveType1 {
            get {
                return this.moveType1Field;
            }
            set {
                this.moveType1Field = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string DistributionType {
            get {
                return this.distributionTypeField;
            }
            set {
                this.distributionTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsDistributed {
            get {
                return this.isDistributedField;
            }
            set {
                this.isDistributedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsDistributedSpecified {
            get {
                return this.isDistributedFieldSpecified;
            }
            set {
                this.isDistributedFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsExternal {
            get {
                return this.isExternalField;
            }
            set {
                this.isExternalField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsExternalSpecified {
            get {
                return this.isExternalFieldSpecified;
            }
            set {
                this.isExternalFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsFull {
            get {
                return this.isFullField;
            }
            set {
                this.isFullField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsFullSpecified {
            get {
                return this.isFullFieldSpecified;
            }
            set {
                this.isFullFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class GenericType : RelOpBaseType {
        
        private RelOpType[] relOpField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("RelOp")]
        public RelOpType[] RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RemoteQueryType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PutType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RemoteModifyType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RemoteFetchType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(RemoteRangeType))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class RemoteType : RelOpBaseType {
        
        private string remoteDestinationField;
        
        private string remoteSourceField;
        
        private string remoteObjectField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string RemoteDestination {
            get {
                return this.remoteDestinationField;
            }
            set {
                this.remoteDestinationField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string RemoteSource {
            get {
                return this.remoteSourceField;
            }
            set {
                this.remoteSourceField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string RemoteObject {
            get {
                return this.remoteObjectField;
            }
            set {
                this.remoteObjectField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(PutType))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class RemoteQueryType : RemoteType {
        
        private string remoteQueryField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string RemoteQuery {
            get {
                return this.remoteQueryField;
            }
            set {
                this.remoteQueryField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class PutType : RemoteQueryType {
        
        private RelOpType relOpField;
        
        private bool isExternallyComputedField;
        
        private bool isExternallyComputedFieldSpecified;
        
        private string shuffleTypeField;
        
        private string shuffleColumnField;
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsExternallyComputed {
            get {
                return this.isExternallyComputedField;
            }
            set {
                this.isExternallyComputedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsExternallyComputedSpecified {
            get {
                return this.isExternallyComputedFieldSpecified;
            }
            set {
                this.isExternallyComputedFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string ShuffleType {
            get {
                return this.shuffleTypeField;
            }
            set {
                this.shuffleTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string ShuffleColumn {
            get {
                return this.shuffleColumnField;
            }
            set {
                this.shuffleColumnField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class RemoteModifyType : RemoteType {
        
        private ScalarExpressionType setPredicateField;
        
        private RelOpType relOpField;
        
        /// <remarks/>
        public ScalarExpressionType SetPredicate {
            get {
                return this.setPredicateField;
            }
            set {
                this.setPredicateField = value;
            }
        }
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class RemoteFetchType : RemoteType {
        
        private RelOpType relOpField;
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class RemoteRangeType : RemoteType {
        
        private SeekPredicatesType seekPredicatesField;
        
        /// <remarks/>
        public SeekPredicatesType SeekPredicates {
            get {
                return this.seekPredicatesField;
            }
            set {
                this.seekPredicatesField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SeekPredicatesType {
        
        private object[] itemsField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("SeekPredicate", typeof(SeekPredicateType))]
        [System.Xml.Serialization.XmlElementAttribute("SeekPredicateNew", typeof(SeekPredicateNewType))]
        [System.Xml.Serialization.XmlElementAttribute("SeekPredicatePart", typeof(SeekPredicatePartType))]
        public object[] Items {
            get {
                return this.itemsField;
            }
            set {
                this.itemsField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SeekPredicateType {
        
        private ScanRangeType prefixField;
        
        private ScanRangeType startRangeField;
        
        private ScanRangeType endRangeField;
        
        private SingleColumnReferenceType isNotNullField;
        
        /// <remarks/>
        public ScanRangeType Prefix {
            get {
                return this.prefixField;
            }
            set {
                this.prefixField = value;
            }
        }
        
        /// <remarks/>
        public ScanRangeType StartRange {
            get {
                return this.startRangeField;
            }
            set {
                this.startRangeField = value;
            }
        }
        
        /// <remarks/>
        public ScanRangeType EndRange {
            get {
                return this.endRangeField;
            }
            set {
                this.endRangeField = value;
            }
        }
        
        /// <remarks/>
        public SingleColumnReferenceType IsNotNull {
            get {
                return this.isNotNullField;
            }
            set {
                this.isNotNullField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ScanRangeType {
        
        private ColumnReferenceType[] rangeColumnsField;
        
        private ScalarType[] rangeExpressionsField;
        
        private CompareOpType scanTypeField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] RangeColumns {
            get {
                return this.rangeColumnsField;
            }
            set {
                this.rangeColumnsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ScalarOperator", IsNullable=false)]
        public ScalarType[] RangeExpressions {
            get {
                return this.rangeExpressionsField;
            }
            set {
                this.rangeExpressionsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public CompareOpType ScanType {
            get {
                return this.scanTypeField;
            }
            set {
                this.scanTypeField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SeekPredicateNewType {
        
        private SeekPredicateType[] seekKeysField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("SeekKeys")]
        public SeekPredicateType[] SeekKeys {
            get {
                return this.seekKeysField;
            }
            set {
                this.seekKeysField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SeekPredicatePartType {
        
        private SeekPredicateNewType[] itemsField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("SeekPredicateNew")]
        public SeekPredicateNewType[] Items {
            get {
                return this.itemsField;
            }
            set {
                this.itemsField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class BatchHashTableBuildType : RelOpBaseType {
        
        private RelOpType relOpField;
        
        private bool bitmapCreatorField;
        
        private bool bitmapCreatorFieldSpecified;
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool BitmapCreator {
            get {
                return this.bitmapCreatorField;
            }
            set {
                this.bitmapCreatorField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool BitmapCreatorSpecified {
            get {
                return this.bitmapCreatorFieldSpecified;
            }
            set {
                this.bitmapCreatorFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SpoolType : RelOpBaseType {
        
        private object itemField;
        
        private RelOpType relOpField;
        
        private bool stackField;
        
        private bool stackFieldSpecified;
        
        private int primaryNodeIdField;
        
        private bool primaryNodeIdFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("SeekPredicate", typeof(SeekPredicateType))]
        [System.Xml.Serialization.XmlElementAttribute("SeekPredicateNew", typeof(SeekPredicateNewType))]
        public object Item {
            get {
                return this.itemField;
            }
            set {
                this.itemField = value;
            }
        }
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Stack {
            get {
                return this.stackField;
            }
            set {
                this.stackField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool StackSpecified {
            get {
                return this.stackFieldSpecified;
            }
            set {
                this.stackFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int PrimaryNodeId {
            get {
                return this.primaryNodeIdField;
            }
            set {
                this.primaryNodeIdField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool PrimaryNodeIdSpecified {
            get {
                return this.primaryNodeIdFieldSpecified;
            }
            set {
                this.primaryNodeIdFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class WindowAggregateType : RelOpBaseType {
        
        private RelOpType relOpField;
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class WindowType : RelOpBaseType {
        
        private RelOpType relOpField;
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class UDXType : RelOpBaseType {
        
        private ColumnReferenceType[] usedUDXColumnsField;
        
        private RelOpType relOpField;
        
        private string uDXNameField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] UsedUDXColumns {
            get {
                return this.usedUDXColumnsField;
            }
            set {
                this.usedUDXColumnsField = value;
            }
        }
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string UDXName {
            get {
                return this.uDXNameField;
            }
            set {
                this.uDXNameField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class TopType : RelOpBaseType {
        
        private ColumnReferenceType[] tieColumnsField;
        
        private ScalarExpressionType offsetExpressionField;
        
        private ScalarExpressionType topExpressionField;
        
        private RelOpType relOpField;
        
        private bool rowCountField;
        
        private bool rowCountFieldSpecified;
        
        private int rowsField;
        
        private bool rowsFieldSpecified;
        
        private bool isPercentField;
        
        private bool isPercentFieldSpecified;
        
        private bool withTiesField;
        
        private bool withTiesFieldSpecified;
        
        private string topLocationField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] TieColumns {
            get {
                return this.tieColumnsField;
            }
            set {
                this.tieColumnsField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType OffsetExpression {
            get {
                return this.offsetExpressionField;
            }
            set {
                this.offsetExpressionField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType TopExpression {
            get {
                return this.topExpressionField;
            }
            set {
                this.topExpressionField = value;
            }
        }
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool RowCount {
            get {
                return this.rowCountField;
            }
            set {
                this.rowCountField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool RowCountSpecified {
            get {
                return this.rowCountFieldSpecified;
            }
            set {
                this.rowCountFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int Rows {
            get {
                return this.rowsField;
            }
            set {
                this.rowsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool RowsSpecified {
            get {
                return this.rowsFieldSpecified;
            }
            set {
                this.rowsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsPercent {
            get {
                return this.isPercentField;
            }
            set {
                this.isPercentField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsPercentSpecified {
            get {
                return this.isPercentFieldSpecified;
            }
            set {
                this.isPercentFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool WithTies {
            get {
                return this.withTiesField;
            }
            set {
                this.withTiesField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool WithTiesSpecified {
            get {
                return this.withTiesFieldSpecified;
            }
            set {
                this.withTiesFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string TopLocation {
            get {
                return this.topLocationField;
            }
            set {
                this.topLocationField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SplitType : RelOpBaseType {
        
        private SingleColumnReferenceType actionColumnField;
        
        private RelOpType relOpField;
        
        /// <remarks/>
        public SingleColumnReferenceType ActionColumn {
            get {
                return this.actionColumnField;
            }
            set {
                this.actionColumnField = value;
            }
        }
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SequenceType : RelOpBaseType {
        
        private RelOpType[] relOpField;
        
        private bool isGraphDBTransitiveClosureField;
        
        private bool isGraphDBTransitiveClosureFieldSpecified;
        
        private string graphSequenceIdentifierField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("RelOp")]
        public RelOpType[] RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsGraphDBTransitiveClosure {
            get {
                return this.isGraphDBTransitiveClosureField;
            }
            set {
                this.isGraphDBTransitiveClosureField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsGraphDBTransitiveClosureSpecified {
            get {
                return this.isGraphDBTransitiveClosureFieldSpecified;
            }
            set {
                this.isGraphDBTransitiveClosureFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute(DataType="integer")]
        public string GraphSequenceIdentifier {
            get {
                return this.graphSequenceIdentifierField;
            }
            set {
                this.graphSequenceIdentifierField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SegmentType : RelOpBaseType {
        
        private ColumnReferenceType[] groupByField;
        
        private SingleColumnReferenceType segmentColumnField;
        
        private RelOpType relOpField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] GroupBy {
            get {
                return this.groupByField;
            }
            set {
                this.groupByField = value;
            }
        }
        
        /// <remarks/>
        public SingleColumnReferenceType SegmentColumn {
            get {
                return this.segmentColumnField;
            }
            set {
                this.segmentColumnField = value;
            }
        }
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class NestedLoopsType : RelOpBaseType {
        
        private ScalarExpressionType predicateField;
        
        private ScalarExpressionType passThruField;
        
        private ColumnReferenceType[] outerReferencesField;
        
        private SingleColumnReferenceType partitionIdField;
        
        private SingleColumnReferenceType probeColumnField;
        
        private StarJoinInfoType starJoinInfoField;
        
        private RelOpType[] relOpField;
        
        private bool optimizedField;
        
        private bool withOrderedPrefetchField;
        
        private bool withOrderedPrefetchFieldSpecified;
        
        private bool withUnorderedPrefetchField;
        
        private bool withUnorderedPrefetchFieldSpecified;
        
        /// <remarks/>
        public ScalarExpressionType Predicate {
            get {
                return this.predicateField;
            }
            set {
                this.predicateField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType PassThru {
            get {
                return this.passThruField;
            }
            set {
                this.passThruField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] OuterReferences {
            get {
                return this.outerReferencesField;
            }
            set {
                this.outerReferencesField = value;
            }
        }
        
        /// <remarks/>
        public SingleColumnReferenceType PartitionId {
            get {
                return this.partitionIdField;
            }
            set {
                this.partitionIdField = value;
            }
        }
        
        /// <remarks/>
        public SingleColumnReferenceType ProbeColumn {
            get {
                return this.probeColumnField;
            }
            set {
                this.probeColumnField = value;
            }
        }
        
        /// <remarks/>
        public StarJoinInfoType StarJoinInfo {
            get {
                return this.starJoinInfoField;
            }
            set {
                this.starJoinInfoField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("RelOp")]
        public RelOpType[] RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Optimized {
            get {
                return this.optimizedField;
            }
            set {
                this.optimizedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool WithOrderedPrefetch {
            get {
                return this.withOrderedPrefetchField;
            }
            set {
                this.withOrderedPrefetchField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool WithOrderedPrefetchSpecified {
            get {
                return this.withOrderedPrefetchFieldSpecified;
            }
            set {
                this.withOrderedPrefetchFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool WithUnorderedPrefetch {
            get {
                return this.withUnorderedPrefetchField;
            }
            set {
                this.withUnorderedPrefetchField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool WithUnorderedPrefetchSpecified {
            get {
                return this.withUnorderedPrefetchFieldSpecified;
            }
            set {
                this.withUnorderedPrefetchFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class MergeType : RelOpBaseType {
        
        private ColumnReferenceType[] innerSideJoinColumnsField;
        
        private ColumnReferenceType[] outerSideJoinColumnsField;
        
        private ScalarExpressionType residualField;
        
        private ScalarExpressionType passThruField;
        
        private StarJoinInfoType starJoinInfoField;
        
        private RelOpType[] relOpField;
        
        private bool manyToManyField;
        
        private bool manyToManyFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] InnerSideJoinColumns {
            get {
                return this.innerSideJoinColumnsField;
            }
            set {
                this.innerSideJoinColumnsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] OuterSideJoinColumns {
            get {
                return this.outerSideJoinColumnsField;
            }
            set {
                this.outerSideJoinColumnsField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType Residual {
            get {
                return this.residualField;
            }
            set {
                this.residualField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType PassThru {
            get {
                return this.passThruField;
            }
            set {
                this.passThruField = value;
            }
        }
        
        /// <remarks/>
        public StarJoinInfoType StarJoinInfo {
            get {
                return this.starJoinInfoField;
            }
            set {
                this.starJoinInfoField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("RelOp")]
        public RelOpType[] RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ManyToMany {
            get {
                return this.manyToManyField;
            }
            set {
                this.manyToManyField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ManyToManySpecified {
            get {
                return this.manyToManyFieldSpecified;
            }
            set {
                this.manyToManyFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SwitchType))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ConcatType : RelOpBaseType {
        
        private RelOpType[] relOpField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("RelOp")]
        public RelOpType[] RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SwitchType : ConcatType {
        
        private ScalarExpressionType predicateField;
        
        /// <remarks/>
        public ScalarExpressionType Predicate {
            get {
                return this.predicateField;
            }
            set {
                this.predicateField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class CollapseType : RelOpBaseType {
        
        private ColumnReferenceType[] groupByField;
        
        private RelOpType relOpField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] GroupBy {
            get {
                return this.groupByField;
            }
            set {
                this.groupByField = value;
            }
        }
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class BitmapType : RelOpBaseType {
        
        private ColumnReferenceType[] hashKeysField;
        
        private RelOpType relOpField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] HashKeys {
            get {
                return this.hashKeysField;
            }
            set {
                this.hashKeysField = value;
            }
        }
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TopSortType))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SortType : RelOpBaseType {
        
        private OrderByTypeOrderByColumn[] orderByField;
        
        private SingleColumnReferenceType partitionIdField;
        
        private RelOpType relOpField;
        
        private bool distinctField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("OrderByColumn", IsNullable=false)]
        public OrderByTypeOrderByColumn[] OrderBy {
            get {
                return this.orderByField;
            }
            set {
                this.orderByField = value;
            }
        }
        
        /// <remarks/>
        public SingleColumnReferenceType PartitionId {
            get {
                return this.partitionIdField;
            }
            set {
                this.partitionIdField = value;
            }
        }
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Distinct {
            get {
                return this.distinctField;
            }
            set {
                this.distinctField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class OrderByTypeOrderByColumn {
        
        private ColumnReferenceType columnReferenceField;
        
        private bool ascendingField;
        
        /// <remarks/>
        public ColumnReferenceType ColumnReference {
            get {
                return this.columnReferenceField;
            }
            set {
                this.columnReferenceField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Ascending {
            get {
                return this.ascendingField;
            }
            set {
                this.ascendingField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class TopSortType : SortType {
        
        private int rowsField;
        
        private bool withTiesField;
        
        private bool withTiesFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int Rows {
            get {
                return this.rowsField;
            }
            set {
                this.rowsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool WithTies {
            get {
                return this.withTiesField;
            }
            set {
                this.withTiesField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool WithTiesSpecified {
            get {
                return this.withTiesFieldSpecified;
            }
            set {
                this.withTiesFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class StreamAggregateType : RelOpBaseType {
        
        private ColumnReferenceType[] groupByField;
        
        private RollupInfoType rollupInfoField;
        
        private RelOpType relOpField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] GroupBy {
            get {
                return this.groupByField;
            }
            set {
                this.groupByField = value;
            }
        }
        
        /// <remarks/>
        public RollupInfoType RollupInfo {
            get {
                return this.rollupInfoField;
            }
            set {
                this.rollupInfoField = value;
            }
        }
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class RollupInfoType {
        
        private RollupLevelType[] rollupLevelField;
        
        private int highestLevelField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("RollupLevel")]
        public RollupLevelType[] RollupLevel {
            get {
                return this.rollupLevelField;
            }
            set {
                this.rollupLevelField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int HighestLevel {
            get {
                return this.highestLevelField;
            }
            set {
                this.highestLevelField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class RollupLevelType {
        
        private int levelField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int Level {
            get {
                return this.levelField;
            }
            set {
                this.levelField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ParallelismType : RelOpBaseType {
        
        private ColumnReferenceType[] partitionColumnsField;
        
        private OrderByTypeOrderByColumn[] orderByField;
        
        private ColumnReferenceType[] hashKeysField;
        
        private SingleColumnReferenceType probeColumnField;
        
        private ScalarExpressionType predicateField;
        
        private ParallelismTypeActivation activationField;
        
        private ParallelismTypeBrickRouting brickRoutingField;
        
        private RelOpType relOpField;
        
        private PartitionType partitioningTypeField;
        
        private bool partitioningTypeFieldSpecified;
        
        private bool remotingField;
        
        private bool remotingFieldSpecified;
        
        private bool localParallelismField;
        
        private bool localParallelismFieldSpecified;
        
        private bool inRowField;
        
        private bool inRowFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] PartitionColumns {
            get {
                return this.partitionColumnsField;
            }
            set {
                this.partitionColumnsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("OrderByColumn", IsNullable=false)]
        public OrderByTypeOrderByColumn[] OrderBy {
            get {
                return this.orderByField;
            }
            set {
                this.orderByField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] HashKeys {
            get {
                return this.hashKeysField;
            }
            set {
                this.hashKeysField = value;
            }
        }
        
        /// <remarks/>
        public SingleColumnReferenceType ProbeColumn {
            get {
                return this.probeColumnField;
            }
            set {
                this.probeColumnField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType Predicate {
            get {
                return this.predicateField;
            }
            set {
                this.predicateField = value;
            }
        }
        
        /// <remarks/>
        public ParallelismTypeActivation Activation {
            get {
                return this.activationField;
            }
            set {
                this.activationField = value;
            }
        }
        
        /// <remarks/>
        public ParallelismTypeBrickRouting BrickRouting {
            get {
                return this.brickRoutingField;
            }
            set {
                this.brickRoutingField = value;
            }
        }
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public PartitionType PartitioningType {
            get {
                return this.partitioningTypeField;
            }
            set {
                this.partitioningTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool PartitioningTypeSpecified {
            get {
                return this.partitioningTypeFieldSpecified;
            }
            set {
                this.partitioningTypeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Remoting {
            get {
                return this.remotingField;
            }
            set {
                this.remotingField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool RemotingSpecified {
            get {
                return this.remotingFieldSpecified;
            }
            set {
                this.remotingFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool LocalParallelism {
            get {
                return this.localParallelismField;
            }
            set {
                this.localParallelismField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool LocalParallelismSpecified {
            get {
                return this.localParallelismFieldSpecified;
            }
            set {
                this.localParallelismFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool InRow {
            get {
                return this.inRowField;
            }
            set {
                this.inRowField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool InRowSpecified {
            get {
                return this.inRowFieldSpecified;
            }
            set {
                this.inRowFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ParallelismTypeActivation {
        
        private ObjectType objectField;
        
        private ParallelismTypeActivationType typeField;
        
        private string fragmentEliminationField;
        
        /// <remarks/>
        public ObjectType Object {
            get {
                return this.objectField;
            }
            set {
                this.objectField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ParallelismTypeActivationType Type {
            get {
                return this.typeField;
            }
            set {
                this.typeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string FragmentElimination {
            get {
                return this.fragmentEliminationField;
            }
            set {
                this.fragmentEliminationField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum ParallelismTypeActivationType {
        
        /// <remarks/>
        CloneLocation,
        
        /// <remarks/>
        Resource,
        
        /// <remarks/>
        SingleBrick,
        
        /// <remarks/>
        Region,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ParallelismTypeBrickRouting {
        
        private ObjectType objectField;
        
        private SingleColumnReferenceType fragmentIdColumnField;
        
        /// <remarks/>
        public ObjectType Object {
            get {
                return this.objectField;
            }
            set {
                this.objectField = value;
            }
        }
        
        /// <remarks/>
        public SingleColumnReferenceType FragmentIdColumn {
            get {
                return this.fragmentIdColumnField;
            }
            set {
                this.fragmentIdColumnField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum PartitionType {
        
        /// <remarks/>
        Broadcast,
        
        /// <remarks/>
        Demand,
        
        /// <remarks/>
        Hash,
        
        /// <remarks/>
        NoPartitioning,
        
        /// <remarks/>
        Range,
        
        /// <remarks/>
        RoundRobin,
        
        /// <remarks/>
        CloneLocation,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ComputeScalarType : RelOpBaseType {
        
        private RelOpType relOpField;
        
        private bool computeSequenceField;
        
        private bool computeSequenceFieldSpecified;
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ComputeSequence {
            get {
                return this.computeSequenceField;
            }
            set {
                this.computeSequenceField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ComputeSequenceSpecified {
            get {
                return this.computeSequenceFieldSpecified;
            }
            set {
                this.computeSequenceFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class HashType : RelOpBaseType {
        
        private ColumnReferenceType[] hashKeysBuildField;
        
        private ColumnReferenceType[] hashKeysProbeField;
        
        private ScalarExpressionType buildResidualField;
        
        private ScalarExpressionType probeResidualField;
        
        private StarJoinInfoType starJoinInfoField;
        
        private RelOpType[] relOpField;
        
        private bool bitmapCreatorField;
        
        private bool bitmapCreatorFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] HashKeysBuild {
            get {
                return this.hashKeysBuildField;
            }
            set {
                this.hashKeysBuildField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ColumnReference", IsNullable=false)]
        public ColumnReferenceType[] HashKeysProbe {
            get {
                return this.hashKeysProbeField;
            }
            set {
                this.hashKeysProbeField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType BuildResidual {
            get {
                return this.buildResidualField;
            }
            set {
                this.buildResidualField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType ProbeResidual {
            get {
                return this.probeResidualField;
            }
            set {
                this.probeResidualField = value;
            }
        }
        
        /// <remarks/>
        public StarJoinInfoType StarJoinInfo {
            get {
                return this.starJoinInfoField;
            }
            set {
                this.starJoinInfoField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("RelOp")]
        public RelOpType[] RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool BitmapCreator {
            get {
                return this.bitmapCreatorField;
            }
            set {
                this.bitmapCreatorField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool BitmapCreatorSpecified {
            get {
                return this.bitmapCreatorFieldSpecified;
            }
            set {
                this.bitmapCreatorFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class TableValuedFunctionType : RelOpBaseType {
        
        private ObjectType objectField;
        
        private ScalarExpressionType predicateField;
        
        private RelOpType relOpField;
        
        private ScalarType[] parameterListField;
        
        /// <remarks/>
        public ObjectType Object {
            get {
                return this.objectField;
            }
            set {
                this.objectField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType Predicate {
            get {
                return this.predicateField;
            }
            set {
                this.predicateField = value;
            }
        }
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("ScalarOperator", IsNullable=false)]
        public ScalarType[] ParameterList {
            get {
                return this.parameterListField;
            }
            set {
                this.parameterListField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class PredictFunctionType : RelOpBaseType {
        
        private RelOpType relOpField;
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ConstantScanType : RelOpBaseType {
        
        private ScalarType[][] valuesField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Row", IsNullable=false)]
        [System.Xml.Serialization.XmlArrayItemAttribute("ScalarOperator", IsNullable=false, NestingLevel=1)]
        public ScalarType[][] Values {
            get {
                return this.valuesField;
            }
            set {
                this.valuesField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class FilterType : RelOpBaseType {
        
        private RelOpType relOpField;
        
        private ScalarExpressionType predicateField;
        
        private bool startupExpressionField;
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType Predicate {
            get {
                return this.predicateField;
            }
            set {
                this.predicateField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool StartupExpression {
            get {
                return this.startupExpressionField;
            }
            set {
                this.startupExpressionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SimpleIteratorOneChildType : RelOpBaseType {
        
        private RelOpType relOpField;
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(ScalarInsertType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(CreateIndexType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(UpdateType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(SimpleUpdateType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(IndexScanType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(XcsScanType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(TableScanType))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class RowsetType : RelOpBaseType {
        
        private ObjectType[] objectField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Object")]
        public ObjectType[] Object {
            get {
                return this.objectField;
            }
            set {
                this.objectField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ScalarInsertType : RowsetType {
        
        private ScalarExpressionType setPredicateField;
        
        private bool dMLRequestSortField;
        
        private bool dMLRequestSortFieldSpecified;
        
        /// <remarks/>
        public ScalarExpressionType SetPredicate {
            get {
                return this.setPredicateField;
            }
            set {
                this.setPredicateField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool DMLRequestSort {
            get {
                return this.dMLRequestSortField;
            }
            set {
                this.dMLRequestSortField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool DMLRequestSortSpecified {
            get {
                return this.dMLRequestSortFieldSpecified;
            }
            set {
                this.dMLRequestSortFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class CreateIndexType : RowsetType {
        
        private RelOpType relOpField;
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class UpdateType : RowsetType {
        
        private SetPredicateElementType[] setPredicateField;
        
        private SingleColumnReferenceType probeColumnField;
        
        private SingleColumnReferenceType actionColumnField;
        
        private SingleColumnReferenceType originalActionColumnField;
        
        private AssignType[] assignmentMapField;
        
        private ObjectType[] sourceTableField;
        
        private ObjectType[] targetTableField;
        
        private RelOpType relOpField;
        
        private bool withOrderedPrefetchField;
        
        private bool withOrderedPrefetchFieldSpecified;
        
        private bool withUnorderedPrefetchField;
        
        private bool withUnorderedPrefetchFieldSpecified;
        
        private bool dMLRequestSortField;
        
        private bool dMLRequestSortFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("SetPredicate")]
        public SetPredicateElementType[] SetPredicate {
            get {
                return this.setPredicateField;
            }
            set {
                this.setPredicateField = value;
            }
        }
        
        /// <remarks/>
        public SingleColumnReferenceType ProbeColumn {
            get {
                return this.probeColumnField;
            }
            set {
                this.probeColumnField = value;
            }
        }
        
        /// <remarks/>
        public SingleColumnReferenceType ActionColumn {
            get {
                return this.actionColumnField;
            }
            set {
                this.actionColumnField = value;
            }
        }
        
        /// <remarks/>
        public SingleColumnReferenceType OriginalActionColumn {
            get {
                return this.originalActionColumnField;
            }
            set {
                this.originalActionColumnField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Assign", IsNullable=false)]
        public AssignType[] AssignmentMap {
            get {
                return this.assignmentMapField;
            }
            set {
                this.assignmentMapField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Object", IsNullable=false)]
        public ObjectType[] SourceTable {
            get {
                return this.sourceTableField;
            }
            set {
                this.sourceTableField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Object", IsNullable=false)]
        public ObjectType[] TargetTable {
            get {
                return this.targetTableField;
            }
            set {
                this.targetTableField = value;
            }
        }
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool WithOrderedPrefetch {
            get {
                return this.withOrderedPrefetchField;
            }
            set {
                this.withOrderedPrefetchField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool WithOrderedPrefetchSpecified {
            get {
                return this.withOrderedPrefetchFieldSpecified;
            }
            set {
                this.withOrderedPrefetchFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool WithUnorderedPrefetch {
            get {
                return this.withUnorderedPrefetchField;
            }
            set {
                this.withUnorderedPrefetchField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool WithUnorderedPrefetchSpecified {
            get {
                return this.withUnorderedPrefetchFieldSpecified;
            }
            set {
                this.withUnorderedPrefetchFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool DMLRequestSort {
            get {
                return this.dMLRequestSortField;
            }
            set {
                this.dMLRequestSortField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool DMLRequestSortSpecified {
            get {
                return this.dMLRequestSortFieldSpecified;
            }
            set {
                this.dMLRequestSortFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SimpleUpdateType : RowsetType {
        
        private object itemField;
        
        private ScalarExpressionType setPredicateField;
        
        private bool dMLRequestSortField;
        
        private bool dMLRequestSortFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("SeekPredicate", typeof(SeekPredicateType))]
        [System.Xml.Serialization.XmlElementAttribute("SeekPredicateNew", typeof(SeekPredicateNewType))]
        public object Item {
            get {
                return this.itemField;
            }
            set {
                this.itemField = value;
            }
        }
        
        /// <remarks/>
        public ScalarExpressionType SetPredicate {
            get {
                return this.setPredicateField;
            }
            set {
                this.setPredicateField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool DMLRequestSort {
            get {
                return this.dMLRequestSortField;
            }
            set {
                this.dMLRequestSortField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool DMLRequestSortSpecified {
            get {
                return this.dMLRequestSortFieldSpecified;
            }
            set {
                this.dMLRequestSortFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class IndexScanType : RowsetType {
        
        private SeekPredicatesType seekPredicatesField;
        
        private ScalarExpressionType[] predicateField;
        
        private SingleColumnReferenceType partitionIdField;
        
        private ObjectType[] indexedViewInfoField;
        
        private bool lookupField;
        
        private bool lookupFieldSpecified;
        
        private bool orderedField;
        
        private OrderType scanDirectionField;
        
        private bool scanDirectionFieldSpecified;
        
        private bool forcedIndexField;
        
        private bool forcedIndexFieldSpecified;
        
        private bool forceSeekField;
        
        private bool forceSeekFieldSpecified;
        
        private int forceSeekColumnCountField;
        
        private bool forceSeekColumnCountFieldSpecified;
        
        private bool forceScanField;
        
        private bool forceScanFieldSpecified;
        
        private bool noExpandHintField;
        
        private bool noExpandHintFieldSpecified;
        
        private StorageType storageField;
        
        private bool storageFieldSpecified;
        
        private bool dynamicSeekField;
        
        private bool dynamicSeekFieldSpecified;
        
        private string sBSFileUrlField;
        
        /// <remarks/>
        public SeekPredicatesType SeekPredicates {
            get {
                return this.seekPredicatesField;
            }
            set {
                this.seekPredicatesField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Predicate")]
        public ScalarExpressionType[] Predicate {
            get {
                return this.predicateField;
            }
            set {
                this.predicateField = value;
            }
        }
        
        /// <remarks/>
        public SingleColumnReferenceType PartitionId {
            get {
                return this.partitionIdField;
            }
            set {
                this.partitionIdField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Object", IsNullable=false)]
        public ObjectType[] IndexedViewInfo {
            get {
                return this.indexedViewInfoField;
            }
            set {
                this.indexedViewInfoField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Lookup {
            get {
                return this.lookupField;
            }
            set {
                this.lookupField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool LookupSpecified {
            get {
                return this.lookupFieldSpecified;
            }
            set {
                this.lookupFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Ordered {
            get {
                return this.orderedField;
            }
            set {
                this.orderedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public OrderType ScanDirection {
            get {
                return this.scanDirectionField;
            }
            set {
                this.scanDirectionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ScanDirectionSpecified {
            get {
                return this.scanDirectionFieldSpecified;
            }
            set {
                this.scanDirectionFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ForcedIndex {
            get {
                return this.forcedIndexField;
            }
            set {
                this.forcedIndexField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ForcedIndexSpecified {
            get {
                return this.forcedIndexFieldSpecified;
            }
            set {
                this.forcedIndexFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ForceSeek {
            get {
                return this.forceSeekField;
            }
            set {
                this.forceSeekField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ForceSeekSpecified {
            get {
                return this.forceSeekFieldSpecified;
            }
            set {
                this.forceSeekFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int ForceSeekColumnCount {
            get {
                return this.forceSeekColumnCountField;
            }
            set {
                this.forceSeekColumnCountField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ForceSeekColumnCountSpecified {
            get {
                return this.forceSeekColumnCountFieldSpecified;
            }
            set {
                this.forceSeekColumnCountFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ForceScan {
            get {
                return this.forceScanField;
            }
            set {
                this.forceScanField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ForceScanSpecified {
            get {
                return this.forceScanFieldSpecified;
            }
            set {
                this.forceScanFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool NoExpandHint {
            get {
                return this.noExpandHintField;
            }
            set {
                this.noExpandHintField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool NoExpandHintSpecified {
            get {
                return this.noExpandHintFieldSpecified;
            }
            set {
                this.noExpandHintFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public StorageType Storage {
            get {
                return this.storageField;
            }
            set {
                this.storageField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool StorageSpecified {
            get {
                return this.storageFieldSpecified;
            }
            set {
                this.storageFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool DynamicSeek {
            get {
                return this.dynamicSeekField;
            }
            set {
                this.dynamicSeekField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool DynamicSeekSpecified {
            get {
                return this.dynamicSeekFieldSpecified;
            }
            set {
                this.dynamicSeekFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string SBSFileUrl {
            get {
                return this.sBSFileUrlField;
            }
            set {
                this.sBSFileUrlField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum OrderType {
        
        /// <remarks/>
        BACKWARD,
        
        /// <remarks/>
        FORWARD,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class XcsScanType : RowsetType {
        
        private ScalarExpressionType predicateField;
        
        private SingleColumnReferenceType partitionIdField;
        
        private ObjectType[] indexedViewInfoField;
        
        private RelOpType relOpField;
        
        private bool orderedField;
        
        private bool forcedIndexField;
        
        private bool forcedIndexFieldSpecified;
        
        private bool forceScanField;
        
        private bool forceScanFieldSpecified;
        
        private bool noExpandHintField;
        
        private bool noExpandHintFieldSpecified;
        
        private StorageType storageField;
        
        private bool storageFieldSpecified;
        
        /// <remarks/>
        public ScalarExpressionType Predicate {
            get {
                return this.predicateField;
            }
            set {
                this.predicateField = value;
            }
        }
        
        /// <remarks/>
        public SingleColumnReferenceType PartitionId {
            get {
                return this.partitionIdField;
            }
            set {
                this.partitionIdField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Object", IsNullable=false)]
        public ObjectType[] IndexedViewInfo {
            get {
                return this.indexedViewInfoField;
            }
            set {
                this.indexedViewInfoField = value;
            }
        }
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Ordered {
            get {
                return this.orderedField;
            }
            set {
                this.orderedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ForcedIndex {
            get {
                return this.forcedIndexField;
            }
            set {
                this.forcedIndexField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ForcedIndexSpecified {
            get {
                return this.forcedIndexFieldSpecified;
            }
            set {
                this.forcedIndexFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ForceScan {
            get {
                return this.forceScanField;
            }
            set {
                this.forceScanField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ForceScanSpecified {
            get {
                return this.forceScanFieldSpecified;
            }
            set {
                this.forceScanFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool NoExpandHint {
            get {
                return this.noExpandHintField;
            }
            set {
                this.noExpandHintField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool NoExpandHintSpecified {
            get {
                return this.noExpandHintFieldSpecified;
            }
            set {
                this.noExpandHintFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public StorageType Storage {
            get {
                return this.storageField;
            }
            set {
                this.storageField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool StorageSpecified {
            get {
                return this.storageFieldSpecified;
            }
            set {
                this.storageFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class TableScanType : RowsetType {
        
        private ScalarExpressionType predicateField;
        
        private SingleColumnReferenceType partitionIdField;
        
        private ObjectType[] indexedViewInfoField;
        
        private bool orderedField;
        
        private bool forcedIndexField;
        
        private bool forcedIndexFieldSpecified;
        
        private bool forceScanField;
        
        private bool forceScanFieldSpecified;
        
        private bool noExpandHintField;
        
        private bool noExpandHintFieldSpecified;
        
        private StorageType storageField;
        
        private bool storageFieldSpecified;
        
        /// <remarks/>
        public ScalarExpressionType Predicate {
            get {
                return this.predicateField;
            }
            set {
                this.predicateField = value;
            }
        }
        
        /// <remarks/>
        public SingleColumnReferenceType PartitionId {
            get {
                return this.partitionIdField;
            }
            set {
                this.partitionIdField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Object", IsNullable=false)]
        public ObjectType[] IndexedViewInfo {
            get {
                return this.indexedViewInfoField;
            }
            set {
                this.indexedViewInfoField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Ordered {
            get {
                return this.orderedField;
            }
            set {
                this.orderedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ForcedIndex {
            get {
                return this.forcedIndexField;
            }
            set {
                this.forcedIndexField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ForcedIndexSpecified {
            get {
                return this.forcedIndexFieldSpecified;
            }
            set {
                this.forcedIndexFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ForceScan {
            get {
                return this.forceScanField;
            }
            set {
                this.forceScanField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ForceScanSpecified {
            get {
                return this.forceScanFieldSpecified;
            }
            set {
                this.forceScanFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool NoExpandHint {
            get {
                return this.noExpandHintField;
            }
            set {
                this.noExpandHintField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool NoExpandHintSpecified {
            get {
                return this.noExpandHintFieldSpecified;
            }
            set {
                this.noExpandHintFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public StorageType Storage {
            get {
                return this.storageField;
            }
            set {
                this.storageField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool StorageSpecified {
            get {
                return this.storageFieldSpecified;
            }
            set {
                this.storageFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ForeignKeyReferencesCheckType : RelOpBaseType {
        
        private RelOpType relOpField;
        
        private ForeignKeyReferenceCheckType[] foreignKeyReferenceCheckField;
        
        private int foreignKeyReferencesCountField;
        
        private bool foreignKeyReferencesCountFieldSpecified;
        
        private int noMatchingIndexCountField;
        
        private bool noMatchingIndexCountFieldSpecified;
        
        private int partialMatchingIndexCountField;
        
        private bool partialMatchingIndexCountFieldSpecified;
        
        /// <remarks/>
        public RelOpType RelOp {
            get {
                return this.relOpField;
            }
            set {
                this.relOpField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ForeignKeyReferenceCheck")]
        public ForeignKeyReferenceCheckType[] ForeignKeyReferenceCheck {
            get {
                return this.foreignKeyReferenceCheckField;
            }
            set {
                this.foreignKeyReferenceCheckField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int ForeignKeyReferencesCount {
            get {
                return this.foreignKeyReferencesCountField;
            }
            set {
                this.foreignKeyReferencesCountField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ForeignKeyReferencesCountSpecified {
            get {
                return this.foreignKeyReferencesCountFieldSpecified;
            }
            set {
                this.foreignKeyReferencesCountFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int NoMatchingIndexCount {
            get {
                return this.noMatchingIndexCountField;
            }
            set {
                this.noMatchingIndexCountField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool NoMatchingIndexCountSpecified {
            get {
                return this.noMatchingIndexCountFieldSpecified;
            }
            set {
                this.noMatchingIndexCountFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int PartialMatchingIndexCount {
            get {
                return this.partialMatchingIndexCountField;
            }
            set {
                this.partialMatchingIndexCountField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool PartialMatchingIndexCountSpecified {
            get {
                return this.partialMatchingIndexCountFieldSpecified;
            }
            set {
                this.partialMatchingIndexCountFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ForeignKeyReferenceCheckType {
        
        private IndexScanType indexScanField;
        
        /// <remarks/>
        public IndexScanType IndexScan {
            get {
                return this.indexScanField;
            }
            set {
                this.indexScanField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan", IncludeInSchema=false)]
    public enum ItemChoiceType {
        
        /// <remarks/>
        AdaptiveJoin,
        
        /// <remarks/>
        Apply,
        
        /// <remarks/>
        Assert,
        
        /// <remarks/>
        BatchHashTableBuild,
        
        /// <remarks/>
        Bitmap,
        
        /// <remarks/>
        Collapse,
        
        /// <remarks/>
        ComputeScalar,
        
        /// <remarks/>
        Concat,
        
        /// <remarks/>
        ConstTableGet,
        
        /// <remarks/>
        ConstantScan,
        
        /// <remarks/>
        CreateIndex,
        
        /// <remarks/>
        Delete,
        
        /// <remarks/>
        DeletedScan,
        
        /// <remarks/>
        ExtExtractScan,
        
        /// <remarks/>
        Extension,
        
        /// <remarks/>
        ExternalSelect,
        
        /// <remarks/>
        Filter,
        
        /// <remarks/>
        ForeignKeyReferencesCheck,
        
        /// <remarks/>
        GbAgg,
        
        /// <remarks/>
        GbApply,
        
        /// <remarks/>
        Generic,
        
        /// <remarks/>
        Get,
        
        /// <remarks/>
        Hash,
        
        /// <remarks/>
        IndexScan,
        
        /// <remarks/>
        Insert,
        
        /// <remarks/>
        InsertedScan,
        
        /// <remarks/>
        Join,
        
        /// <remarks/>
        LocalCube,
        
        /// <remarks/>
        LogRowScan,
        
        /// <remarks/>
        Merge,
        
        /// <remarks/>
        MergeInterval,
        
        /// <remarks/>
        Move,
        
        /// <remarks/>
        NestedLoops,
        
        /// <remarks/>
        OnlineIndex,
        
        /// <remarks/>
        Parallelism,
        
        /// <remarks/>
        ParameterTableScan,
        
        /// <remarks/>
        PrintDataflow,
        
        /// <remarks/>
        Project,
        
        /// <remarks/>
        Put,
        
        /// <remarks/>
        RemoteFetch,
        
        /// <remarks/>
        RemoteModify,
        
        /// <remarks/>
        RemoteQuery,
        
        /// <remarks/>
        RemoteRange,
        
        /// <remarks/>
        RemoteScan,
        
        /// <remarks/>
        RowCountSpool,
        
        /// <remarks/>
        ScalarInsert,
        
        /// <remarks/>
        Segment,
        
        /// <remarks/>
        Sequence,
        
        /// <remarks/>
        SequenceProject,
        
        /// <remarks/>
        SimpleUpdate,
        
        /// <remarks/>
        Sort,
        
        /// <remarks/>
        Split,
        
        /// <remarks/>
        Spool,
        
        /// <remarks/>
        StreamAggregate,
        
        /// <remarks/>
        Switch,
        
        /// <remarks/>
        TFP,
        
        /// <remarks/>
        TableScan,
        
        /// <remarks/>
        TableValuedFunction,
        
        /// <remarks/>
        Top,
        
        /// <remarks/>
        TopSort,
        
        /// <remarks/>
        Union,
        
        /// <remarks/>
        UnionAll,
        
        /// <remarks/>
        Update,
        
        /// <remarks/>
        WindowAggregate,
        
        /// <remarks/>
        WindowSpool,
        
        /// <remarks/>
        XcsScan,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum LogicalOpType {
        
        /// <remarks/>
        Aggregate,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Anti Diff")]
        AntiDiff,
        
        /// <remarks/>
        Assert,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Async Concat")]
        AsyncConcat,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Batch Hash Table Build")]
        BatchHashTableBuild,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Bitmap Create")]
        BitmapCreate,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Clustered Index Scan")]
        ClusteredIndexScan,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Clustered Index Seek")]
        ClusteredIndexSeek,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Clustered Update")]
        ClusteredUpdate,
        
        /// <remarks/>
        Collapse,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Compute Scalar")]
        ComputeScalar,
        
        /// <remarks/>
        Concatenation,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Constant Scan")]
        ConstantScan,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Constant Table Get")]
        ConstantTableGet,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Cross Join")]
        CrossJoin,
        
        /// <remarks/>
        Delete,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Deleted Scan")]
        DeletedScan,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Distinct Sort")]
        DistinctSort,
        
        /// <remarks/>
        Distinct,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Distribute Streams")]
        DistributeStreams,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Eager Spool")]
        EagerSpool,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("External Extraction Scan")]
        ExternalExtractionScan,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("External Select")]
        ExternalSelect,
        
        /// <remarks/>
        Filter,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Flow Distinct")]
        FlowDistinct,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Foreign Key References Check")]
        ForeignKeyReferencesCheck,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Full Outer Join")]
        FullOuterJoin,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Gather Streams")]
        GatherStreams,
        
        /// <remarks/>
        GbAgg,
        
        /// <remarks/>
        GbApply,
        
        /// <remarks/>
        Get,
        
        /// <remarks/>
        Generic,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Inner Apply")]
        InnerApply,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Index Scan")]
        IndexScan,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Index Seek")]
        IndexSeek,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Inner Join")]
        InnerJoin,
        
        /// <remarks/>
        Insert,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Inserted Scan")]
        InsertedScan,
        
        /// <remarks/>
        Intersect,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Intersect All")]
        IntersectAll,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Lazy Spool")]
        LazySpool,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Left Anti Semi Apply")]
        LeftAntiSemiApply,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Left Semi Apply")]
        LeftSemiApply,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Left Outer Apply")]
        LeftOuterApply,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Left Anti Semi Join")]
        LeftAntiSemiJoin,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Left Diff")]
        LeftDiff,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Left Diff All")]
        LeftDiffAll,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Left Outer Join")]
        LeftOuterJoin,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Left Semi Join")]
        LeftSemiJoin,
        
        /// <remarks/>
        LocalCube,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Log Row Scan")]
        LogRowScan,
        
        /// <remarks/>
        Merge,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Merge Interval")]
        MergeInterval,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Merge Stats")]
        MergeStats,
        
        /// <remarks/>
        Move,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Parameter Table Scan")]
        ParameterTableScan,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Partial Aggregate")]
        PartialAggregate,
        
        /// <remarks/>
        Print,
        
        /// <remarks/>
        Project,
        
        /// <remarks/>
        Put,
        
        /// <remarks/>
        Rank,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Remote Delete")]
        RemoteDelete,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Remote Index Scan")]
        RemoteIndexScan,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Remote Index Seek")]
        RemoteIndexSeek,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Remote Insert")]
        RemoteInsert,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Remote Query")]
        RemoteQuery,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Remote Scan")]
        RemoteScan,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Remote Update")]
        RemoteUpdate,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Repartition Streams")]
        RepartitionStreams,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("RID Lookup")]
        RIDLookup,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Right Anti Semi Join")]
        RightAntiSemiJoin,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Right Diff")]
        RightDiff,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Right Diff All")]
        RightDiffAll,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Right Outer Join")]
        RightOuterJoin,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Right Semi Join")]
        RightSemiJoin,
        
        /// <remarks/>
        Segment,
        
        /// <remarks/>
        Sequence,
        
        /// <remarks/>
        Sort,
        
        /// <remarks/>
        Split,
        
        /// <remarks/>
        Switch,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Table-valued function")]
        Tablevaluedfunction,
        
        /// <remarks/>
        TFP,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Table Scan")]
        TableScan,
        
        /// <remarks/>
        Top,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("TopN Sort")]
        TopNSort,
        
        /// <remarks/>
        UDX,
        
        /// <remarks/>
        Union,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Union All")]
        UnionAll,
        
        /// <remarks/>
        Update,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Local Stats")]
        LocalStats,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Window Spool")]
        WindowSpool,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Window Aggregate")]
        WindowAggregate,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Key Lookup")]
        KeyLookup,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Extensible Column Store Scan")]
        ExtensibleColumnStoreScan,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum SubqueryOperationType {
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("EQ ALL")]
        EQALL,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("EQ ANY")]
        EQANY,
        
        /// <remarks/>
        EXISTS,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("GE ALL")]
        GEALL,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("GE ANY")]
        GEANY,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("GT ALL")]
        GTALL,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("GT ANY")]
        GTANY,
        
        /// <remarks/>
        IN,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("LE ALL")]
        LEALL,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("LE ANY")]
        LEANY,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("LT ALL")]
        LTALL,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("LT ANY")]
        LTANY,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("NE ALL")]
        NEALL,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("NE ANY")]
        NEANY,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class UDTMethodType {
        
        private CLRFunctionType cLRFunctionField;
        
        private ScalarType[] scalarOperatorField;
        
        /// <remarks/>
        public CLRFunctionType CLRFunction {
            get {
                return this.cLRFunctionField;
            }
            set {
                this.cLRFunctionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ScalarOperator")]
        public ScalarType[] ScalarOperator {
            get {
                return this.scalarOperatorField;
            }
            set {
                this.scalarOperatorField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class CLRFunctionType {
        
        private string assemblyField;
        
        private string classField;
        
        private string methodField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Assembly {
            get {
                return this.assemblyField;
            }
            set {
                this.assemblyField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Class {
            get {
                return this.classField;
            }
            set {
                this.classField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Method {
            get {
                return this.methodField;
            }
            set {
                this.methodField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class UDAggregateType {
        
        private ObjectType uDAggObjectField;
        
        private ScalarType[] scalarOperatorField;
        
        private bool distinctField;
        
        /// <remarks/>
        public ObjectType UDAggObject {
            get {
                return this.uDAggObjectField;
            }
            set {
                this.uDAggObjectField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ScalarOperator")]
        public ScalarType[] ScalarOperator {
            get {
                return this.scalarOperatorField;
            }
            set {
                this.scalarOperatorField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Distinct {
            get {
                return this.distinctField;
            }
            set {
                this.distinctField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class UDFType {
        
        private ScalarType[] scalarOperatorField;
        
        private CLRFunctionType cLRFunctionField;
        
        private string functionNameField;
        
        private bool isClrFunctionField;
        
        private bool isClrFunctionFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("ScalarOperator")]
        public ScalarType[] ScalarOperator {
            get {
                return this.scalarOperatorField;
            }
            set {
                this.scalarOperatorField = value;
            }
        }
        
        /// <remarks/>
        public CLRFunctionType CLRFunction {
            get {
                return this.cLRFunctionField;
            }
            set {
                this.cLRFunctionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string FunctionName {
            get {
                return this.functionNameField;
            }
            set {
                this.functionNameField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsClrFunction {
            get {
                return this.isClrFunctionField;
            }
            set {
                this.isClrFunctionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsClrFunctionSpecified {
            get {
                return this.isClrFunctionFieldSpecified;
            }
            set {
                this.isClrFunctionFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ExchangeSpillDetailsType {
        
        private ulong writesToTempDbField;
        
        private bool writesToTempDbFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong WritesToTempDb {
            get {
                return this.writesToTempDbField;
            }
            set {
                this.writesToTempDbField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool WritesToTempDbSpecified {
            get {
                return this.writesToTempDbFieldSpecified;
            }
            set {
                this.writesToTempDbFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class HashSpillDetailsType {
        
        private ulong grantedMemoryKbField;
        
        private bool grantedMemoryKbFieldSpecified;
        
        private ulong usedMemoryKbField;
        
        private bool usedMemoryKbFieldSpecified;
        
        private ulong writesToTempDbField;
        
        private bool writesToTempDbFieldSpecified;
        
        private ulong readsFromTempDbField;
        
        private bool readsFromTempDbFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong GrantedMemoryKb {
            get {
                return this.grantedMemoryKbField;
            }
            set {
                this.grantedMemoryKbField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool GrantedMemoryKbSpecified {
            get {
                return this.grantedMemoryKbFieldSpecified;
            }
            set {
                this.grantedMemoryKbFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong UsedMemoryKb {
            get {
                return this.usedMemoryKbField;
            }
            set {
                this.usedMemoryKbField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool UsedMemoryKbSpecified {
            get {
                return this.usedMemoryKbFieldSpecified;
            }
            set {
                this.usedMemoryKbFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong WritesToTempDb {
            get {
                return this.writesToTempDbField;
            }
            set {
                this.writesToTempDbField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool WritesToTempDbSpecified {
            get {
                return this.writesToTempDbFieldSpecified;
            }
            set {
                this.writesToTempDbFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ReadsFromTempDb {
            get {
                return this.readsFromTempDbField;
            }
            set {
                this.readsFromTempDbField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ReadsFromTempDbSpecified {
            get {
                return this.readsFromTempDbFieldSpecified;
            }
            set {
                this.readsFromTempDbFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class MemoryGrantWarningInfo {
        
        private MemoryGrantWarningType grantWarningKindField;
        
        private ulong requestedMemoryField;
        
        private ulong grantedMemoryField;
        
        private ulong maxUsedMemoryField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public MemoryGrantWarningType GrantWarningKind {
            get {
                return this.grantWarningKindField;
            }
            set {
                this.grantWarningKindField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong RequestedMemory {
            get {
                return this.requestedMemoryField;
            }
            set {
                this.requestedMemoryField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong GrantedMemory {
            get {
                return this.grantedMemoryField;
            }
            set {
                this.grantedMemoryField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong MaxUsedMemory {
            get {
                return this.maxUsedMemoryField;
            }
            set {
                this.maxUsedMemoryField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum MemoryGrantWarningType {
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Excessive Grant")]
        ExcessiveGrant,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Used More Than Granted")]
        UsedMoreThanGranted,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Grant Increase")]
        GrantIncrease,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class AffectingConvertWarningType {
        
        private AffectingConvertWarningTypeConvertIssue convertIssueField;
        
        private string expressionField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public AffectingConvertWarningTypeConvertIssue ConvertIssue {
            get {
                return this.convertIssueField;
            }
            set {
                this.convertIssueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Expression {
            get {
                return this.expressionField;
            }
            set {
                this.expressionField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum AffectingConvertWarningTypeConvertIssue {
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Cardinality Estimate")]
        CardinalityEstimate,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Seek Plan")]
        SeekPlan,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SortSpillDetailsType {
        
        private ulong grantedMemoryKbField;
        
        private bool grantedMemoryKbFieldSpecified;
        
        private ulong usedMemoryKbField;
        
        private bool usedMemoryKbFieldSpecified;
        
        private ulong writesToTempDbField;
        
        private bool writesToTempDbFieldSpecified;
        
        private ulong readsFromTempDbField;
        
        private bool readsFromTempDbFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong GrantedMemoryKb {
            get {
                return this.grantedMemoryKbField;
            }
            set {
                this.grantedMemoryKbField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool GrantedMemoryKbSpecified {
            get {
                return this.grantedMemoryKbFieldSpecified;
            }
            set {
                this.grantedMemoryKbFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong UsedMemoryKb {
            get {
                return this.usedMemoryKbField;
            }
            set {
                this.usedMemoryKbField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool UsedMemoryKbSpecified {
            get {
                return this.usedMemoryKbFieldSpecified;
            }
            set {
                this.usedMemoryKbFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong WritesToTempDb {
            get {
                return this.writesToTempDbField;
            }
            set {
                this.writesToTempDbField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool WritesToTempDbSpecified {
            get {
                return this.writesToTempDbFieldSpecified;
            }
            set {
                this.writesToTempDbFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ReadsFromTempDb {
            get {
                return this.readsFromTempDbField;
            }
            set {
                this.readsFromTempDbField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ReadsFromTempDbSpecified {
            get {
                return this.readsFromTempDbFieldSpecified;
            }
            set {
                this.readsFromTempDbFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SpillOccurredType {
        
        private bool detailField;
        
        private bool detailFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool Detail {
            get {
                return this.detailField;
            }
            set {
                this.detailField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool DetailSpecified {
            get {
                return this.detailFieldSpecified;
            }
            set {
                this.detailFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SpillToTempDbType {
        
        private ulong spillLevelField;
        
        private bool spillLevelFieldSpecified;
        
        private ulong spilledThreadCountField;
        
        private bool spilledThreadCountFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong SpillLevel {
            get {
                return this.spillLevelField;
            }
            set {
                this.spillLevelField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool SpillLevelSpecified {
            get {
                return this.spillLevelFieldSpecified;
            }
            set {
                this.spillLevelFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong SpilledThreadCount {
            get {
                return this.spilledThreadCountField;
            }
            set {
                this.spilledThreadCountField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool SpilledThreadCountSpecified {
            get {
                return this.spilledThreadCountFieldSpecified;
            }
            set {
                this.spilledThreadCountFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class WaitWarningType {
        
        private WaitWarningTypeWaitType waitTypeField;
        
        private ulong waitTimeField;
        
        private bool waitTimeFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public WaitWarningTypeWaitType WaitType {
            get {
                return this.waitTypeField;
            }
            set {
                this.waitTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong WaitTime {
            get {
                return this.waitTimeField;
            }
            set {
                this.waitTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool WaitTimeSpecified {
            get {
                return this.waitTimeFieldSpecified;
            }
            set {
                this.waitTimeFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum WaitWarningTypeWaitType {
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Memory Grant")]
        MemoryGrant,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan", IncludeInSchema=false)]
    public enum ItemsChoiceType {
        
        /// <remarks/>
        ColumnsWithNoStatistics,
        
        /// <remarks/>
        ColumnsWithStaleStatistics,
        
        /// <remarks/>
        ExchangeSpillDetails,
        
        /// <remarks/>
        HashSpillDetails,
        
        /// <remarks/>
        MemoryGrantWarning,
        
        /// <remarks/>
        PlanAffectingConvert,
        
        /// <remarks/>
        SortSpillDetails,
        
        /// <remarks/>
        SpillOccurred,
        
        /// <remarks/>
        SpillToTempDb,
        
        /// <remarks/>
        Wait,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class MemoryGrantType {
        
        private ulong serialRequiredMemoryField;
        
        private ulong serialDesiredMemoryField;
        
        private ulong requiredMemoryField;
        
        private bool requiredMemoryFieldSpecified;
        
        private ulong desiredMemoryField;
        
        private bool desiredMemoryFieldSpecified;
        
        private ulong requestedMemoryField;
        
        private bool requestedMemoryFieldSpecified;
        
        private ulong grantWaitTimeField;
        
        private bool grantWaitTimeFieldSpecified;
        
        private ulong grantedMemoryField;
        
        private bool grantedMemoryFieldSpecified;
        
        private ulong maxUsedMemoryField;
        
        private bool maxUsedMemoryFieldSpecified;
        
        private ulong maxQueryMemoryField;
        
        private bool maxQueryMemoryFieldSpecified;
        
        private ulong lastRequestedMemoryField;
        
        private bool lastRequestedMemoryFieldSpecified;
        
        private MemoryGrantFeedbackInfoType isMemoryGrantFeedbackAdjustedField;
        
        private bool isMemoryGrantFeedbackAdjustedFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong SerialRequiredMemory {
            get {
                return this.serialRequiredMemoryField;
            }
            set {
                this.serialRequiredMemoryField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong SerialDesiredMemory {
            get {
                return this.serialDesiredMemoryField;
            }
            set {
                this.serialDesiredMemoryField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong RequiredMemory {
            get {
                return this.requiredMemoryField;
            }
            set {
                this.requiredMemoryField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool RequiredMemorySpecified {
            get {
                return this.requiredMemoryFieldSpecified;
            }
            set {
                this.requiredMemoryFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong DesiredMemory {
            get {
                return this.desiredMemoryField;
            }
            set {
                this.desiredMemoryField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool DesiredMemorySpecified {
            get {
                return this.desiredMemoryFieldSpecified;
            }
            set {
                this.desiredMemoryFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong RequestedMemory {
            get {
                return this.requestedMemoryField;
            }
            set {
                this.requestedMemoryField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool RequestedMemorySpecified {
            get {
                return this.requestedMemoryFieldSpecified;
            }
            set {
                this.requestedMemoryFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong GrantWaitTime {
            get {
                return this.grantWaitTimeField;
            }
            set {
                this.grantWaitTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool GrantWaitTimeSpecified {
            get {
                return this.grantWaitTimeFieldSpecified;
            }
            set {
                this.grantWaitTimeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong GrantedMemory {
            get {
                return this.grantedMemoryField;
            }
            set {
                this.grantedMemoryField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool GrantedMemorySpecified {
            get {
                return this.grantedMemoryFieldSpecified;
            }
            set {
                this.grantedMemoryFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong MaxUsedMemory {
            get {
                return this.maxUsedMemoryField;
            }
            set {
                this.maxUsedMemoryField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool MaxUsedMemorySpecified {
            get {
                return this.maxUsedMemoryFieldSpecified;
            }
            set {
                this.maxUsedMemoryFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong MaxQueryMemory {
            get {
                return this.maxQueryMemoryField;
            }
            set {
                this.maxQueryMemoryField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool MaxQueryMemorySpecified {
            get {
                return this.maxQueryMemoryFieldSpecified;
            }
            set {
                this.maxQueryMemoryFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong LastRequestedMemory {
            get {
                return this.lastRequestedMemoryField;
            }
            set {
                this.lastRequestedMemoryField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool LastRequestedMemorySpecified {
            get {
                return this.lastRequestedMemoryFieldSpecified;
            }
            set {
                this.lastRequestedMemoryFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public MemoryGrantFeedbackInfoType IsMemoryGrantFeedbackAdjusted {
            get {
                return this.isMemoryGrantFeedbackAdjustedField;
            }
            set {
                this.isMemoryGrantFeedbackAdjustedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsMemoryGrantFeedbackAdjustedSpecified {
            get {
                return this.isMemoryGrantFeedbackAdjustedFieldSpecified;
            }
            set {
                this.isMemoryGrantFeedbackAdjustedFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum MemoryGrantFeedbackInfoType {
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Yes: Adjusting")]
        YesAdjusting,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Yes: Stable")]
        YesStable,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("No: First Execution")]
        NoFirstExecution,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("No: Accurate Grant")]
        NoAccurateGrant,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("No: Feedback Disabled")]
        NoFeedbackDisabled,
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Yes: Percentile Adjusting")]
        YesPercentileAdjusting,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class OptimizerHardwareDependentPropertiesType {
        
        private ulong estimatedAvailableMemoryGrantField;
        
        private ulong estimatedPagesCachedField;
        
        private ulong estimatedAvailableDegreeOfParallelismField;
        
        private bool estimatedAvailableDegreeOfParallelismFieldSpecified;
        
        private ulong maxCompileMemoryField;
        
        private bool maxCompileMemoryFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong EstimatedAvailableMemoryGrant {
            get {
                return this.estimatedAvailableMemoryGrantField;
            }
            set {
                this.estimatedAvailableMemoryGrantField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong EstimatedPagesCached {
            get {
                return this.estimatedPagesCachedField;
            }
            set {
                this.estimatedPagesCachedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong EstimatedAvailableDegreeOfParallelism {
            get {
                return this.estimatedAvailableDegreeOfParallelismField;
            }
            set {
                this.estimatedAvailableDegreeOfParallelismField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool EstimatedAvailableDegreeOfParallelismSpecified {
            get {
                return this.estimatedAvailableDegreeOfParallelismFieldSpecified;
            }
            set {
                this.estimatedAvailableDegreeOfParallelismFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong MaxCompileMemory {
            get {
                return this.maxCompileMemoryField;
            }
            set {
                this.maxCompileMemoryField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool MaxCompileMemorySpecified {
            get {
                return this.maxCompileMemoryFieldSpecified;
            }
            set {
                this.maxCompileMemoryFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class TraceFlagListType {
        
        private TraceFlagType[] traceFlagField;
        
        private bool isCompileTimeField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("TraceFlag")]
        public TraceFlagType[] TraceFlag {
            get {
                return this.traceFlagField;
            }
            set {
                this.traceFlagField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsCompileTime {
            get {
                return this.isCompileTimeField;
            }
            set {
                this.isCompileTimeField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class TraceFlagType {
        
        private ulong valueField;
        
        private TraceFlagScopeType scopeField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong Value {
            get {
                return this.valueField;
            }
            set {
                this.valueField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public TraceFlagScopeType Scope {
            get {
                return this.scopeField;
            }
            set {
                this.scopeField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum TraceFlagScopeType {
        
        /// <remarks/>
        Global,
        
        /// <remarks/>
        Session,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class WaitStatType {
        
        private string waitTypeField;
        
        private ulong waitTimeMsField;
        
        private ulong waitCountField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string WaitType {
            get {
                return this.waitTypeField;
            }
            set {
                this.waitTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong WaitTimeMs {
            get {
                return this.waitTimeMsField;
            }
            set {
                this.waitTimeMsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong WaitCount {
            get {
                return this.waitCountField;
            }
            set {
                this.waitCountField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class QueryExecTimeType {
        
        private ulong cpuTimeField;
        
        private ulong elapsedTimeField;
        
        private ulong udfCpuTimeField;
        
        private bool udfCpuTimeFieldSpecified;
        
        private ulong udfElapsedTimeField;
        
        private bool udfElapsedTimeFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong CpuTime {
            get {
                return this.cpuTimeField;
            }
            set {
                this.cpuTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ElapsedTime {
            get {
                return this.elapsedTimeField;
            }
            set {
                this.elapsedTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong UdfCpuTime {
            get {
                return this.udfCpuTimeField;
            }
            set {
                this.udfCpuTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool UdfCpuTimeSpecified {
            get {
                return this.udfCpuTimeFieldSpecified;
            }
            set {
                this.udfCpuTimeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong UdfElapsedTime {
            get {
                return this.udfElapsedTimeField;
            }
            set {
                this.udfElapsedTimeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool UdfElapsedTimeSpecified {
            get {
                return this.udfElapsedTimeFieldSpecified;
            }
            set {
                this.udfElapsedTimeFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class FunctionType {
        
        private StmtBlockType statementsField;
        
        private string procNameField;
        
        private bool isNativelyCompiledField;
        
        private bool isNativelyCompiledFieldSpecified;
        
        /// <remarks/>
        public StmtBlockType Statements {
            get {
                return this.statementsField;
            }
            set {
                this.statementsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string ProcName {
            get {
                return this.procNameField;
            }
            set {
                this.procNameField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool IsNativelyCompiled {
            get {
                return this.isNativelyCompiledField;
            }
            set {
                this.isNativelyCompiledField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool IsNativelyCompiledSpecified {
            get {
                return this.isNativelyCompiledFieldSpecified;
            }
            set {
                this.isNativelyCompiledFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum CursorPlanTypeOperationOperationType {
        
        /// <remarks/>
        FetchQuery,
        
        /// <remarks/>
        PopulateQuery,
        
        /// <remarks/>
        RefreshQuery,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum CursorType {
        
        /// <remarks/>
        Dynamic,
        
        /// <remarks/>
        FastForward,
        
        /// <remarks/>
        Keyset,
        
        /// <remarks/>
        SnapShot,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum CursorPlanTypeCursorConcurrency {
        
        /// <remarks/>
        [System.Xml.Serialization.XmlEnumAttribute("Read Only")]
        ReadOnly,
        
        /// <remarks/>
        Pessimistic,
        
        /// <remarks/>
        Optimistic,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class SetOptionsType {
        
        private bool aNSI_NULLSField;
        
        private bool aNSI_NULLSFieldSpecified;
        
        private bool aNSI_PADDINGField;
        
        private bool aNSI_PADDINGFieldSpecified;
        
        private bool aNSI_WARNINGSField;
        
        private bool aNSI_WARNINGSFieldSpecified;
        
        private bool aRITHABORTField;
        
        private bool aRITHABORTFieldSpecified;
        
        private bool cONCAT_NULL_YIELDS_NULLField;
        
        private bool cONCAT_NULL_YIELDS_NULLFieldSpecified;
        
        private bool nUMERIC_ROUNDABORTField;
        
        private bool nUMERIC_ROUNDABORTFieldSpecified;
        
        private bool qUOTED_IDENTIFIERField;
        
        private bool qUOTED_IDENTIFIERFieldSpecified;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ANSI_NULLS {
            get {
                return this.aNSI_NULLSField;
            }
            set {
                this.aNSI_NULLSField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ANSI_NULLSSpecified {
            get {
                return this.aNSI_NULLSFieldSpecified;
            }
            set {
                this.aNSI_NULLSFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ANSI_PADDING {
            get {
                return this.aNSI_PADDINGField;
            }
            set {
                this.aNSI_PADDINGField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ANSI_PADDINGSpecified {
            get {
                return this.aNSI_PADDINGFieldSpecified;
            }
            set {
                this.aNSI_PADDINGFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ANSI_WARNINGS {
            get {
                return this.aNSI_WARNINGSField;
            }
            set {
                this.aNSI_WARNINGSField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ANSI_WARNINGSSpecified {
            get {
                return this.aNSI_WARNINGSFieldSpecified;
            }
            set {
                this.aNSI_WARNINGSFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ARITHABORT {
            get {
                return this.aRITHABORTField;
            }
            set {
                this.aRITHABORTField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ARITHABORTSpecified {
            get {
                return this.aRITHABORTFieldSpecified;
            }
            set {
                this.aRITHABORTFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool CONCAT_NULL_YIELDS_NULL {
            get {
                return this.cONCAT_NULL_YIELDS_NULLField;
            }
            set {
                this.cONCAT_NULL_YIELDS_NULLField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool CONCAT_NULL_YIELDS_NULLSpecified {
            get {
                return this.cONCAT_NULL_YIELDS_NULLFieldSpecified;
            }
            set {
                this.cONCAT_NULL_YIELDS_NULLFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool NUMERIC_ROUNDABORT {
            get {
                return this.nUMERIC_ROUNDABORTField;
            }
            set {
                this.nUMERIC_ROUNDABORTField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool NUMERIC_ROUNDABORTSpecified {
            get {
                return this.nUMERIC_ROUNDABORTFieldSpecified;
            }
            set {
                this.nUMERIC_ROUNDABORTFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool QUOTED_IDENTIFIER {
            get {
                return this.qUOTED_IDENTIFIERField;
            }
            set {
                this.qUOTED_IDENTIFIERField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool QUOTED_IDENTIFIERSpecified {
            get {
                return this.qUOTED_IDENTIFIERFieldSpecified;
            }
            set {
                this.qUOTED_IDENTIFIERFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(StmtReceiveType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(StmtCursorType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(StmtCondType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(StmtUseDbType))]
    [System.Xml.Serialization.XmlIncludeAttribute(typeof(StmtSimpleType))]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class BaseStmtInfoType {
        
        private SetOptionsType statementSetOptionsField;
        
        private int statementCompIdField;
        
        private bool statementCompIdFieldSpecified;
        
        private double statementEstRowsField;
        
        private bool statementEstRowsFieldSpecified;
        
        private int statementIdField;
        
        private bool statementIdFieldSpecified;
        
        private string statementOptmLevelField;
        
        private BaseStmtInfoTypeStatementOptmEarlyAbortReason statementOptmEarlyAbortReasonField;
        
        private bool statementOptmEarlyAbortReasonFieldSpecified;
        
        private string cardinalityEstimationModelVersionField;
        
        private double statementSubTreeCostField;
        
        private bool statementSubTreeCostFieldSpecified;
        
        private string statementTextField;
        
        private string statementTypeField;
        
        private string templatePlanGuideDBField;
        
        private string templatePlanGuideNameField;
        
        private string planGuideDBField;
        
        private string planGuideNameField;
        
        private string parameterizedTextField;
        
        private string parameterizedPlanHandleField;
        
        private string queryHashField;
        
        private string queryPlanHashField;
        
        private string retrievedFromCacheField;
        
        private string statementSqlHandleField;
        
        private ulong databaseContextSettingsIdField;
        
        private bool databaseContextSettingsIdFieldSpecified;
        
        private ulong parentObjectIdField;
        
        private bool parentObjectIdFieldSpecified;
        
        private string batchSqlHandleField;
        
        private int statementParameterizationTypeField;
        
        private bool statementParameterizationTypeFieldSpecified;
        
        private bool securityPolicyAppliedField;
        
        private bool securityPolicyAppliedFieldSpecified;
        
        private bool batchModeOnRowStoreUsedField;
        
        private bool batchModeOnRowStoreUsedFieldSpecified;
        
        /// <remarks/>
        public SetOptionsType StatementSetOptions {
            get {
                return this.statementSetOptionsField;
            }
            set {
                this.statementSetOptionsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int StatementCompId {
            get {
                return this.statementCompIdField;
            }
            set {
                this.statementCompIdField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool StatementCompIdSpecified {
            get {
                return this.statementCompIdFieldSpecified;
            }
            set {
                this.statementCompIdFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double StatementEstRows {
            get {
                return this.statementEstRowsField;
            }
            set {
                this.statementEstRowsField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool StatementEstRowsSpecified {
            get {
                return this.statementEstRowsFieldSpecified;
            }
            set {
                this.statementEstRowsFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int StatementId {
            get {
                return this.statementIdField;
            }
            set {
                this.statementIdField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool StatementIdSpecified {
            get {
                return this.statementIdFieldSpecified;
            }
            set {
                this.statementIdFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string StatementOptmLevel {
            get {
                return this.statementOptmLevelField;
            }
            set {
                this.statementOptmLevelField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public BaseStmtInfoTypeStatementOptmEarlyAbortReason StatementOptmEarlyAbortReason {
            get {
                return this.statementOptmEarlyAbortReasonField;
            }
            set {
                this.statementOptmEarlyAbortReasonField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool StatementOptmEarlyAbortReasonSpecified {
            get {
                return this.statementOptmEarlyAbortReasonFieldSpecified;
            }
            set {
                this.statementOptmEarlyAbortReasonFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string CardinalityEstimationModelVersion {
            get {
                return this.cardinalityEstimationModelVersionField;
            }
            set {
                this.cardinalityEstimationModelVersionField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public double StatementSubTreeCost {
            get {
                return this.statementSubTreeCostField;
            }
            set {
                this.statementSubTreeCostField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool StatementSubTreeCostSpecified {
            get {
                return this.statementSubTreeCostFieldSpecified;
            }
            set {
                this.statementSubTreeCostFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string StatementText {
            get {
                return this.statementTextField;
            }
            set {
                this.statementTextField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string StatementType {
            get {
                return this.statementTypeField;
            }
            set {
                this.statementTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string TemplatePlanGuideDB {
            get {
                return this.templatePlanGuideDBField;
            }
            set {
                this.templatePlanGuideDBField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string TemplatePlanGuideName {
            get {
                return this.templatePlanGuideNameField;
            }
            set {
                this.templatePlanGuideNameField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string PlanGuideDB {
            get {
                return this.planGuideDBField;
            }
            set {
                this.planGuideDBField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string PlanGuideName {
            get {
                return this.planGuideNameField;
            }
            set {
                this.planGuideNameField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string ParameterizedText {
            get {
                return this.parameterizedTextField;
            }
            set {
                this.parameterizedTextField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string ParameterizedPlanHandle {
            get {
                return this.parameterizedPlanHandleField;
            }
            set {
                this.parameterizedPlanHandleField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string QueryHash {
            get {
                return this.queryHashField;
            }
            set {
                this.queryHashField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string QueryPlanHash {
            get {
                return this.queryPlanHashField;
            }
            set {
                this.queryPlanHashField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string RetrievedFromCache {
            get {
                return this.retrievedFromCacheField;
            }
            set {
                this.retrievedFromCacheField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string StatementSqlHandle {
            get {
                return this.statementSqlHandleField;
            }
            set {
                this.statementSqlHandleField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong DatabaseContextSettingsId {
            get {
                return this.databaseContextSettingsIdField;
            }
            set {
                this.databaseContextSettingsIdField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool DatabaseContextSettingsIdSpecified {
            get {
                return this.databaseContextSettingsIdFieldSpecified;
            }
            set {
                this.databaseContextSettingsIdFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ulong ParentObjectId {
            get {
                return this.parentObjectIdField;
            }
            set {
                this.parentObjectIdField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool ParentObjectIdSpecified {
            get {
                return this.parentObjectIdFieldSpecified;
            }
            set {
                this.parentObjectIdFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string BatchSqlHandle {
            get {
                return this.batchSqlHandleField;
            }
            set {
                this.batchSqlHandleField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int StatementParameterizationType {
            get {
                return this.statementParameterizationTypeField;
            }
            set {
                this.statementParameterizationTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool StatementParameterizationTypeSpecified {
            get {
                return this.statementParameterizationTypeFieldSpecified;
            }
            set {
                this.statementParameterizationTypeFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool SecurityPolicyApplied {
            get {
                return this.securityPolicyAppliedField;
            }
            set {
                this.securityPolicyAppliedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool SecurityPolicyAppliedSpecified {
            get {
                return this.securityPolicyAppliedFieldSpecified;
            }
            set {
                this.securityPolicyAppliedFieldSpecified = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool BatchModeOnRowStoreUsed {
            get {
                return this.batchModeOnRowStoreUsedField;
            }
            set {
                this.batchModeOnRowStoreUsedField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool BatchModeOnRowStoreUsedSpecified {
            get {
                return this.batchModeOnRowStoreUsedFieldSpecified;
            }
            set {
                this.batchModeOnRowStoreUsedFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum BaseStmtInfoTypeStatementOptmEarlyAbortReason {
        
        /// <remarks/>
        TimeOut,
        
        /// <remarks/>
        MemoryLimitExceeded,
        
        /// <remarks/>
        GoodEnoughPlanFound,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class StmtReceiveType : BaseStmtInfoType {
        
        private ReceivePlanTypeOperation[] receivePlanField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayItemAttribute("Operation", IsNullable=false)]
        public ReceivePlanTypeOperation[] ReceivePlan {
            get {
                return this.receivePlanField;
            }
            set {
                this.receivePlanField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class ReceivePlanTypeOperation {
        
        private QueryPlanType queryPlanField;
        
        private ReceivePlanTypeOperationOperationType operationTypeField;
        
        private bool operationTypeFieldSpecified;
        
        /// <remarks/>
        public QueryPlanType QueryPlan {
            get {
                return this.queryPlanField;
            }
            set {
                this.queryPlanField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public ReceivePlanTypeOperationOperationType OperationType {
            get {
                return this.operationTypeField;
            }
            set {
                this.operationTypeField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool OperationTypeSpecified {
            get {
                return this.operationTypeFieldSpecified;
            }
            set {
                this.operationTypeFieldSpecified = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public enum ReceivePlanTypeOperationOperationType {
        
        /// <remarks/>
        ReceivePlanSelect,
        
        /// <remarks/>
        ReceivePlanUpdate,
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class StmtCursorType : BaseStmtInfoType {
        
        private CursorPlanType cursorPlanField;
        
        /// <remarks/>
        public CursorPlanType CursorPlan {
            get {
                return this.cursorPlanField;
            }
            set {
                this.cursorPlanField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class StmtCondType : BaseStmtInfoType {
        
        private StmtCondTypeCondition conditionField;
        
        private StmtCondTypeThen thenField;
        
        private StmtCondTypeElse elseField;
        
        /// <remarks/>
        public StmtCondTypeCondition Condition {
            get {
                return this.conditionField;
            }
            set {
                this.conditionField = value;
            }
        }
        
        /// <remarks/>
        public StmtCondTypeThen Then {
            get {
                return this.thenField;
            }
            set {
                this.thenField = value;
            }
        }
        
        /// <remarks/>
        public StmtCondTypeElse Else {
            get {
                return this.elseField;
            }
            set {
                this.elseField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class StmtCondTypeCondition {
        
        private QueryPlanType queryPlanField;
        
        private FunctionType[] uDFField;
        
        /// <remarks/>
        public QueryPlanType QueryPlan {
            get {
                return this.queryPlanField;
            }
            set {
                this.queryPlanField = value;
            }
        }
        
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("UDF")]
        public FunctionType[] UDF {
            get {
                return this.uDFField;
            }
            set {
                this.uDFField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class StmtCondTypeThen {
        
        private StmtBlockType statementsField;
        
        /// <remarks/>
        public StmtBlockType Statements {
            get {
                return this.statementsField;
            }
            set {
                this.statementsField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class StmtCondTypeElse {
        
        private StmtBlockType statementsField;
        
        /// <remarks/>
        public StmtBlockType Statements {
            get {
                return this.statementsField;
            }
            set {
                this.statementsField = value;
            }
        }
    }
    
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.8.3928.0")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://schemas.microsoft.com/sqlserver/2004/07/showplan")]
    public partial class StmtUseDbType : BaseStmtInfoType {
        
        private string databaseField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string Database {
            get {
                return this.databaseField;
            }
            set {
                this.databaseField = value;
            }
        }
    }
}
