Beispiel #1
0
 private static MultiComplexField ElementToMultiComplexField(XmlElement fieldElm, string fieldId,
     string fieldName)
 {
     if (fieldElm == null)
     {
         return null;
     }
     MultiComplexField multiComplexField =
         (MultiComplexField) SchemaFactory.CreateField(FieldTypeEnum.MULTICOMPLEX);
     multiComplexField.Id = fieldId;
     multiComplexField.Name = fieldName;
     XmlElement fieldsEle = XmlUtils.GetChildElement(fieldElm, "fields");
     if (fieldsEle != null)
     {
         List<XmlElement> fieldEleList = XmlUtils.GetChildElements(fieldsEle, "field");
         foreach (XmlElement subFieldEle in fieldEleList)
         {
             Field fieldFromEle = ElementToField(subFieldEle);
             multiComplexField.Add(fieldFromEle);
         }
     }
     //rules
     XmlElement rulesEle = XmlUtils.GetChildElement(fieldElm, "rules");
     if (rulesEle != null)
     {
         List<XmlElement> ruleEleList = XmlUtils.GetChildElements(rulesEle, "rule");
         foreach (XmlElement ruleEle in ruleEleList)
         {
             Rule rule = ElementToRule(ruleEle, multiComplexField.Id);
             multiComplexField.Add(rule);
         }
     }
     //property
     XmlElement propertiesEle = XmlUtils.GetChildElement(fieldElm, "properties");
     if (propertiesEle != null)
     {
         List<XmlElement> propertyEleList = XmlUtils.GetChildElements(propertiesEle, "property");
         foreach (XmlElement propertyEle in propertyEleList)
         {
             Property.Property property = ElementToProperty(propertyEle, multiComplexField.Id);
             multiComplexField.Add(property);
         }
     }
     //default-values
     XmlElement defaultValuesEle = XmlUtils.GetChildElement(fieldElm, "default-values");
     if (defaultValuesEle != null)
     {
         List<XmlElement> defaultComplexValueEle = XmlUtils.GetChildElements(defaultValuesEle,
             "default-complex-values");
         foreach (XmlElement dcValue in defaultComplexValueEle)
         {
             List<XmlElement> defaultValuesSubFieldList = XmlUtils.GetChildElements(dcValue, "field");
             ComplexValue defaultCvalue = new ComplexValue();
             foreach (XmlElement subFiledValueEle in defaultValuesSubFieldList)
             {
                 Field field = ElementToField(subFiledValueEle);
                 defaultCvalue.Put(field);
             }
             multiComplexField.addDefaultComplexValue(defaultCvalue);
         }
     }
     //multicomplex-values
     List<XmlElement> complexValuesEle = XmlUtils.GetChildElements(fieldElm, "complex-values");
     foreach (XmlElement complexValue in complexValuesEle)
     {
         List<XmlElement> defaultValuesSubFieldList = XmlUtils.GetChildElements(complexValue, "field");
         ComplexValue cvalue = new ComplexValue();
         foreach (XmlElement subFiledValueEle in defaultValuesSubFieldList)
         {
             Field field = ElementToField(subFiledValueEle);
             cvalue.Put(field);
         }
         multiComplexField.AddComplexValue(cvalue);
     }
     return multiComplexField;
 }