CompiledIdentityConstraint.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / Xml / System / Xml / schema / CompiledIdentityConstraint.cs / 1 / CompiledIdentityConstraint.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
//-----------------------------------------------------------------------------
 
namespace System.Xml.Schema { 

    using System.Text; 
    using System.Collections;
    using System.Diagnostics;
    using System.Xml.XPath;
    using MS.Internal.Xml.XPath; 

    internal class CompiledIdentityConstraint { 
        internal XmlQualifiedName name = XmlQualifiedName.Empty; 
        private ConstraintRole role;
        private Asttree selector; 
        private Asttree[] fields;
        internal XmlQualifiedName refer = XmlQualifiedName.Empty;

        public enum ConstraintRole { 
            Unique,
            Key, 
            Keyref 
        }
 
        public ConstraintRole Role {
            get { return this.role; }
        }
 
        public Asttree Selector {
            get { return this.selector; } 
        } 

        public Asttree[] Fields { 
            get { return this.fields; }
        }

        public static readonly CompiledIdentityConstraint Empty = new CompiledIdentityConstraint(); 

        private CompiledIdentityConstraint() {} 
 
        public CompiledIdentityConstraint(XmlSchemaIdentityConstraint constraint, XmlNamespaceManager nsmgr) {
            this.name = constraint.QualifiedName; 

            //public Asttree (string xPath, bool isField, XmlNamespaceManager nsmgr)
            try {
                this.selector = new Asttree(constraint.Selector.XPath, false, nsmgr); 
            }
            catch (XmlSchemaException e) { 
                e.SetSource(constraint.Selector); 
                throw e;
            } 
            XmlSchemaObjectCollection fields = constraint.Fields;
            Debug.Assert(fields.Count > 0);
            this.fields = new Asttree[fields.Count];
            for(int idxField = 0; idxField < fields.Count; idxField ++) { 
                try {
                    this.fields[idxField] = new Asttree(((XmlSchemaXPath)fields[idxField]).XPath, true, nsmgr); 
                } 
                catch (XmlSchemaException e) {
                    e.SetSource(constraint.Fields[idxField]); 
                    throw e;
                }
            }
            if (constraint is XmlSchemaUnique) { 
                this.role = ConstraintRole.Unique;
            } 
            else if (constraint is XmlSchemaKey) { 
                this.role = ConstraintRole.Key;
            } 
            else {             // XmlSchemaKeyref
                this.role = ConstraintRole.Keyref;
                this.refer = ((XmlSchemaKeyref)constraint).Refer;
            } 
        }
    } 
 
}
 


// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
//-----------------------------------------------------------------------------
 
namespace System.Xml.Schema { 

    using System.Text; 
    using System.Collections;
    using System.Diagnostics;
    using System.Xml.XPath;
    using MS.Internal.Xml.XPath; 

    internal class CompiledIdentityConstraint { 
        internal XmlQualifiedName name = XmlQualifiedName.Empty; 
        private ConstraintRole role;
        private Asttree selector; 
        private Asttree[] fields;
        internal XmlQualifiedName refer = XmlQualifiedName.Empty;

        public enum ConstraintRole { 
            Unique,
            Key, 
            Keyref 
        }
 
        public ConstraintRole Role {
            get { return this.role; }
        }
 
        public Asttree Selector {
            get { return this.selector; } 
        } 

        public Asttree[] Fields { 
            get { return this.fields; }
        }

        public static readonly CompiledIdentityConstraint Empty = new CompiledIdentityConstraint(); 

        private CompiledIdentityConstraint() {} 
 
        public CompiledIdentityConstraint(XmlSchemaIdentityConstraint constraint, XmlNamespaceManager nsmgr) {
            this.name = constraint.QualifiedName; 

            //public Asttree (string xPath, bool isField, XmlNamespaceManager nsmgr)
            try {
                this.selector = new Asttree(constraint.Selector.XPath, false, nsmgr); 
            }
            catch (XmlSchemaException e) { 
                e.SetSource(constraint.Selector); 
                throw e;
            } 
            XmlSchemaObjectCollection fields = constraint.Fields;
            Debug.Assert(fields.Count > 0);
            this.fields = new Asttree[fields.Count];
            for(int idxField = 0; idxField < fields.Count; idxField ++) { 
                try {
                    this.fields[idxField] = new Asttree(((XmlSchemaXPath)fields[idxField]).XPath, true, nsmgr); 
                } 
                catch (XmlSchemaException e) {
                    e.SetSource(constraint.Fields[idxField]); 
                    throw e;
                }
            }
            if (constraint is XmlSchemaUnique) { 
                this.role = ConstraintRole.Unique;
            } 
            else if (constraint is XmlSchemaKey) { 
                this.role = ConstraintRole.Key;
            } 
            else {             // XmlSchemaKeyref
                this.role = ConstraintRole.Keyref;
                this.refer = ((XmlSchemaKeyref)constraint).Refer;
            } 
        }
    } 
 
}
 


// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK