You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by do...@apache.org on 2002/07/30 14:26:33 UTC
cvs commit: jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/tools/configuration ConfigurationBuilder.java DTDResolver.java
donaldp 2002/07/30 05:26:33
Modified: src/java/org/apache/avalon/phoenix/tools/configuration
ConfigurationBuilder.java DTDResolver.java
Log:
Make sure that configuration for the mxinfo file is validated against a DTD.
Revision Changes Path
1.6 +36 -5 jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/tools/configuration/ConfigurationBuilder.java
Index: ConfigurationBuilder.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/tools/configuration/ConfigurationBuilder.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ConfigurationBuilder.java 19 Jul 2002 01:13:33 -0000 1.5
+++ ConfigurationBuilder.java 30 Jul 2002 12:26:33 -0000 1.6
@@ -32,7 +32,10 @@
"org/apache/avalon/phoenix/tools/blockinfo.dtd" ),
new DTDInfo( "-//PHOENIX/Assembly DTD Version 1.0//EN",
"http://jakarta.apache.org/phoenix/assembly_1_0.dtd",
- "org/apache/avalon/phoenix/tools/assembly.dtd" )
+ "org/apache/avalon/phoenix/tools/assembly.dtd" ),
+ new DTDInfo( "-//PHOENIX/Mx Info DTD Version 1.0//EN",
+ "http://jakarta.apache.org/phoenix/mxinfo_1_0.dtd",
+ "org/apache/avalon/phoenix/tools/mxinfo.dtd" )
};
private static final DTDResolver c_resolver =
@@ -61,11 +64,19 @@
* Internally sets up the XMLReader
*/
private static void setupXMLReader( final XMLReader reader,
- final SAXConfigurationHandler handler )
+ final SAXConfigurationHandler handler,
+ final boolean validate)
+ throws SAXException
{
reader.setEntityResolver( c_resolver );
reader.setContentHandler( handler );
reader.setErrorHandler( handler );
+
+ if (validate)
+ {
+ // Request validation
+ reader.setFeature("http://xml.org/sax/features/validation", true);
+ }
}
/**
@@ -78,15 +89,35 @@
}
/**
+ * Build a configuration object using an URI, and
+ * optionally validate the xml against the DTD.
+ */
+ public static Configuration build( final String uri, boolean validate )
+ throws SAXException, ParserConfigurationException, IOException
+ {
+ return build( new InputSource( uri ), validate );
+ }
+
+ /**
* Build a configuration object using an XML InputSource object
*/
public static Configuration build( final InputSource input )
throws SAXException, ParserConfigurationException, IOException
{
+ return build( input, false );
+ }
+
+ /**
+ * Build a configuration object using an XML InputSource object, and
+ * optionally validate the xml against the DTD.
+ */
+ public static Configuration build( final InputSource input, boolean validate )
+ throws SAXException, ParserConfigurationException, IOException
+ {
final XMLReader reader = createXMLReader();
final SAXConfigurationHandler handler = new SAXConfigurationHandler();
- setupXMLReader( reader, handler );
+ setupXMLReader( reader, handler, validate );
reader.parse( input );
return handler.getConfiguration();
- }
+ }
}
1.6 +3 -3 jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/tools/configuration/DTDResolver.java
Index: DTDResolver.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/tools/configuration/DTDResolver.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- DTDResolver.java 26 Jul 2002 09:49:22 -0000 1.5
+++ DTDResolver.java 30 Jul 2002 12:26:33 -0000 1.6
@@ -54,8 +54,8 @@
{
final DTDInfo info = m_dtdInfos[ i ];
- if( (publicId != null && publicId.equals( info.getPublicId() ))
- || (systemId != null && systemId.equals( info.getSystemId() )) )
+ if( (publicId != null && publicId.equals( info.getPublicId() )) ||
+ (systemId != null && systemId.equals( info.getSystemId() )) )
{
final ClassLoader classLoader = getClassLoader();
final InputStream inputStream =
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>