On Mar 14, 2008, at 3:54 AM, yunfeng ma wrote:

Cool, great news ... :)

I'm trying to replace EMF using JAXB and got some issues need your help. 1. Some elements in the deployment plan can not be unmarshalled, such as gbeans in geronimo-web.xml. I'm not sure if it's because geronimo-web-2.0.1.xsd only includes an abstract element "service" which is the parent of "gbean".

Is the gbean in the correct namespace for the schemas involved? In the geronimo plan processing we do quite a bit of work to correct namespaces so that the plan author doesn't need to keep changing namespaces; in particular we set the correct namespace for gbeans no matter what the original namespace is.

2. Now the schema files are compiled to generate the model classes during every GEP building. I think the better way is generating the java source codes offline and importing the source codes to svn directly, this provides us a chance to customize the generated source codes (like the way in OpenEJB).
I agree.

3. The deployment plan saved by JAXB after modification is unformatted, only contents are in one line. We need save the deployment plan with well format.
This code seems to work well in AttributesXmlUtil:

public static void writeAttributes(AttributesType metadata, Writer out) throws XMLStreamException, JAXBException {
        Marshaller marshaller = ATTRIBUTES_CONTEXT.createMarshaller();
        marshaller.setProperty("jaxb.formatted.output", true);
JAXBElement<AttributesType> element = new ObjectFactory ().createAttributes(metadata);
        marshaller.marshal(element, out);
    }

4. More elegant way to operate the POJOs generate by JAXB. JAXB uses POJO to represent the element in XML, so how to create a new instance of an element (JAX B way is too fussy), how to set/get the properties of an element via property name (JAXB doesn't provide any way for this), how to get the parent instance of an element (JAXB doesn't provide any way for this) etc.


I don't understand the problem here. I thought the main point of using something like jaxb was so you can write typed java code for a typed java model corresponding to the xml. Do you want to write generic java code to deal with the typed java model?

thanks
david jencks

Any advice for the above issues?
Thanks a lot.

-- YunFeng Ma

Reply via email to