1 //------------------------------------------------------------------------------
2 // <copyright file="XmlSchemaGroup.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
5 // <owner current="true" primary="true">Microsoft</owner>
6 //------------------------------------------------------------------------------
8 namespace System.Xml.Schema {
10 using System.Xml.Serialization;
12 /// <include file='doc\XmlSchemaGroup.uex' path='docs/doc[@for="XmlSchemaGroup"]/*' />
14 /// <para>[To be supplied.]</para>
16 public class XmlSchemaGroup : XmlSchemaAnnotated {
18 XmlSchemaGroupBase particle;
19 XmlSchemaParticle canonicalParticle;
20 XmlQualifiedName qname = XmlQualifiedName.Empty;
21 XmlSchemaGroup redefined;
22 int selfReferenceCount;
24 /// <include file='doc\XmlSchemaGroup.uex' path='docs/doc[@for="XmlSchemaGroup.Name"]/*' />
26 /// <para>[To be supplied.]</para>
28 [XmlAttribute("name")]
34 /// <include file='doc\XmlSchemaGroup.uex' path='docs/doc[@for="XmlSchemaGroup.Particle"]/*' />
36 /// <para>[To be supplied.]</para>
38 [XmlElement("choice", typeof(XmlSchemaChoice)),
39 XmlElement("all", typeof(XmlSchemaAll)),
40 XmlElement("sequence", typeof(XmlSchemaSequence))]
41 public XmlSchemaGroupBase Particle {
42 get { return particle; }
43 set { particle = value; }
47 public XmlQualifiedName QualifiedName {
52 internal XmlSchemaParticle CanonicalParticle {
53 get { return canonicalParticle; }
54 set { canonicalParticle = value; }
58 internal XmlSchemaGroup Redefined {
59 get { return redefined; }
60 set { redefined = value; }
64 internal int SelfReferenceCount {
65 get { return selfReferenceCount; }
66 set { selfReferenceCount = value; }
70 internal override string NameAttribute {
75 internal void SetQualifiedName(XmlQualifiedName value) {
79 internal override XmlSchemaObject Clone() {
80 System.Diagnostics.Debug.Assert(false, "Should never call Clone() on XmlSchemaGroup. Call Clone(XmlSchema) instead.");
84 internal XmlSchemaObject Clone(XmlSchema parentSchema) {
85 XmlSchemaGroup newGroup = (XmlSchemaGroup)MemberwiseClone();
86 if (XmlSchemaComplexType.HasParticleRef(this.particle, parentSchema)) {
87 newGroup.particle = XmlSchemaComplexType.CloneParticle(this.particle, parentSchema) as XmlSchemaGroupBase;
89 newGroup.canonicalParticle = XmlSchemaParticle.Empty;