XmlSchemaAnyAttribute.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / Xml / System / Xml / schema / XmlSchemaAnyAttribute.cs / 1 / XmlSchemaAnyAttribute.cs

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

    using System.Collections; 
    using System.ComponentModel;
    using System.Xml.Serialization;

    ///  
    /// 
    ///    [To be supplied.] 
    ///  
    public class XmlSchemaAnyAttribute : XmlSchemaAnnotated {
        string ns; 
        XmlSchemaContentProcessing processContents = XmlSchemaContentProcessing.None;
        NamespaceList namespaceList;

        ///  
        /// 
        ///    [To be supplied.] 
        ///  
        [XmlAttribute("namespace")]
        public string Namespace { 
            get { return ns; }
            set { ns = value; }
        }
 
        /// 
        ///  
        ///    [To be supplied.] 
        /// 
        [XmlAttribute("processContents"), DefaultValue(XmlSchemaContentProcessing.None)] 
        public XmlSchemaContentProcessing ProcessContents {
            get { return processContents; }
            set { processContents = value; }
        } 

 
        [XmlIgnore] 
        internal NamespaceList NamespaceList {
            get { return namespaceList; } 
        }

        [XmlIgnore]
        internal XmlSchemaContentProcessing ProcessContentsCorrect { 
            get { return processContents == XmlSchemaContentProcessing.None ? XmlSchemaContentProcessing.Strict : processContents; }
        } 
 
        internal void BuildNamespaceList(string targetNamespace) {
            if (ns != null) { 
                namespaceList = new NamespaceList(ns, targetNamespace);
            }
            else {
                namespaceList = new NamespaceList(); 
            }
        } 
 
        internal void BuildNamespaceListV1Compat(string targetNamespace) {
            if (ns != null) { 
                namespaceList = new NamespaceListV1Compat(ns, targetNamespace);
            }
            else {
                namespaceList = new NamespaceList(); //This is only ##any, hence base class is sufficient 
            }
        } 
 
        internal bool Allows(XmlQualifiedName qname) {
            return namespaceList.Allows(qname.Namespace); 
        }

        internal static bool IsSubset(XmlSchemaAnyAttribute sub, XmlSchemaAnyAttribute super) {
            return NamespaceList.IsSubset(sub.NamespaceList, super.NamespaceList); 
        }
 
        internal static XmlSchemaAnyAttribute Intersection(XmlSchemaAnyAttribute o1, XmlSchemaAnyAttribute o2, bool v1Compat) { 
            NamespaceList nsl = NamespaceList.Intersection(o1.NamespaceList, o2.NamespaceList, v1Compat);
            if (nsl != null) { 
                XmlSchemaAnyAttribute anyAttribute = new XmlSchemaAnyAttribute();
                anyAttribute.namespaceList = nsl;
                anyAttribute.ProcessContents = o1.ProcessContents;
                anyAttribute.Annotation = o1.Annotation; 
                return anyAttribute;
            } 
            else { 
                // not expressible
                return null; 
            }
        }

        internal static XmlSchemaAnyAttribute Union(XmlSchemaAnyAttribute o1, XmlSchemaAnyAttribute o2, bool v1Compat) { 
            NamespaceList nsl = NamespaceList.Union(o1.NamespaceList, o2.NamespaceList, v1Compat);
            if (nsl != null) { 
                XmlSchemaAnyAttribute anyAttribute = new XmlSchemaAnyAttribute(); 
                anyAttribute.namespaceList = nsl;
                anyAttribute.processContents = o1.processContents; 
                anyAttribute.Annotation = o1.Annotation;
                return anyAttribute;
            }
            else { 
                // not expressible
                return null; 
            } 
        }
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

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