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 }
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(); }
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); }
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(); }