.setNameSpaceID( ReportDesign.TEMPLATE_PARAMETER_NAME_SPACE );
.setNameSpaceID( Module.TEMPLATE_PARAMETER_NAME_SPACE );
		public void parseAttrs( Attributes attrs )		{			String name = attrs.getValue( NAME_ATTRIB );			String displayNameID = attrs.getValue( DISPLAY_NAME_ID_ATTRIB );			boolean ok = true;			if ( StringUtil.isBlank( name ) )			{				errorHandler						.semanticError( new MetaDataParserException(								MetaDataParserException.DESIGN_EXCEPTION_NAME_REQUIRED ) );				ok = false;			}			if ( StringUtil.isBlank( displayNameID ) )			{				errorHandler						.semanticError( new MetaDataParserException(								MetaDataParserException.DESIGN_EXCEPTION_DISPLAY_NAME_ID_REQUIRED ) );				ok = false;			}			if ( !ok )				return;			elementDefn = new ElementDefn( );			elementDefn.setName( name );			elementDefn.setAbstract( getBooleanAttrib( attrs,					IS_ABSTRACT_ATTRIB, false ) );			elementDefn.setDisplayNameKey( displayNameID );			elementDefn.setExtends( attrs.getValue( EXTENDS_ATTRIB ) );			elementDefn.setHasStyle( getBooleanAttrib( attrs, HAS_STYLE_ATTRIB,					false ) );			elementDefn.setSelector( attrs.getValue( SELECTOR_ATTRIB ) );			elementDefn.setAllowsUserProperties( getBooleanAttrib( attrs,					ALLOWS_USER_PROPERTIES_ATTRIB, true ) );			elementDefn.setJavaClass( attrs.getValue( JAVA_CLASS_ATTRIB ) );			elementDefn.setCanExtend( getBooleanAttrib( attrs,					CAN_EXTEND_ATTRIB, true ) );			elementDefn.setSince( attrs.getValue( SINCE_ATTRIB ) );			elementDefn.setXmlName( attrs.getValue( XML_NAME_ATTRIB ) );			String nameRequired = attrs.getValue( IS_NAME_REQUIRED_ATTRIB );			if ( nameRequired != null )			{				boolean flag = parseBoolean( nameRequired, false );				elementDefn.setNameOption( flag						? MetaDataConstants.REQUIRED_NAME						: MetaDataConstants.OPTIONAL_NAME );			}			String ns = attrs.getValue( NAME_SPACE_ATTRIB );			if ( ns == null || ns.trim( ).length( ) == 0 )			{				// Inherit default name space			}			else if ( ns.equalsIgnoreCase( STYLE_NS_NAME ) )				elementDefn.setNameSpaceID( ReportDesign.STYLE_NAME_SPACE );			else if ( ns.equalsIgnoreCase( THEME_NS_NAME ) )				elementDefn.setNameSpaceID( Library.THEME_NAME_SPACE );			else if ( ns.equalsIgnoreCase( DATA_SET_NS_NAME ) )				elementDefn.setNameSpaceID( Module.DATA_SET_NAME_SPACE );			else if ( ns.equalsIgnoreCase( DATA_SOURCE_NS_NAME ) )				elementDefn.setNameSpaceID( Module.DATA_SOURCE_NAME_SPACE );			else if ( ns.equalsIgnoreCase( ELEMENT_NS_NAME ) )				elementDefn.setNameSpaceID( Module.ELEMENT_NAME_SPACE );			else if ( ns.equalsIgnoreCase( PARAMETER_NS_NAME ) )				elementDefn.setNameSpaceID( Module.PARAMETER_NAME_SPACE );			else if ( ns.equalsIgnoreCase( MASTER_PAGE_NS_NAME ) )				elementDefn.setNameSpaceID( Module.PAGE_NAME_SPACE );			else if ( ns.equalsIgnoreCase( NO_NS_NAME ) )				elementDefn.setNameSpaceID( MetaDataConstants.NO_NAME_SPACE );			else if ( ns					.equalsIgnoreCase( TEMPLATE_PARAMETER_DEFINITION_NS_NAME ) )				elementDefn						.setNameSpaceID( ReportDesign.TEMPLATE_PARAMETER_NAME_SPACE );			else				errorHandler						.semanticError( new MetaDataParserException(								MetaDataParserException.DESIGN_EXCEPTION_INVALID_NAME_SPACE ) );			try			{				dictionary.addElementDefn( elementDefn );			}			catch ( MetaDataException e )			{				errorHandler						.semanticError( new MetaDataParserException(								e,								MetaDataParserException.DESIGN_EXCEPTION_BUILD_FAILED ) );			}		}