Author: skitching
Date: Sun Feb  6 23:29:54 2005
New Revision: 151695

URL: http://svn.apache.org/viewcvs?view=rev&rev=151695
Log:
* Move constructors to after member declarations
* improve javadoc

Modified:
    
jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Digester.java
   (contents, props changed)

Modified: 
jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Digester.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Digester.java?view=diff&r1=151694&r2=151695
==============================================================================
--- 
jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Digester.java
 (original)
+++ 
jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Digester.java
 Sun Feb  6 23:29:54 2005
@@ -1,4 +1,4 @@
-/* $Id: $
+/* $Id$
  *
  * Copyright 2001-2005 The Apache Software Foundation.
  *
@@ -75,25 +75,9 @@
 
 public class Digester {
 
-    // --------------------------------------------------------- Constructors
-
-    /**
-     * Construct a new Digester with default properties.
-     */
-    public Digester() {
-        this.saxHandler = new SAXHandler();
-    }
-
-    /**
-     * This method allows customisation of the way that sax events are
-     * handled, by allowing a modified subclass of SAXHandler to be
-     * specified as the target for parsing events.
-     */
-    public Digester(SAXHandler saxHandler) {
-        this.saxHandler = saxHandler;
-    }
-
-    // --------------------------------------------------- Instance Variables
+    // --------------------------------------------------- 
+    // Instance Variables
+    // --------------------------------------------------- 
 
     /**
      * The object used to handle event callbacks from the SAX parser as
@@ -116,7 +100,29 @@
      */
     private boolean validating = false;
 
-    // ------------------------------------------------------------- Properties
+    // --------------------------------------------------------- 
+    // Constructors
+    // --------------------------------------------------------- 
+
+    /**
+     * Construct a new Digester with default properties.
+     */
+    public Digester() {
+        this.saxHandler = new SAXHandler();
+    }
+
+    /**
+     * This method allows customisation of the way that sax events are
+     * handled, by allowing a modified subclass of SAXHandler to be
+     * specified as the target for parsing events.
+     */
+    public Digester(SAXHandler saxHandler) {
+        this.saxHandler = saxHandler;
+    }
+
+    // ------------------------------------------------------------- 
+    // Properties
+    // ------------------------------------------------------------- 
 
     /**
      * Get the SAXHandler object associated with this instance.
@@ -413,6 +419,12 @@
      * then the parser will attempt to use the system-id directly, potentially
      * downloading the resource from a remote location.</p>
      *
+     * <p>If you are trying to register a systemId here, then be aware that
+     * the value that must be registered is the <i>absolute</i> URL formed by
+     * resolving the system-id in the input document against the base URL of
+     * the document being parsed. If the system-id in the document is absolute,
+     * then this is not an issue.</p>
+     *
      * <p>
      * <strong>Note:</strong> This method will have no effect when a custom
      * <code>EntityResolver</code> has been set. (Setting a custom
@@ -446,6 +458,21 @@
      * does no such thing, so processing of it can be suppressed.
      * <p>
      * This flag defaults to false (ie external dtds are read during the 
parse).
+     * <p>
+     * Note that this method would not be necessary if people could be
+     * relied upon to mark their DOCTYPE declarations with the "standalone"
+     * keyword if they can be ignored, as the xml parser would never attempt
+     * to load the dtd unless validation was enabled. And this method would 
+     * not be necessary if people could be relied upon to use PUBLIC ids in 
+     * their DOCTYPES, as method registerKnownEntity(publicId, "") can be used 
+     * to ignore an entity with a specific public-id. However there are large 
+     * volumes of broken XML documents out there that ignore both of these 
+     * basic xml features, so this method provides a workaround. Note that 
using
+     * registerKnownEntity with a systemId is not usually useful, because
+     * xml parsers expand relative systemIds into absolute ids before calling
+     * the EntityResolver, making it difficult to know before parsing starts
+     * what (absolute) system-id value should be registered in order to
+     * redirect/disable the entity.
      */
     public void setIgnoreExternalDTD(boolean state) {
         saxHandler.setIgnoreExternalDTD(state);
@@ -458,7 +485,9 @@
         return saxHandler.getIgnoreExternalDTD();
     }
      
-    // ------------------------------------------------------- Public Methods
+    // ------------------------------------------------------- 
+    // Public Methods
+    // ------------------------------------------------------- 
 
     /**
      * Parse the content of the specified file using this Digester.  Returns
@@ -600,7 +629,9 @@
         saxHandler.addRule(pattern, action);
     }
 
-    // --------------------------------------------------- Object Stack Methods
+    // --------------------------------------------------- 
+    // Object Stack Methods
+    // --------------------------------------------------- 
 
     /**
      * Set the initial object that will form the root of the tree of

Propchange: 
jakarta/commons/proper/digester/branches/digester2/src/java/org/apache/commons/digester2/Digester.java
------------------------------------------------------------------------------
    svn:keywords = Id



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

Reply via email to