1 //------------------------------------------------------------------------------
2 // <copyright file="XmlSchemaSimpleTypeUnion.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\XmlSchemaSimpleTypeUnion.uex' path='docs/doc[@for="XmlSchemaSimpleTypeUnion"]/*' />
14 /// <para>[To be supplied.]</para>
16 public class XmlSchemaSimpleTypeUnion : XmlSchemaSimpleTypeContent {
17 XmlSchemaObjectCollection baseTypes = new XmlSchemaObjectCollection();
18 XmlQualifiedName[] memberTypes;
19 XmlSchemaSimpleType[] baseMemberTypes; // Compiled
21 /// <include file='doc\XmlSchemaSimpleTypeUnion.uex' path='docs/doc[@for="XmlSchemaSimpleTypeUnion.BaseTypes"]/*' />
23 /// <para>[To be supplied.]</para>
25 [XmlElement("simpleType", typeof(XmlSchemaSimpleType))]
26 public XmlSchemaObjectCollection BaseTypes {
27 get { return baseTypes; }
30 /// <include file='doc\XmlSchemaSimpleTypeUnion.uex' path='docs/doc[@for="XmlSchemaSimpleTypeUnion.MemberTypes"]/*' />
31 [XmlAttribute("memberTypes")]
32 public XmlQualifiedName[] MemberTypes {
33 get { return memberTypes; }
34 set { memberTypes = value; }
37 //Compiled Information
38 /// <include file='doc\XmlSchemaSimpleTypeUnion.uex' path='docs/doc[@for="XmlSchemaSimpleTypeUnion.BaseMemberTypes"]/*' />
40 public XmlSchemaSimpleType[] BaseMemberTypes {
41 get { return baseMemberTypes; }
44 internal void SetBaseMemberTypes(XmlSchemaSimpleType[] baseMemberTypes) {
45 this.baseMemberTypes = baseMemberTypes;
48 internal override XmlSchemaObject Clone() {
49 if (memberTypes != null && memberTypes.Length > 0) { //Only if the union has MemberTypes defined
50 XmlSchemaSimpleTypeUnion newUnion = (XmlSchemaSimpleTypeUnion)MemberwiseClone();
51 XmlQualifiedName[] newQNames = new XmlQualifiedName[memberTypes.Length];
53 for (int i = 0; i < memberTypes.Length; i++) {
54 newQNames[i] = memberTypes[i].Clone();
56 newUnion.MemberTypes = newQNames;