Example #1
0
        /// <summary>
        /// Shamelessly taken from Xsd2Code project
        /// </summary>
        private bool ContainsTypeName(XmlSchema schema, CodeTypeDeclaration type)
        {
            //TODO: Does not work for combined anonymous types
            //fallback: Check if the namespace attribute of the type equals the namespace of the file.
            //first, find the XmlType attribute.
            var ns = ExtractNamespace(type);

            if (ns != null && ns != schema.TargetNamespace)
            {
                return(false);
            }

            if (!Options.ExcludeImportedTypesByNameAndNamespace)
            {
                return(true);
            }

            string typeName = type.GetXmlName();

            foreach (var item in schema.Items)
            {
                var complexItem = item as XmlSchemaComplexType;
                if (complexItem != null)
                {
                    if (complexItem.Name == typeName)
                    {
                        return(true);
                    }
                }

                var simpleItem = item as XmlSchemaSimpleType;
                if (simpleItem != null)
                {
                    if (simpleItem.Name == typeName)
                    {
                        return(true);
                    }
                }


                var elementItem = item as XmlSchemaElement;
                if (elementItem != null)
                {
                    if (elementItem.Name == typeName)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }