コード例 #1
0
 private void GenerateRootElementValidation(List <XmlElement> rootElements)
 {
     for (var i = 0; i < rootElements.Count; i++)
     {
         var rootElement = rootElements[i];
         _stringBuilder.AppendLine($"{(i == 0 ? "" : "else ")}if ({ROOT_ELEMENT_VARIABLE_NAME}.Name.LocalName.Equals(\"{rootElement.Name}\", StringComparison.OrdinalIgnoreCase))");
         using (new CodeGeneratorBlockWrapper(_stringBuilder))
         {
             XmlElementNameCorrectorCodeGenerator.GenerateElementNameCorrector(rootElement, _stringBuilder, ROOT_ELEMENT_VARIABLE_NAME);
             var elementCheckMethodName = XmlCodeGeneratorMethodNameProvider.GetNameForElementTypeCheckMethod(rootElement.Type);
             _stringBuilder.AppendLine($"{elementCheckMethodName}({ROOT_ELEMENT_VARIABLE_NAME});");
         }
     }
 }
コード例 #2
0
 public static void GenerateAttributesCheckingCode(XmlTypeWithAttributes xmlType, StringBuilder stringBuilder)
 {
     if (!xmlType.Attributes.Any())
     {
         return;
     }
     stringBuilder.AppendLine($"foreach (var {CodeGeneratorConstants.ELEMENT_CHECK_METHOD_CHILD_ATTRIBUTE_VARIABLE_NAME} in {CodeGeneratorConstants.ELEMENT_CHECK_METHOD_ELEMENT_VARIABLE_NAME}.Attributes().ToList())");
     using (new CodeGeneratorBlockWrapper(stringBuilder))
     {
         for (var i = 0; i < xmlType.Attributes.Count; i++)
         {
             var attribute = xmlType.Attributes[i];
             stringBuilder.AppendLine($"{(i == 0 ? "" : "else ")}if ({CodeGeneratorConstants.ELEMENT_CHECK_METHOD_CHILD_ATTRIBUTE_VARIABLE_NAME}.Name.LocalName.Equals(\"{attribute.Name}\", StringComparison.OrdinalIgnoreCase))");
             using (new CodeGeneratorBlockWrapper(stringBuilder))
             {
                 var elementCheckMethodName = XmlCodeGeneratorMethodNameProvider.GetNameForAttributeCheckMethod(attribute.Type);
                 stringBuilder.AppendLine($"{elementCheckMethodName}({CodeGeneratorConstants.ELEMENT_CHECK_METHOD_CHILD_ATTRIBUTE_VARIABLE_NAME});");
                 XmlElementNameCorrectorCodeGenerator.GenerateAttributeNameCorrector(attribute, stringBuilder, CodeGeneratorConstants.ELEMENT_CHECK_METHOD_CHILD_ATTRIBUTE_VARIABLE_NAME);
             }
         }
     }
 }
コード例 #3
0
        private void GenerateElementsCheckingCode(XmlComplexType xmlType)
        {
            if (!xmlType.PossibleChildElements.Any())
            {
                return;
            }
            _stringBuilder.AppendLine($"foreach (var {CHILD_ELEMENT_VARIABLE_NAME} in {CodeGeneratorConstants.ELEMENT_CHECK_METHOD_ELEMENT_VARIABLE_NAME}.Elements().ToList())");
            using (new CodeGeneratorBlockWrapper(_stringBuilder))
            {
                for (var i = 0; i < xmlType.PossibleChildElements.Count; i++)
                {
                    var element = xmlType.PossibleChildElements[i];

                    _stringBuilder.AppendLine($"{(i == 0 ? "" : "else ")}if ({CHILD_ELEMENT_VARIABLE_NAME}.Name.LocalName.Equals(\"{element.Name}\", StringComparison.OrdinalIgnoreCase))");
                    using (new CodeGeneratorBlockWrapper(_stringBuilder))
                    {
                        XmlElementNameCorrectorCodeGenerator.GenerateElementNameCorrector(element, _stringBuilder, CHILD_ELEMENT_VARIABLE_NAME);
                        var elementCheckMethodName = XmlCodeGeneratorMethodNameProvider.GetNameForElementTypeCheckMethod(element.Type);
                        _stringBuilder.AppendLine($"{elementCheckMethodName}({CHILD_ELEMENT_VARIABLE_NAME});");
                    }
                }
            }
        }