if ( propDefn.getDefault( ) != null ) writeEntry( DesignSchemaConstants.PROPERTY_TAG, UserPropertyDefn.DEFAULT_MEMBER, propDefn.getXmlValue( null, propDefn.getDefault( ) ), false );
	protected void writeUserPropertyDefns( DesignElement obj )	{		List props = obj.getLocalUserProperties( );		if ( props == null || props.size( ) == 0 )			return;		writer.startElement( DesignSchemaConstants.LIST_PROPERTY_TAG );		writer.attribute( DesignSchemaConstants.NAME_ATTRIB,				DesignElement.USER_PROPERTIES_PROP );		Iterator iter = props.iterator( );		while ( iter.hasNext( ) )		{			UserPropertyDefn propDefn = (UserPropertyDefn) iter.next( );			writer.startElement( DesignSchemaConstants.STRUCTURE_TAG );			property( propDefn, UserPropertyDefn.NAME_MEMBER );			property( propDefn, UserPropertyDefn.TYPE_MEMBER );			resourceKey( propDefn, UserPropertyDefn.DISPLAY_NAME_ID_MEMBER,					UserPropertyDefn.DISPLAY_NAME_MEMBER );			IChoiceSet choiceSet = propDefn.getChoices( );			if ( choiceSet != null && choiceSet.getChoices( ) != null					&& choiceSet.getChoices( ).length > 0 )			{				writer.startElement( DesignSchemaConstants.LIST_PROPERTY_TAG );				writer.attribute( DesignSchemaConstants.NAME_ATTRIB,						UserPropertyDefn.CHOICES_MEMBER );				IChoice[] choices = choiceSet.getChoices( );				for ( int i = 0; i < choices.length; i++ )				{					UserChoice choice = (UserChoice) choices[i];					writer.startElement( DesignSchemaConstants.STRUCTURE_TAG );					writeEntry( DesignSchemaConstants.PROPERTY_TAG,							UserChoice.NAME_PROP, choice.getName( ), false );					if ( choice.getValue( ) != null )					{						writeEntry( DesignSchemaConstants.PROPERTY_TAG,								UserChoice.VALUE_PROP, choice.getValue( )										.toString( ), false );					}					writeResouceKey( DesignSchemaConstants.TEXT_PROPERTY_TAG,							UserChoice.DISPLAY_NAME_PROP, choice									.getDisplayNameKey( ), choice									.getDisplayName( ), false );					writer.endElement( );				}				writer.endElement( );			}			writer.endElement( );		}		writer.endElement( );	}