mrglavas    2004/08/31 20:00:15

  Modified:    java/src/org/apache/xerces/xni XMLLocator.java
               java/src/org/apache/xerces/xni/parser XMLParseException.java
  Log:
  Making XNI changes as per discussion on xerces-j-dev:

  

  1) Add a getCharacterOffset method to XMLLocator which returns 

  the character offset for the current entity. 

  

  2) Add a getVersion method to XMLLocator which returns the XML

  version of the current entity. 

  

  3) Add a getCharacterOffset method to XMLParseException to 

  expose the offset from the XMLLocator.

  

  Also preventing an NPE in case of a null locator passed to the

  constructor. This had been fixed ages ago for the other

  constructor.
  
  Revision  Changes    Path
  1.11      +21 -4     xml-xerces/java/src/org/apache/xerces/xni/XMLLocator.java
  
  Index: XMLLocator.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/xni/XMLLocator.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- XMLLocator.java   24 Feb 2004 23:15:54 -0000      1.10
  +++ XMLLocator.java   1 Sep 2004 03:00:15 -0000       1.11
  @@ -41,13 +41,17 @@
       /** Returns the expanded system identifier. */
       public String getExpandedSystemId();
       
  -    /** Returns the line number. */
  +    /** Returns the line number, or <code>-1</code> if no line number is available. 
*/
       public int getLineNumber();
     
  -    /** Returns the column number. */
  +    /** Returns the column number, or <code>-1</code> if no column number is 
available. */
       public int getColumnNumber();
  +    
  +    /** Returns the character offset, or <code>-1</code> if no character offset is 
available. */
  +    public int getCharacterOffset();
   
  -    /** Returns the encoding of the current entity.  
  +    /** 
  +     * Returns the encoding of the current entity.  
        * Note that, for a given entity, this value can only be
        * considered final once the encoding declaration has been read (or once it
        * has been determined that there is no such declaration) since, no encoding
  @@ -55,5 +59,18 @@
        * will make an initial "guess" which could be in error. 
        */
       public String getEncoding();
  +    
  +    /** 
  +     * Returns the XML version of the current entity. This will normally be the
  +     * value from the XML or text declaration or defaulted by the parser. Note that
  +     * that this value may be different than the version of the processing rules 
  +     * applied to the current entity. For instance, an XML 1.1 document may refer to
  +     * XML 1.0 entities. In such a case the rules of XML 1.1 are applied to the 
entire 
  +     * document. Also note that, for a given entity, this value can only be 
considered
  +     * final once the XML or text declaration has been read or once it has been
  +     * determined that there is no such declaration.
  +     */
  +    public String getXMLVersion();
  +
   
   } // interface XMLLocator
  
  
  
  1.7       +19 -7     
xml-xerces/java/src/org/apache/xerces/xni/parser/XMLParseException.java
  
  Index: XMLParseException.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/xni/parser/XMLParseException.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- XMLParseException.java    15 Aug 2004 21:22:15 -0000      1.6
  +++ XMLParseException.java    1 Sep 2004 03:00:15 -0000       1.7
  @@ -55,6 +55,9 @@
       
       /** Column number. */
       protected int fColumnNumber = -1;
  +    
  +    /** Character offset. */
  +    protected int fCharacterOffset = -1;
   
       //
       // Constructors
  @@ -70,6 +73,7 @@
               fBaseSystemId = locator.getBaseSystemId();
               fLineNumber = locator.getLineNumber();
               fColumnNumber = locator.getColumnNumber();
  +            fCharacterOffset = locator.getCharacterOffset();
           }
       } // <init>(XMLLocator,String)
   
  @@ -77,12 +81,15 @@
       public XMLParseException(XMLLocator locator,
                                String message, Exception exception) {
           super(message, exception);
  -        fPublicId = locator.getPublicId();
  -        fLiteralSystemId = locator.getLiteralSystemId();
  -        fExpandedSystemId = locator.getExpandedSystemId();
  -        fBaseSystemId = locator.getBaseSystemId();
  -        fLineNumber = locator.getLineNumber();
  -        fColumnNumber = locator.getColumnNumber();
  +        if (locator != null) {
  +            fPublicId = locator.getPublicId();
  +            fLiteralSystemId = locator.getLiteralSystemId();
  +            fExpandedSystemId = locator.getExpandedSystemId();
  +            fBaseSystemId = locator.getBaseSystemId();
  +            fLineNumber = locator.getLineNumber();
  +            fColumnNumber = locator.getColumnNumber();
  +            fCharacterOffset = locator.getCharacterOffset();
  +        }
       } // <init>(XMLLocator,String,Exception)
   
       //
  @@ -118,6 +125,11 @@
       public int getColumnNumber() {
           return fColumnNumber;
       } // getRowNumber():int
  +    
  +    /** Returns the character offset. */
  +    public int getCharacterOffset() {
  +        return fCharacterOffset;
  +    } // getCharacterOffset():int
   
       //
       // Object methods
  
  
  

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

Reply via email to