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;
 }
Example #3
0
        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");
        }