OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [xml-dev] Java, DTD locally

Hi Randall.

If all the XML documents to be validated contain a
DOCTYPE that points to the remote official copy of
the DTD, then your system could use an
org.xml.sax.EntityResolver to substitute the remote
DTD with a local copy. For example, the
EntityResolver.resolveEntity(String,String) method
could return an InputSource for a local copy of the
DTD when it is asked to resolve the entity whose
public ID is "-//OurMessage//EN" and whose system ID
is "http://somehost/URI/some.dtd".

Hope this helps.


<sig name    = 'Bob Lyons'
     title   = 'XML and Java Consultant'
     company = 'Unidex, Inc.'
     phone   = '+1-732-975-9877'
     email   = 'boblyons@unidex.com'
     url     = 'http://www.unidex.com/'
     product = 'XML Convert: transforms flat files to XML and vice versa' />

-----Original Message-----

We are using Java and SAX.  Our system is distributed and sends text
messages between nodes.

We would like to avoid having to have a web server as part of the system, so
each node will have the DTD's stored locally.

How can we validate the received XML text against a DTD which resides on the
local file system.

In other words, we want to avoid having to include the DOCTYPE tag that
points at a URL, but rather choose the DTD just prior to parsing, let the
parser know which DTD we are using, and have the parser then validate using
this "last minute" DTD.

So the DOCTYPE line below would be omitted.

<?xml version="1.0"?>

<!DOCTYPE our-message PUBLIC "-//OurMessage//EN"

 Rest of XML

Randall Britten