public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { BaseXMLData ds = new BaseXMLData(); global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); any.Namespace = ds.Namespace; sequence.Items.Add(any); 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; }
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(); BaseXMLData ds = new BaseXMLData(); 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 = "realmDataTable"; 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; }
private void getLocalVersions() { this.versions.Clear(); //versionsdatei erstellen mit aktuell installierten versionen //row base.xml ApplicationVersions.DatabaseRow baseXMLRow = this.versions.Database.NewDatabaseRow(); baseXMLRow.filename = "database/base.xml"; string baseFile = Application.StartupPath + "//" + baseXMLRow.filename; if (System.IO.File.Exists(baseFile) != false) { //Test BaseXMLData baseXML = new BaseXMLData(); baseXML.version.ReadXml(baseFile); if (baseXML.version.Count > 0) { baseXMLRow.local_version = (string)baseXML.version.Rows[0]["version"]; baseXMLRow.update = (bool)baseXML.version.Rows[0]["doUpdate"]; } //Message: error reading version else { baseXMLRow.local_version = "error reading version"; } } //Message: file not found else { baseXMLRow.local_version = "file not found"; } //Message: unknown baseXMLRow.online_version = "unknown"; this.versions.Database.AddDatabaseRow(baseXMLRow); //row models.xml ApplicationVersions.DatabaseRow modelsRow = this.versions.Database.NewDatabaseRow(); modelsRow.filename = "database/models.xml"; string modelsFile = Application.StartupPath + "//" + modelsRow.filename; if (System.IO.File.Exists(modelsFile) != false) { ItemModels itemModels = new ItemModels(); itemModels.version.ReadXml(modelsFile); if (itemModels.version.Count > 0) { modelsRow.local_version = (string)itemModels.version.Rows[0]["version"]; modelsRow.update = (bool)itemModels.version.Rows[0]["doUpdate"]; } //Message: error reading version else { modelsRow.local_version = "error reading version"; } } //Message: file not found else { modelsRow.local_version = "file not found"; } //Message: unknown modelsRow.online_version = "unknown"; this.versions.Database.AddDatabaseRow(modelsRow); //Application ApplicationVersions.ApplicationRow appRow = versions.Application.NewApplicationRow(); appRow.local_version = Application.ProductVersion; appRow.online_version = "unknown"; this.versions.Application.AddApplicationRow(appRow); this.versions.WriteXml(Application.StartupPath + "//versions.xml"); }