public XmlType ParseElement(XElement element) { if (IsUnknownType(element)) { var unknownTypeName = element.Attributes().Single(a => a.Name == "type").Value; return(_xmlUnknownTypeParser.GetUnknownTypeDefinitionByName(unknownTypeName)); } var typeDefinitionElement = GetTypeDefinitionElement(element); var typeName = GetTypeName(typeDefinitionElement); if (_simpleTypesByTypeName.ContainsKey(typeName)) { return(_simpleTypesByTypeName[typeName]); } XmlSimpleType result; if (_enumerationRestrictionParser.IsEnumerationType(typeDefinitionElement)) { var enumerationValues = _enumerationRestrictionParser.GetEnumerationValues(typeDefinitionElement); result = new XmlEnumerationType { Name = typeName, EnumerationValues = enumerationValues }; } else { result = new XmlSimpleType { Name = typeName }; } _simpleTypesByTypeName.Add(typeName, result); return(result); }
private void GenerateEnumerationAttributeCheckMethod(XmlEnumerationType xmlEnumerationType) { EnumerationTypeValueCheckGenerator.GenerateEnumerationValueCheckingCode(xmlEnumerationType.EnumerationValues, _stringBuilder, ATTRIBUTE_VARIABLE_NAME); }