Exemplo n.º 1
0
        private void processSimpleType(XmlNode simpleTypeNode)
        {
            ClassBuilder cb = new ClassBuilder();
            XmlNodeList children = simpleTypeNode.ChildNodes;
            foreach( XmlNode child in children )
            {
                cb.Name = simpleTypeNode.Attributes["name"].Value.Replace( "cs:", "");
                if( child.Name.Equals("xs:annotation") )
                {
                    XmlNode docmentation = getChild("xs:documentation", child);
                    if( docmentation != null )
                        cb.Description = docmentation.Value;

                }
                else if( child.Name.Equals("xs:restriction") )
                {
                    XmlAttribute base_ = child.Attributes["base"];
                    if( base_ != null )
                        cb.Base_ = base_.Value.Replace("cs:", "");

                    XmlNode pattern = getChild("xs:pattern", child);
                    if( pattern != null )
                        cb.RegExp = pattern.Attributes["value"].Value;

                }
                else if( child.Name.Equals("xs:list") )
                {
                }
                else if( child.Name.Equals("xs:union") )
                {
                    XmlNodeList gcs = child.ChildNodes;
                    foreach( XmlNode gc in gcs )
                    {
                        if( gc.Name.Equals("xs:simpleType") )
                            processSimpleType(gc);
                    }
                }
                else if( child.Name.Equals("xs:enumeration") )
                {
                    cb.addEnumeration( child.Attributes["value"].Value );
                }
                else
                {
                }

            }

            Console.WriteLine(cb.writeClass());
        }