Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        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);
        }