Esempio n. 1
0
        protected void BuildAttribute(XmlSchemaAttribute attribute,
                                      ObjectDef objectDef)
        {
            FieldDef def = null;
            bool     isEnum;
            string   dataType =
                GetClassTypeFromDataType
                    (attribute.AttributeSchemaType, attribute.QualifiedName.Name, objectDef.Name,
                    out isEnum);

            if (isEnum)
            {
                def = objectDef.DefineAttr(attribute.QualifiedName.Name, null);
                def.SetEnum(dataType);
            }
            else
            {
                def = objectDef.DefineAttr(attribute.QualifiedName.Name, dataType);
            }

            if (attribute.Use == XmlSchemaUse.Required)
            {
                def.SetFlags("R");
            }
            else
            {
                def.SetFlags("O");
            }
            setAnnotation(def, attribute.Annotation);
            // TODO: See if the data type is an enumeration
            //System.Diagnostics.Debug.Assert( ! ( attribute.AttributeType is xmlschemdata
        }
Esempio n. 2
0
        protected internal virtual void onElement(XmlElement node)
        {
            fEnumDef = null;

            String name    = getAttr(node, "name");
            String type    = getAttr(node, "type");
            String flags   = getAttr(node, "flags");
            String enumVal = getAttr(node, "enum");

            StringBuilder buf = new StringBuilder("    > ");

            buf.Append(name);
            if (type != null)
            {
                buf.Append("{");
                buf.Append(type);
                buf.Append("}");
            }

            fFieldDef = fObjectDef.DefineElement(name, type);
            if (flags != null)
            {
                fFieldDef.SetFlags(flags);
            }
            if (enumVal != null)
            {
                fFieldDef.SetEnum(enumVal);
            }
            fFieldDef.RenderAs = getAttr(node, "renderAs");

            String seqOverride = getAttr(node, "sequenceOverride");

            if (seqOverride != null)
            {
                try {
                    fFieldDef.SequenceOverride = int.Parse(seqOverride);
                }
                catch (FormatException nfe) {
                    throw new ParseException("Invalid sequenceOverride value: " + seqOverride, nfe);
                }
            }

            if (!getBooleanAttr(node, "sifdtd", true))
            {
                fFieldDef.Flags = fFieldDef.Flags | FieldDef.FLAG_NO_SIFDTD;
            }
            if (!getBooleanAttr(node, "encode", true))
            {
                fFieldDef.Flags = fFieldDef.Flags | FieldDef.FLAG_DO_NOT_ENCODE;
            }

            if (getBooleanAttr(node, "collapsed", false))
            {
                fFieldDef.Flags = fFieldDef.Flags | FieldDef.FLAG_COLLAPSED;
            }


            String draft = getAttr(node, "draft");

            if (draft != null && bool.Parse(draft))
            {
                fFieldDef.setDraft();
            }

            fFieldDef.LatestVersion   = fVersion;
            fFieldDef.EarliestVersion = fVersion;

            if ((fFieldDef.Flags & FieldDef.FLAG_MANDATORY) != 0 &&
                !getBooleanAttr(node, "key", true))
            {
                //  By default all attributes with a "R" flag are used to generate
                //  the object's key. However, some attributes have an "R" flag but
                //  are not part of the key. When the key="false" attribute is
                //  specified, set the FLAG_NOT_A_KEY flag.

                fFieldDef.Flags = fFieldDef.Flags | FieldDef.FLAG_NOT_A_KEY;
            }

            Console.WriteLine(buf);

            fFieldDef.Validate();
        }
