Class X3DEntityResolver

java.lang.Object
org.web3d.x3d.jaxp.X3DEntityResolver
All Implemented Interfaces:
EntityResolver

public class X3DEntityResolver extends Object implements EntityResolver
An entity resolver for both DOM and SAX models of the X3D document.

The entity resolver only handles queries for the DTD. It will find any URI that ends in *.dtd and return an InputSource.

As the X3D specification does not yet define what the system resource ID is, we'll take a guess. The current resolution scheme only strips the name of the DTD from the URI and attempts to find that in the classpath.

To determine the DTD name it will search from the end of the string until it finds a '/' character. The resulting string is treated as a filename to search for and has the directory DTD/ prepended to the name. This filename is then found in the CLASSPATH used by the application using the standard Java resolution rules. Note that we do not need to implement any more intelligent behaviour than this because if the System or PublicID returned are files or URLs, the standard parser mechanisms will load them. The only more intelligent behaviour that we may wish to add in the future will be to resolve a full URN if we are given it.

The current implementation ignores the publicId information.