You all are great! Rob, your pure (old?) DOM and Elloit's JDOM example (originating this thread) give me great starting point. XOM might also be something to look at :-)
Thank you. L. "Rob Heittman" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] You can work with the DOM API directly. DOM is a portable API that is a W3C standard, and pretty much the same in every language. But it is not especially compact. There is a simplified API, JDOM, which you might like better (www.jdom.org) but it is not a core part of the Java platform. There are many sources on the Web that teach both the DOM and JDOM APIs, but here is the beginning of an implementation for your example document: // obtain a new DOM Document using the JAXP Document Builder factory mechanism Document doc = DocumentBuilderFactory.newDocumentBuilder().newDocument(); // create elements: there must be a single root element Element rootElement = doc.createElement("service"); doc.appendChild(rootElement); Element types = doc.createElement("Types"); rootElement.appendChild(types); // add attributes types.setAttribute("name","typeA"); // ... continue fully populating your document, attaching each element or text node to its parent The main advantage to using DOM or JDOM to create a response, as opposed to just building an XML string directly, is that the DOM API will automatically take care of correctness issues for you; for example, if you include text that contains < or > characters, these will be transformed to < and > so that your document remains well-formed. The disadvantage is that a DOM structure is built in memory and is large and slow compared to a StringBuffer. So this approach is not good for massive XML documents (say, more than 250K). It is safest to avoid massive XML documents altogether until/unless you are really, really comfortable with all the different mea ns of handling XML and their side effects. Anyway, once you have a DOM Document, you can just use the DomRepresentation of Restlet: DomRepresentation rep = new DomRepresentation(MediaType.TEXT_XML,doc); Return this from the represent(...) method of a Resource or, in a Restlet's handle method, say response.setEntity(rep); You don't need to worry about the transformation stuff previously described; Restlet will do this for you. - R On Fri, Mar 14, 2008 at 11:53 PM, Leshek <[EMAIL PROTECTED]> wrote: I know how I want my XML representation to look. I can easily (?:-) craft it by StringBuffer, but... would really like to take advantage of DOM and Restlet. What is the best way to build, manipulate and return representation like the following (all, other comments also welcome): <?xml version="1.0" encoding="ASCII"?> <service> <Types name="typeA" description="typeA description"> <attributeNames>Name</attributeNames> </Types> <Types name="type2" description="type2"> <attributeNames>Name</attributeNames> <attributeNames>ContainerName</attributeNames> <relationshipNames>Contains</relationshipNames> <relationshipNames>ContainedIn</relationshipNames> </Types> </service>