Esempio n. 3
0
        protected internal virtual void onAttribute(XmlElement node)
        {
            fEnumDef = null;

            String name         = getAttr(node, "name");
            String type         = getAttr(node, "type");
            String flags        = getAttr(node, "flags");
            String enum_Renamed = getAttr(node, "enum");

            System.Diagnostics.Debug.Assert(enum_Renamed != "FTAmountType");

            StringBuilder buffer = new StringBuilder("    - ");

            buffer.Append(name);
            if (type != null)
            {
                buffer.Append("{");
                buffer.Append(type);
                buffer.Append("}");
            }
            // Note: for the purpose of comparision, we want to define this object using the
            // RenderAs value, if present. This is different behavior than ADKGen Does

            string renderAs = getAttr(node, "renderAs");

            if (renderAs != null)
            {
                if (renderAs.StartsWith("xml:"))
                {
                    renderAs = renderAs.Substring(4);
                }
                fFieldDef          = fObjectDef.DefineAttr(renderAs, type);
                fFieldDef.Name     = name;
                fFieldDef.RenderAs = renderAs;
            }
            else
            {
                fFieldDef = fObjectDef.DefineAttr(name, type);
            }

            if (flags != null)
            {
                fFieldDef.SetFlags(flags);
            }
            fFieldDef.SetEnum(enum_Renamed);

            if ((fFieldDef.Flags & FieldDef.FLAG_REQUIRED) != 0 &&
                !getBooleanAttr(node, "key", true))
            {
                //  By default all attributes with a "R" flag are used to generate
                //  the object's key. However, some attributes have an "R" flag but
                //  are not part of the key. When the key="false" attribute is
                //  specified, set the FLAG_NOT_A_KEY flag.

                fFieldDef.Flags = fFieldDef.Flags | FieldDef.FLAG_NOT_A_KEY;
            }

            fFieldDef.LatestVersion   = fVersion;
            fFieldDef.EarliestVersion = fVersion;

            Console.Out.WriteLine(buffer);
        }
Esempio n. 4
0
        protected internal virtual void onElement( XmlElement node )
        {
            fEnumDef = null;

            String name = getAttr( node, "name" );
            String type = getAttr( node, "type" );
            String flags = getAttr( node, "flags" );
            String enumVal = getAttr( node, "enum" );

            StringBuilder buf = new StringBuilder( "    > " );
            buf.Append( name );
            if ( type != null ) {
                buf.Append( "{" );
                buf.Append( type );
                buf.Append( "}" );
            }

            fFieldDef = fObjectDef.DefineElement( name, type );
            if ( flags != null ) {
                fFieldDef.SetFlags( flags );
            }
            if ( enumVal != null ) {
                fFieldDef.SetEnum( enumVal );
            }
            fFieldDef.RenderAs = getAttr( node, "renderAs" );

            String seqOverride = getAttr( node, "sequenceOverride" );
            if ( seqOverride != null ) {
                try {
                    fFieldDef.SequenceOverride = int.Parse( seqOverride );
                }
                catch ( FormatException nfe ) {
                    throw new ParseException( "Invalid sequenceOverride value: " + seqOverride, nfe );
                }
            }

            if ( !getBooleanAttr( node, "sifdtd", true ) ) {
                fFieldDef.Flags = fFieldDef.Flags | FieldDef.FLAG_NO_SIFDTD;
            }
            if ( !getBooleanAttr( node, "encode", true ) ) {
                fFieldDef.Flags = fFieldDef.Flags | FieldDef.FLAG_DO_NOT_ENCODE;
            }

            if ( getBooleanAttr( node, "collapsed", false ) ) {
                fFieldDef.Flags = fFieldDef.Flags | FieldDef.FLAG_COLLAPSED;
            }

            String draft = getAttr( node, "draft" );
            if ( draft != null && bool.Parse( draft ) ) {
                fFieldDef.setDraft();
            }

            fFieldDef.LatestVersion = fVersion;
            fFieldDef.EarliestVersion = fVersion;

            if ( (fFieldDef.Flags & FieldDef.FLAG_MANDATORY) != 0 &&
                 !getBooleanAttr( node, "key", true ) ) {
                //  By default all attributes with a "R" flag are used to generate
                //  the object's key. However, some attributes have an "R" flag but
                //  are not part of the key. When the key="false" attribute is
                //  specified, set the FLAG_NOT_A_KEY flag.

                fFieldDef.Flags = fFieldDef.Flags | FieldDef.FLAG_NOT_A_KEY;
            }

            Console.WriteLine( buf );

            fFieldDef.Validate();
        }