org.enhydra.apache.xerces.validators.schema
Class TraverseSchema.Resolver
java.lang.Object
|
+--org.enhydra.apache.xerces.validators.schema.TraverseSchema.Resolver
- All Implemented Interfaces:
- EntityResolver
- Enclosing class:
- TraverseSchema
- static class TraverseSchema.Resolver
- extends java.lang.Object
- implements EntityResolver
Don't check the following code in because it creates a dependency on
the serializer, preventing to package the parser without the serializer
//Unit Test here
public static void main(String args[] ) {
if( args.length != 1 ) {
System.out.println( "Error: Usage java TraverseSchema yourFile.xsd" );
System.exit(0);
}
DOMParser parser = new IgnoreWhitespaceParser();
parser.setEntityResolver( (fEntityResolver != null)? (fEntityResolver):(new Resolver()) );
parser.setErrorHandler( new ErrorHandler() );
try {
parser.setFeature("http://xml.org/sax/features/validation", false);
parser.setFeature("http://apache.org/xml/features/dom/defer-node-expansion", false);
}catch( org.xml.sax.SAXNotRecognizedException e ) {
e.printStackTrace();
}catch( org.xml.sax.SAXNotSupportedException e ) {
e.printStackTrace();
}
try {
parser.parse( args[0]);
}catch( IOException e ) {
e.printStackTrace();
}catch( SAXException e ) {
e.printStackTrace();
}
Document document = parser.getDocument(); //Our Grammar
OutputFormat format = new OutputFormat( document );
java.io.StringWriter outWriter = new java.io.StringWriter();
XMLSerializer serial = new XMLSerializer( outWriter,format);
TraverseSchema tst = null;
try {
Element root = document.getDocumentElement();// This is what we pass to TraverserSchema
//serial.serialize( root );
//System.out.println(outWriter.toString());
tst = new TraverseSchema( root, new StringPool(), new SchemaGrammar(), (GrammarResolver) new GrammarResolverImpl() );
}
catch (Exception e) {
e.printStackTrace(System.err);
}
parser.getDocument();
}
Method Summary |
InputSource |
resolveEntity(java.lang.String publicId,
java.lang.String systemId)
Allow the application to resolve external entities. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
TraverseSchema.Resolver
TraverseSchema.Resolver()
resolveEntity
public InputSource resolveEntity(java.lang.String publicId,
java.lang.String systemId)
throws java.io.IOException
- Description copied from interface:
EntityResolver
- Allow the application to resolve external entities.
The Parser will call this method before opening any external
entity except the top-level document entity (including the
external DTD subset, external entities referenced within the
DTD, and external entities referenced within the document
element): the application may request that the parser resolve
the entity itself, that it use an alternative URI, or that it
use an entirely different input source.
Application writers can use this method to redirect external
system identifiers to secure and/or local URIs, to look up
public identifiers in a catalogue, or to read an entity from a
database or other input source (including, for example, a dialog
box).
If the system identifier is a URL, the SAX parser must
resolve it fully before reporting it to the application.
- Specified by:
resolveEntity
in interface EntityResolver
- Parameters:
publicId
- The public identifier of the external entity
being referenced, or null if none was supplied.systemId
- The system identifier of the external entity
being referenced.
- Returns:
- An InputSource object describing the new input source,
or null to request that the parser open a regular
URI connection to the system identifier.
- Throws:
java.io.IOException
- A Java-specific IO exception,
possibly the result of creating a new InputStream
or Reader for the InputSource.- See Also:
InputSource
Copyright © 1999 The Apache Software Foundation. All Rights reserved.