/// <summary>

		/// Attempts to locate the type name in the specified schema.

		/// </summary>

		/// <param name="name">The type to look up.</param>

		/// <param name="schemaCompletionData">The schema completion data to use to

		/// find the type.</param>

		/// <param name="elementName">The element to determine what sort of type it is

		/// (e.g. group, attribute, element).</param>

		/// <returns><see langword="null"/> if no match can be found.</returns>

		XmlSchemaObject FindSchemaObjectType(string name, XmlSchemaCompletionData schemaCompletionData, string elementName)

		{

			QualifiedName qualifiedName = schemaCompletionData.CreateQualifiedName(name);

			XmlSchemaCompletionData qualifiedNameSchema = FindSchema(qualifiedName.Namespace);

			if (qualifiedNameSchema != null) {

				schemaCompletionData = qualifiedNameSchema;

			}

			switch (elementName) {

				case "element":

					return schemaCompletionData.FindComplexType(qualifiedName);

				case "attribute":

					return schemaCompletionData.FindSimpleType(qualifiedName.Name);

			}

			return null;

		}
		/// <summary>

		/// Attempts to locate the reference name in the specified schema.

		/// </summary>

		/// <param name="name">The reference to look up.</param>

		/// <param name="schemaCompletionData">The schema completion data to use to

		/// find the reference.</param>

		/// <param name="elementName">The element to determine what sort of reference it is

		/// (e.g. group, attribute, element).</param>

		/// <returns><see langword="null"/> if no match can be found.</returns>

		XmlSchemaObject FindSchemaObjectReference(string name, XmlSchemaCompletionData schemaCompletionData, string elementName)

		{

			QualifiedName qualifiedName = schemaCompletionData.CreateQualifiedName(name);

			XmlSchemaCompletionData qualifiedNameSchema = FindSchema(qualifiedName.Namespace);

			if (qualifiedNameSchema != null) {

				schemaCompletionData = qualifiedNameSchema;

			}

			switch (elementName) {

				case "element":

					return schemaCompletionData.FindElement(qualifiedName);

				case "attribute":

					return schemaCompletionData.FindAttribute(qualifiedName.Name);

				case "group":

					return schemaCompletionData.FindGroup(qualifiedName.Name);

				case "attributeGroup":

					return schemaCompletionData.FindAttributeGroup(qualifiedName.Name);

			}

			return null;

		}