Greg,

If you are using xerces to serialize the DOM, you can use the OutputFormat
class to add the DOCTYPE declaration,
ie:
   OutputFormat format  = new OutputFormat(document);     // Document
document
    format.setDoctype(publicId, systemId);                             //
String publicId,systemId
    (Sets the document type public and system identifiers);      // system
identifier would be the DTD

Then use the format when constructing a serializer,
   XMLSerializer serial = new XMLSerializer(output, format); //
FileOutputStream output

http://xml.apache.org/xerces-j/apiDocs/org/apache/xml/serialize/OutputFormat.html

--John




Greg Hess wrote:

> Hi All,
>
> I am building an adapter on my Struts app to allow Web Service calls
> from remote parties. A remote call constructs a XML and sends the
> request via http to my Struts app. My app processes the request by
> parsing the XML data posted and returns the XML result. This is all
> working but my spec states that I use DTD and a validating parser to
> ensure that the request's and responses contain valid data elements. I
> would like to be able to build the XML data completely dynamically and
> then return that DOM to the client.
>
> My problem is that the DOM built must contain the DOCTYPE declaration
> for the server to use in parsing(validating). When I build a document
> using the DOMImplementation using a DocType and output that DOM to some
> OutputStream the DOCTYPE declaration is missing. I have read some
> reports that state the ability to build a DOM data structure with a
> DOCTYPE declaration is not yet supported by parser implementations. I am
> using latest version of Xerces/Xalan and unfortunately there archives
> are down and that mailing list is dead.
>
> Does anyone know how I can achieve this and what parser implementation
> supports the dynamic building of a DOM with a DOCTYPE.
>
> Many thanks for your help,
>
> Greg


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to