当前位置: 首页>>代码示例>>C#>>正文


C# XmlSchemas.GetSchemas方法代码示例

本文整理汇总了C#中System.Xml.Serialization.XmlSchemas.GetSchemas方法的典型用法代码示例。如果您正苦于以下问题:C# XmlSchemas.GetSchemas方法的具体用法?C# XmlSchemas.GetSchemas怎么用?C# XmlSchemas.GetSchemas使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.Xml.Serialization.XmlSchemas的用法示例。


在下文中一共展示了XmlSchemas.GetSchemas方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GenerateTypedDataSet

 internal string GenerateTypedDataSet(XmlSchemaElement element, XmlSchemas schemas, CodeCompileUnit compileUnit, CodeNamespace mainNamespace, CodeDomProvider codeProvider)
 {
     if (element == null)
     {
         return null;
     }
     if (this.importedTypes[element.SchemaType] != null)
     {
         return (string) this.importedTypes[element.SchemaType];
     }
     IList list = schemas.GetSchemas(element.QualifiedName.Namespace);
     if (list.Count != 1)
     {
         return null;
     }
     XmlSchema schema = list[0] as XmlSchema;
     if (schema == null)
     {
         return null;
     }
     MemoryStream stream = new MemoryStream();
     schema.Write(stream);
     stream.Position = 0L;
     DesignDataSource designDS = new DesignDataSource();
     designDS.ReadXmlSchema(stream, null);
     stream.Close();
     string str = TypedDataSetGenerator.GenerateInternal(designDS, compileUnit, mainNamespace, codeProvider, this.dataSetGenerateOptions, null);
     this.importedTypes.Add(element.SchemaType, str);
     return str;
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:30,代码来源:TypedDataSetSchemaImporterExtension.cs

示例2: GenerateTypedDataSet

 internal string GenerateTypedDataSet(XmlSchemaElement element, XmlSchemas schemas, CodeNamespace codeNamespace, StringCollection references, CodeDomProvider codeProvider)
 {
     if (element == null)
     {
         return null;
     }
     if (this.importedTypes[element.SchemaType] != null)
     {
         return (string) this.importedTypes[element.SchemaType];
     }
     IList list = schemas.GetSchemas(element.QualifiedName.Namespace);
     if (list.Count != 1)
     {
         return null;
     }
     XmlSchema schema = list[0] as XmlSchema;
     if (schema == null)
     {
         return null;
     }
     DataSet dataSet = new DataSet();
     using (MemoryStream stream = new MemoryStream())
     {
         schema.Write(stream);
         stream.Position = 0L;
         dataSet.ReadXmlSchema(stream);
     }
     string name = new TypedDataSetGenerator().GenerateCode(dataSet, codeNamespace, codeProvider.CreateGenerator()).Name;
     this.importedTypes.Add(element.SchemaType, name);
     references.Add("System.Data.dll");
     return name;
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:32,代码来源:DataSetSchemaImporterExtension.cs

示例3: ImportSchemaType

		public override string ImportSchemaType(string name, string schemaNamespace, XmlSchemaObject context, XmlSchemas schemas, XmlSchemaImporter importer, CodeCompileUnit compileUnit, CodeNamespace mainNamespace, CodeGenerationOptions options, CodeDomProvider codeProvider) {
			IList values = schemas.GetSchemas(schemaNamespace);
			if (values.Count != 1) {
				return null;
			}
			XmlSchema schema = values[0] as XmlSchema;
			if (schema == null)
				return null;
			XmlSchemaType type = (XmlSchemaType)schema.SchemaTypes[new XmlQualifiedName(name, schemaNamespace)];
			return ImportSchemaType(type, context, schemas, importer, compileUnit, mainNamespace, options, codeProvider);
		}
开发者ID:GodLesZ,项目名称:svn-dump,代码行数:11,代码来源:DataTableSchemaImporterExtension.cs

示例4: GenerateTypedDataSet

        internal string GenerateTypedDataSet(XmlSchemaElement element, XmlSchemas schemas, CodeNamespace codeNamespace, StringCollection references, CodeDomProvider codeProvider) {
            if (element == null)
                return null;

            if (importedTypes[element.SchemaType] != null)
                return (string)importedTypes[element.SchemaType];

            IList values = schemas.GetSchemas(element.QualifiedName.Namespace);
            if (values.Count != 1) {
                return null;
            }
            XmlSchema schema = values[0] as XmlSchema;
            if (schema == null)
                return null;

            DataSet ds = new DataSet();

            // 
            using (MemoryStream stream = new MemoryStream()) {
                schema.Write(stream);
                stream.Position = 0;
                ds.ReadXmlSchema(stream);
            }

#pragma warning disable 618 // ignore obsolete warning about TypedDataSetGenerator
            CodeTypeDeclaration dsClass = new TypedDataSetGenerator().GenerateCode(ds, codeNamespace, codeProvider.CreateGenerator());
#pragma warning restore 618
            string typeName = dsClass.Name;
            importedTypes.Add(element.SchemaType, typeName);
            references.Add("System.Data.dll");
            return typeName;
        }
开发者ID:JokerMisfits,项目名称:linux-packaging-mono,代码行数:32,代码来源:DataSet.cs

示例5: ImportSchemaType

        /// <devdoc>
        ///    <para>[To be supplied.]</para>
        /// </devdoc>
        public override string ImportSchemaType(XmlSchemaType type, XmlSchemaObject context, XmlSchemas schemas, XmlSchemaImporter importer, CodeCompileUnit compileUnit, CodeNamespace mainNamespace, CodeGenerationOptions options, CodeDomProvider codeProvider) {
            if (type == null) {
                return null;
            }
            if (importedTypes[type] != null) {
                mainNamespace.Imports.Add(new CodeNamespaceImport(typeof(DataSet).Namespace));
                compileUnit.ReferencedAssemblies.Add("System.Data.dll");
                return (string)importedTypes[type];
            }
            if (!(context is XmlSchemaElement))
                return null;

            XmlSchemaElement e = (XmlSchemaElement)context;

            // recognizing the following is important, but not as part of SQLPT 120015394: Support WSI Compliant WSDL for DataSet
            // <xs:element name="NewDataSet" msdata:IsDataSet="true">
            // see also SQLBU 338644, 410965, 423446
            //if (IsDataSet(e))
            //{
            //    return GenerateTypedDataSet(e, schemas, mainNamespace, compileUnit.ReferencedAssemblies, codeProvider);
            //}

            if (type is XmlSchemaComplexType) {
                XmlSchemaComplexType ct = (XmlSchemaComplexType)type;

                if (ct.Particle is XmlSchemaSequence)
                {
                    XmlSchemaObjectCollection items = ((XmlSchemaSequence)ct.Particle).Items;
                    if ((2 == items.Count) && (items[0] is XmlSchemaAny) && (items[1] is XmlSchemaAny))
                    {
                        XmlSchemaAny any0 = (XmlSchemaAny)items[0];
                        XmlSchemaAny any1 = (XmlSchemaAny)items[1];
                        if ((any0.Namespace == XmlSchema.Namespace) && (any1.Namespace == "urn:schemas-microsoft-com:xml-diffgram-v1"))
                        {   // new diffgramm format
                            string ns = null;
                            foreach (XmlSchemaAttribute a in ct.Attributes)
                            {
                                if (a.Name == "namespace")
                                {
                                    ns = a.FixedValue.Trim();
                                    break;
                                }
                            }
                            bool isDataSet = false;

                            // check for DataSet or DataTable
                            if (((XmlSchemaSequence)ct.Particle).MaxOccurs == Decimal.MaxValue)
                            {
                                isDataSet = true;
                            }
                            else if (any0.MaxOccurs == Decimal.MaxValue)
                            {
                                isDataSet = false;
                            }
                            else
                            {
                                return null;
                            }

                            if (ns == null)
                            {   //Un-Typed DataSet / DataTable
                                string typeName = isDataSet ? typeof(DataSet).FullName : typeof(DataTable).FullName;
                                importedTypes.Add(type, typeName);
                                mainNamespace.Imports.Add(new CodeNamespaceImport(typeof(DataSet).Namespace));
                                compileUnit.ReferencedAssemblies.Add("System.Data.dll");
                                return typeName;
                            }
                            else
                            {   // Typed DataSet / DataTable
                                foreach (XmlSchema schema in schemas.GetSchemas(ns))
                                {
                                    if ((schema != null) && (schema.Id != null))
                                    {
                                        XmlSchemaElement ds = FindDataSetElement(schema); // implement  FindDataTableElement(schema)
                                        if (ds != null)
                                        {
                                            return ImportSchemaType(ds.SchemaType, ds, schemas, importer, compileUnit, mainNamespace, options, codeProvider);
                                        }
                                        // else return null
                                    }
                                }
                                return null;
                            }
                        }
                    }
                }
                if (ct.Particle is XmlSchemaSequence || ct.Particle is XmlSchemaAll) {
                    XmlSchemaObjectCollection items = ((XmlSchemaGroupBase)ct.Particle).Items;
                    if (items.Count == 2) {
                        if (!(items[0] is XmlSchemaElement && items[1] is XmlSchemaAny)) return null;
                        XmlSchemaElement schema = (XmlSchemaElement)items[0];
                        if (!(schema.RefName.Name == "schema" && schema.RefName.Namespace == XmlSchema.Namespace)) return null;
                        string typeName = typeof(DataSet).FullName;
                        importedTypes.Add(type, typeName);
                        mainNamespace.Imports.Add(new CodeNamespaceImport(typeof(DataSet).Namespace));
                        compileUnit.ReferencedAssemblies.Add("System.Data.dll");
                        return typeName;
//.........这里部分代码省略.........
开发者ID:JokerMisfits,项目名称:linux-packaging-mono,代码行数:101,代码来源:DataSet.cs

示例6: CreateSchema

 Message CreateSchema(Type body, bool isXmlSerializerType)
 {
     System.Collections.IEnumerable schemas;
     if (isXmlSerializerType)
     {
         XmlReflectionImporter importer = new XmlReflectionImporter();
         XmlTypeMapping typeMapping = importer.ImportTypeMapping(body);
         XmlSchemas s = new XmlSchemas();
         XmlSchemaExporter exporter = new XmlSchemaExporter(s);
         exporter.ExportTypeMapping(typeMapping);
         schemas = s.GetSchemas(null);
     }
     else
     {
         XsdDataContractExporter exporter = new XsdDataContractExporter();
         exporter.Export(body);
         schemas = exporter.Schemas.Schemas();
     }
     using (MemoryStream stream = new MemoryStream())
     {
         XmlWriterSettings xws = new XmlWriterSettings() { Indent = true };
         using (XmlWriter w = XmlWriter.Create(stream, xws))
         {
             w.WriteStartElement("Schemas");
             foreach (XmlSchema schema in schemas)
             {
                 if (schema.TargetNamespace != "http://www.w3.org/2001/XMLSchema")
                 {
                     schema.Write(w);
                 }
             }
         }
         stream.Seek(0, SeekOrigin.Begin);
         using (XmlReader reader = XmlReader.Create(stream))
         {
             return Message.CreateMessage(MessageVersion.None, null, XElement.Load(reader, LoadOptions.PreserveWhitespace));
         }
     }
 }
开发者ID:pusp,项目名称:o2platform,代码行数:39,代码来源:HelpPageInvoker.cs

示例7: ImportSchemaType

 public override string ImportSchemaType(XmlSchemaType type, XmlSchemaObject context, XmlSchemas schemas, XmlSchemaImporter importer, CodeCompileUnit compileUnit, CodeNamespace mainNamespace, CodeGenerationOptions options, CodeDomProvider codeProvider)
 {
     if (type != null)
     {
         if (!(context is XmlSchemaElement))
         {
             return null;
         }
         XmlSchemaElement e = (XmlSchemaElement) context;
         if (IsDataSet(e))
         {
             if (this.importedTypes[type] != null)
             {
                 return (string) this.importedTypes[type];
             }
             return this.GenerateTypedDataSet(e, schemas, compileUnit, mainNamespace, codeProvider);
         }
         if (type is XmlSchemaComplexType)
         {
             XmlSchemaComplexType type2 = (XmlSchemaComplexType) type;
             if (type2.Particle is XmlSchemaSequence)
             {
                 XmlSchemaObjectCollection items = ((XmlSchemaSequence) type2.Particle).Items;
                 if (((items.Count == 2) && (items[0] is XmlSchemaAny)) && (items[1] is XmlSchemaAny))
                 {
                     XmlSchemaAny any = (XmlSchemaAny) items[0];
                     XmlSchemaAny any2 = (XmlSchemaAny) items[1];
                     if ((any.Namespace == "http://www.w3.org/2001/XMLSchema") && (any2.Namespace == "urn:schemas-microsoft-com:xml-diffgram-v1"))
                     {
                         string ns = null;
                         string str2 = null;
                         foreach (XmlSchemaAttribute attribute in type2.Attributes)
                         {
                             if (attribute.Name == "namespace")
                             {
                                 ns = attribute.FixedValue.Trim();
                             }
                             else if (attribute.Name == "tableTypeName")
                             {
                                 str2 = attribute.FixedValue.Trim();
                             }
                             if ((ns != null) && (str2 != null))
                             {
                                 break;
                             }
                         }
                         if (ns == null)
                         {
                             return null;
                         }
                         IList list = schemas.GetSchemas(ns);
                         if (list.Count != 1)
                         {
                             return null;
                         }
                         XmlSchema schema = list[0] as XmlSchema;
                         if ((schema == null) || (schema.Id == null))
                         {
                             return null;
                         }
                         XmlSchemaElement element2 = this.FindDataSetElement(schema, schemas);
                         if (element2 == null)
                         {
                             return null;
                         }
                         string str3 = this.ImportSchemaType(element2.SchemaType, element2, schemas, importer, compileUnit, mainNamespace, options, codeProvider);
                         if (str2 == null)
                         {
                             return str3;
                         }
                         return CodeGenHelper.GetTypeName(codeProvider, str3, str2);
                     }
                 }
             }
             if ((type2.Particle is XmlSchemaSequence) || (type2.Particle is XmlSchemaAll))
             {
                 XmlSchemaObjectCollection objects2 = ((XmlSchemaGroupBase) type2.Particle).Items;
                 if (objects2.Count == 1)
                 {
                     if (objects2[0] is XmlSchemaAny)
                     {
                         XmlSchemaAny any3 = (XmlSchemaAny) objects2[0];
                         if (any3.Namespace == null)
                         {
                             return null;
                         }
                         if (any3.Namespace.IndexOf('#') >= 0)
                         {
                             return null;
                         }
                         if (any3.Namespace.IndexOf(' ') >= 0)
                         {
                             return null;
                         }
                         IList list2 = schemas.GetSchemas(any3.Namespace);
                         if (list2.Count != 1)
                         {
                             return null;
                         }
                         XmlSchema schema2 = list2[0] as XmlSchema;
//.........这里部分代码省略.........
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:101,代码来源:TypedDataSetSchemaImporterExtension.cs

示例8: ImportSchemaType

 public override string ImportSchemaType(XmlSchemaType type, XmlSchemaObject context, XmlSchemas schemas, XmlSchemaImporter importer, CodeCompileUnit compileUnit, CodeNamespace mainNamespace, CodeGenerationOptions options, CodeDomProvider codeProvider)
 {
     if (type != null)
     {
         if (this.importedTypes[type] != null)
         {
             mainNamespace.Imports.Add(new CodeNamespaceImport(typeof(DataSet).Namespace));
             compileUnit.ReferencedAssemblies.Add("System.Data.dll");
             return (string) this.importedTypes[type];
         }
         if (!(context is XmlSchemaElement))
         {
             return null;
         }
         XmlSchemaElement element1 = (XmlSchemaElement) context;
         if (type is XmlSchemaComplexType)
         {
             XmlSchemaComplexType type2 = (XmlSchemaComplexType) type;
             if (type2.Particle is XmlSchemaSequence)
             {
                 XmlSchemaObjectCollection items = ((XmlSchemaSequence) type2.Particle).Items;
                 if (((2 == items.Count) && (items[0] is XmlSchemaAny)) && (items[1] is XmlSchemaAny))
                 {
                     XmlSchemaAny any2 = (XmlSchemaAny) items[0];
                     XmlSchemaAny any3 = (XmlSchemaAny) items[1];
                     if ((any2.Namespace == "http://www.w3.org/2001/XMLSchema") && (any3.Namespace == "urn:schemas-microsoft-com:xml-diffgram-v1"))
                     {
                         string ns = null;
                         foreach (XmlSchemaAttribute attribute in type2.Attributes)
                         {
                             if (attribute.Name == "namespace")
                             {
                                 ns = attribute.FixedValue.Trim();
                                 break;
                             }
                         }
                         bool flag = false;
                         if (((XmlSchemaSequence) type2.Particle).MaxOccurs == 79228162514264337593543950335M)
                         {
                             flag = true;
                         }
                         else if (any2.MaxOccurs == 79228162514264337593543950335M)
                         {
                             flag = false;
                         }
                         else
                         {
                             return null;
                         }
                         if (ns == null)
                         {
                             string str4 = flag ? typeof(DataSet).FullName : typeof(DataTable).FullName;
                             this.importedTypes.Add(type, str4);
                             mainNamespace.Imports.Add(new CodeNamespaceImport(typeof(DataSet).Namespace));
                             compileUnit.ReferencedAssemblies.Add("System.Data.dll");
                             return str4;
                         }
                         foreach (XmlSchema schema2 in schemas.GetSchemas(ns))
                         {
                             if ((schema2 != null) && (schema2.Id != null))
                             {
                                 XmlSchemaElement element2 = this.FindDataSetElement(schema2);
                                 if (element2 != null)
                                 {
                                     return this.ImportSchemaType(element2.SchemaType, element2, schemas, importer, compileUnit, mainNamespace, options, codeProvider);
                                 }
                             }
                         }
                         return null;
                     }
                 }
             }
             if ((type2.Particle is XmlSchemaSequence) || (type2.Particle is XmlSchemaAll))
             {
                 XmlSchemaObjectCollection objects = ((XmlSchemaGroupBase) type2.Particle).Items;
                 if (objects.Count == 2)
                 {
                     if (!(objects[0] is XmlSchemaElement) || !(objects[1] is XmlSchemaAny))
                     {
                         return null;
                     }
                     XmlSchemaElement element3 = (XmlSchemaElement) objects[0];
                     if ((element3.RefName.Name != "schema") || (element3.RefName.Namespace != "http://www.w3.org/2001/XMLSchema"))
                     {
                         return null;
                     }
                     string fullName = typeof(DataSet).FullName;
                     this.importedTypes.Add(type, fullName);
                     mainNamespace.Imports.Add(new CodeNamespaceImport(typeof(DataSet).Namespace));
                     compileUnit.ReferencedAssemblies.Add("System.Data.dll");
                     return fullName;
                 }
                 if (1 == objects.Count)
                 {
                     XmlSchemaAny any = objects[0] as XmlSchemaAny;
                     if (((any != null) && (any.Namespace != null)) && (any.Namespace.IndexOfAny(new char[] { '#', ' ' }) < 0))
                     {
                         foreach (XmlSchema schema in schemas.GetSchemas(any.Namespace))
                         {
                             if ((schema != null) && (schema.Id != null))
//.........这里部分代码省略.........
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:101,代码来源:DataSetSchemaImporterExtension.cs


注:本文中的System.Xml.Serialization.XmlSchemas.GetSchemas方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。