//------------------------------------------------------------------------------ // <copyright file="XmlSchemaAttributeGroup.cs" company="Microsoft"> // Copyright (c) Microsoft Corporation. All rights reserved. // </copyright> // <owner current="true" primary="true">Microsoft</owner> //------------------------------------------------------------------------------ namespace System.Xml.Schema { using System.Collections; using System.Xml.Serialization; /// <include file='doc\XmlSchemaAttributeGroup.uex' path='docs/doc[@for="XmlSchemaAttributeGroup"]/*' /> /// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> public class XmlSchemaAttributeGroup : XmlSchemaAnnotated { string name; XmlSchemaObjectCollection attributes = new XmlSchemaObjectCollection(); XmlSchemaAnyAttribute anyAttribute; XmlQualifiedName qname = XmlQualifiedName.Empty; XmlSchemaAttributeGroup redefined; XmlSchemaObjectTable attributeUses; XmlSchemaAnyAttribute attributeWildcard; int selfReferenceCount; /// <include file='doc\XmlSchemaAttributeGroup.uex' path='docs/doc[@for="XmlSchemaAttributeGroup.Name"]/*' /> /// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> [XmlAttribute("name")] public string Name { get { return name; } set { name = value; } } /// <include file='doc\XmlSchemaAttributeGroup.uex' path='docs/doc[@for="XmlSchemaAttributeGroup.Attributes"]/*' /> /// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> [XmlElement("attribute", typeof(XmlSchemaAttribute)), XmlElement("attributeGroup", typeof(XmlSchemaAttributeGroupRef))] public XmlSchemaObjectCollection Attributes { get { return attributes; } } /// <include file='doc\XmlSchemaAttributeGroup.uex' path='docs/doc[@for="XmlSchemaAttributeGroup.AnyAttribute"]/*' /> /// <devdoc> /// <para>[To be supplied.]</para> /// </devdoc> [XmlElement("anyAttribute")] public XmlSchemaAnyAttribute AnyAttribute { get { return anyAttribute; } set { anyAttribute = value; } } [XmlIgnore] public XmlQualifiedName QualifiedName { get { return qname; } } [XmlIgnore] internal XmlSchemaObjectTable AttributeUses { get { if (attributeUses == null) { attributeUses = new XmlSchemaObjectTable(); } return attributeUses; } } [XmlIgnore] internal XmlSchemaAnyAttribute AttributeWildcard { get { return attributeWildcard; } set { attributeWildcard = value; } } /// <include file='doc\XmlSchemaAttributeGroup.uex' path='docs/doc[@for="XmlSchemaAttributeGroup.RedefinedAttributeGroup"]/*' /> [XmlIgnore] public XmlSchemaAttributeGroup RedefinedAttributeGroup { get { return redefined; } } [XmlIgnore] internal XmlSchemaAttributeGroup Redefined { get { return redefined; } set { redefined = value; } } [XmlIgnore] internal int SelfReferenceCount { get { return selfReferenceCount; } set { selfReferenceCount = value; } } [XmlIgnore] internal override string NameAttribute { get { return Name; } set { Name = value; } } internal void SetQualifiedName(XmlQualifiedName value) { qname = value; } internal override XmlSchemaObject Clone() { XmlSchemaAttributeGroup newGroup = (XmlSchemaAttributeGroup)MemberwiseClone(); if (XmlSchemaComplexType.HasAttributeQNameRef(this.attributes)) { //If a ref/type name is present newGroup.attributes = XmlSchemaComplexType.CloneAttributes(this.attributes); //Clear compiled tables newGroup.attributeUses = null; } return newGroup; } } }