Thank you for telling me  :-)
So  do this:
 
  |    TypeBinding beanType = schemaBinding.getType(beanTypeQName);
  | 
  |       /*
  |       ClassMetaData classMetaData = new ClassMetaData();
  |       classMetaData.setImpl(AbstractBeanMetaData.class.getName());
  |       beanType.setClassMetaData(classMetaData);
  |       
  |       QName CLASS = new QName("class");
  |       AttributeBinding attribute = beanType.getAttribute(CLASS);
  |       PropertyMetaData propertyMetaData = new PropertyMetaData();
  |       propertyMetaData.setName("bean");
  |       attribute.setPropertyMetaData(propertyMetaData);
  | 
  |       QName MODE = new QName("mode");
  |       attribute = beanType.getAttribute(MODE);
  |       ValueAdapter modeAdapter = new ValueAdapter()
  |       {
  |          public Object cast(Object o, Class c)
  |          {
  |             String string = (String) o;
  |             return new ControllerMode(string);
  |          }
  |       };
  |       attribute.setValueAdapter(modeAdapter);
  |       */
  |       beanType.setHandler(new DefaultElementHandler()
  |       {
  |          
  |          public Object startElement(Object parent, QName name, 
ElementBinding element)
  |          {
  |             return new AbstractBeanMetaData();
  |          }
  | 
  |          public void attributes(Object o, QName elementName, ElementBinding 
element, Attributes attrs, NamespaceContext nsCtx)
  |          {
  |             AbstractBeanMetaData bean = (AbstractBeanMetaData) o;
  |             for (int i = 0; i < attrs.getLength(); ++i)
  |             {
  |                String localName = attrs.getLocalName(i);
  |                if ("name".equals(localName))
  |                   bean.setName(attrs.getValue(i));
  |                else if ("class".equals(localName))
  |                   bean.setBean(attrs.getValue(i));
  |                else if ("mode".equals(localName))
  |                   bean.setMode(new ControllerMode(attrs.getValue(i)));
  |            else if ("whenRequired".equals(localName))
  |                   bean.set........
  |             }
  |          }
  |       });
  | 
  |   <xsd:complexType name="beanType">
  |       <xsd:annotation>
  |          <xsd:documentation>
  |            [CDATA[
  |            The bean is an instance of a pojo.
  |            
  |            e.g.
  |            <bean name="MyName" class="com.acme.POJO">
  |               <classloader .../>
  |               <constructor .../>
  |               <property .../>
  |               <property .../>
  |               <depends .../>
  |            </bean>
  |            ]]
  |          </xsd:documentation>
  |       </xsd:annotation>
  |       <xsd:sequence>
  |          <xsd:element name="annotation" type="annotationType" minOccurs="0" 
maxOccurs="unbounded"/>
  |          <xsd:element name="classloader" type="classloaderType" 
minOccurs="0"/>
  |          <xsd:element name="constructor" type="constructorType" 
minOccurs="0"/>
  |          <xsd:element name="property" type="propertyType" minOccurs="0" 
maxOccurs="unbounded"/>
  |          <xsd:element name="create" type="lifecycleType" minOccurs="0"/>
  |          <xsd:element name="start" type="lifecycleType" minOccurs="0"/>
  |          <xsd:element name="stop" type="lifecycleType" minOccurs="0"/>
  |          <xsd:element name="destroy" type="lifecycleType" minOccurs="0"/>
  |          <xsd:element name="depends" type="dependsType" minOccurs="0" 
maxOccurs="unbounded"/>
  |          <xsd:element name="demand" type="demandType" minOccurs="0" 
maxOccurs="unbounded"/>
  |          <xsd:element name="supply" type="supplyType" minOccurs="0" 
maxOccurs="unbounded"/>
  |          <xsd:element name="install" type="installType" minOccurs="0" 
maxOccurs="unbounded"/>
  |          <xsd:element name="uninstall" type="installType" minOccurs="0" 
maxOccurs="unbounded"/>
  |       </xsd:sequence>
  |       <xsd:attribute name="name" type="xsd:string" use="optional"/>
  |       <xsd:attribute name="class" type="xsd:token" use="required"/>
  |       <xsd:attribute name="mode" type="controllerModeType" use="optional"/>
  |       <xsd:attribute name="WhenRequired" type="controllerStateType" 
use="optional"/>
  |    </xsd:complexType>
  | 

Or do this

  |          public void attributes(Object o, QName elementName, ElementBinding 
element, Attributes attrs, NamespaceContext nsCtx)
  |          {
  |             AbstractDemandMetaData demand = (AbstractDemandMetaData) o;
  |             for (int i = 0; i < attrs.getLength(); ++i)
  |             {
  |                String localName = attrs.getLocalName(i);
  |                if ("whenRequired".equals(localName))
  |                   demand.setWhenRequired(new 
ControllerState(attrs.getValue(i)));
  |             }
  |          }
  | 


View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3927456#3927456

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3927456


-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
JBoss-user mailing list
JBoss-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to