[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Best way to create an XML document

  • From: Michael Glavassevich <mrglavas@c...>
  • To: "Andrew Welch" <andrew.j.welch@g...>
  • Date: Sat, 12 Apr 2008 18:10:41 -0400

Re:  Best way to create an XML document
"Andrew Welch" <andrew.j.welch@g...> wrote on 04/12/2008 03:50:57 PM:

> On 12/04/2008, Robert Koberg <rob@k...> wrote:
> >
> >  On Sat, 2008-04-12 at 19:20 +0100, Andrew Welch wrote:
> >  > It would be really nice if you could just annotate a pojo and
persist
> >  > that to XML, ala JPA...
> >
> >
> > You probably know this, but there is:
> >
> >  http://java.sun.
> com/javase/6/docs/api/javax/xml/bind/annotation/XmlElement.html
>
> thanks for the pointer - I haven't looked at JAXB for a while...
>
> I was looking for the "top down" approach where you annotate a class
> it just creates the XML for you, as opposed to the "bottom up"
> approach where you supply the schema and it autogenerates the classes.

With JAXB 2.x you can start from existing classes and add whatever
annotations you need to tune the binding. For example a POJO for a
properties file might look like:

    @XmlRootElement
    public static class Properties {
        private List<Property> properties;
        @XmlElement(name="property")
        public List<Property> getProperties() {
            if (properties == null) {
                properties = new ArrayList<Property>();
            }
            return properties;
        }
        public void setProperties(List<Property> properties) {
            this.properties = properties;
        }
        public void addProperty(Property property) {
            getProperties().add(property);
        }
    }

    public static class Property {
        private String key;
        private String value;
        public Property() {}
        public Property(String key, String value) {
            this.key = key;
            this.value = value;
        }
        public String getKey() {
            return key;
        }
        public void setKey(String key) {
            this.key = key;
        }
        public String getValue() {
            return value;
        }
        public void setValue(String value) {
            this.value = value;
        }
    }

Adding a couple JAXB annotations to the Properties class would be sufficent
to produce:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<properties>
    <property>
        <key>foo</key>
        <value>bar</value>
    </property>
    <property>
        <key>fuzz</key>
        <value>buzz</value>
    </property>
</properties>

from a few lines of code:

    Properties props = new Properties();
    props.addProperty(new Property("foo", "bar"));
    props.addProperty(new Property("fuzz", "buzz"));
    JAXB.marshal(props, System.out);

> Ideally you should be able to just annotate a class with something
> like @XMLEntity, pass it to the entity manager's save() method and
> have it create the XML for you - just like JPA  :)
>
> --
> Andrew Welch
> http://andrewjwelch.com
> Kernow: http://kernowforsaxon.sf.net/
>
> _______________________________________________________________________
>
> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
> to support XML implementation and development. To minimize
> spam in the archives, you must subscribe before posting.
>
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Or unsubscribe: xml-dev-unsubscribe@l...
> subscribe: xml-dev-subscribe@l...
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php

Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: mrglavas@c...
E-mail: mrglavas@a...



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.