Axiom.Demos.Configuration.EngineConfig.ConfigOptionDataTable.GetTypedTableSchema C# (CSharp) Method

GetTypedTableSchema() private method

private GetTypedTableSchema ( global xs ) : global::System.Xml.Schema.XmlSchemaComplexType
xs global
return global::System.Xml.Schema.XmlSchemaComplexType
			public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) {
				global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType();
				global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence();
				EngineConfig ds = new EngineConfig();
				global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny();
				any1.Namespace = "http://www.w3.org/2001/XMLSchema";
				any1.MinOccurs = new decimal(0);
				any1.MaxOccurs = decimal.MaxValue;
				any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax;
				sequence.Items.Add(any1);
				global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny();
				any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1";
				any2.MinOccurs = new decimal(1);
				any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax;
				sequence.Items.Add(any2);
				global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute();
				attribute1.Name = "namespace";
				attribute1.FixedValue = ds.Namespace;
				type.Attributes.Add(attribute1);
				global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute();
				attribute2.Name = "tableTypeName";
				attribute2.FixedValue = "ConfigOptionDataTable";
				type.Attributes.Add(attribute2);
				type.Particle = sequence;
				global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable();
				if (xs.Contains(dsSchema.TargetNamespace)) {
					global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream();
					global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream();
					try {
						global::System.Xml.Schema.XmlSchema schema = null;
						dsSchema.Write(s1);
						for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) {
							schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current));
							s2.SetLength(0);
							schema.Write(s2);
							if ((s1.Length == s2.Length)) {
								s1.Position = 0;
								s2.Position = 0;
								for (; ((s1.Position != s1.Length) 
											&& (s1.ReadByte() == s2.ReadByte())); ) {
									;
								}
								if ((s1.Position == s1.Length)) {
									return type;
								}
							}
						}
					}
					finally {
						if ((s1 != null)) {
							s1.Close();
						}
						if ((s2 != null)) {
							s2.Close();
						}
					}
				}
				xs.Add(dsSchema);
				return type;
			}
		}