/// <summary> /// Gets the annotated attributes. /// </summary> /// <param name="schema">The schema.</param> /// <param name="annotated">The annotated.</param> /// <param name="nameSpace">The name space.</param> /// <returns>The list of all the attributes.</returns> public static List <XSDAttribute> GetAnnotatedAttributes(Schema schema, XMLSchema.annotated annotated, string nameSpace) { // Attributes enumeration List <XSDAttribute> listAttributes = new List <XSDAttribute>(); if (annotated is XMLSchema.element) { XMLSchema.element element = annotated as XMLSchema.element; if (element.Item is XMLSchema.complexType) { XMLSchema.complexType complexType = element.Item as XMLSchema.complexType; listAttributes.AddRange(GetComplexTypeAttributes(schema, complexType, nameSpace)); } else if (element.type != null) { //XSDObject xsdObject = this.schema.ElementsByName[DiagramHelpers.QualifiedNameToFullName("type", element.type)] as XSDObject; //if (xsdObject != null) XSDObject xsdObject; if (schema.ElementsByName.TryGetValue(DiagramHelpers.QualifiedNameToFullName("type", element.type), out xsdObject) && xsdObject != null) { XMLSchema.annotated annotatedElement = xsdObject.Tag as XMLSchema.annotated; if (annotatedElement is XMLSchema.complexType) { XMLSchema.complexType complexType = annotatedElement as XMLSchema.complexType; listAttributes.AddRange(GetComplexTypeAttributes(schema, complexType, nameSpace)); } else { } } else { } } else { } } else if (annotated is XMLSchema.complexType) { XMLSchema.complexType complexType = annotated as XMLSchema.complexType; listAttributes.AddRange(GetComplexTypeAttributes(schema, complexType, nameSpace)); } else if (annotated is XMLSchema.simpleType) { XMLSchema.attribute attr = new XMLSchema.attribute(); XMLSchema.localSimpleType def = new XMLSchema.localSimpleType(); def.Item = (annotated as XMLSchema.simpleType).Item; attr.simpleType = def; string type = ""; if (def.Item is XMLSchema.restriction) { type = (def.Item as XMLSchema.restriction)[email protected]; } XSDAttribute XSDattr = new XSDAttribute("filename", (annotated as XMLSchema.simpleType).name, "namespace", type, false, "", "", attr); listAttributes.Add(XSDattr); } return(listAttributes); }
private static List <XSDAttribute> GetComplexTypeAttributes(Schema schema, XMLSchema.complexType complexType, string nameSpace) { List <XSDAttribute> listAttributes = new List <XSDAttribute>(); DiagramHelpers.ParseComplexTypeAttributes(schema, nameSpace, listAttributes, complexType, false); return(listAttributes); }