Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 private void GenerateEnumerationAttributeCheckMethod(XmlEnumerationType xmlEnumerationType)
 {
     EnumerationTypeValueCheckGenerator.GenerateEnumerationValueCheckingCode(xmlEnumerationType.EnumerationValues, _stringBuilder, ATTRIBUTE_VARIABLE_NAME);
 }