You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by je...@locus.apache.org on 2000/06/30 23:47:00 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/framework XMLDTDScanner.java

jeffreyr    00/06/30 14:46:55

  Modified:    java/src/org/apache/xerces/framework XMLDTDScanner.java
  Log:
  This fixes a problem with parameterizes entities such as:
  as the one found when we have in a dtd such thing as:
  
  <!ENTITY % FOOBAR
             "'foofoo'" >
  <!NOTATION test SYSTEM "">
  <!ENTITY bar SYSTEM %FOOBAR; NDATA test >
  <!ELEMENT FOO  (BAR?)>
  <!ELEMENT BAR (MOCHA*)>
  <!ELEMENT FOOFOO (#PCDATA)>
  
  This bug also cause the parsing of a Schema containing a reference
  to the structures or datatype dtd to fail with the following
  message:
  org.xml.sax.SAXException: Stopping after fatal error: The system identifier
  must begin with either a single or double quote character.
  
  A Caveat is that the XMLDTDScanner code is very obscure and we may have more
  surprises.
  
  Revision  Changes    Path
  1.11      +4 -1      xml-xerces/java/src/org/apache/xerces/framework/XMLDTDScanner.java
  
  Index: XMLDTDScanner.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/framework/XMLDTDScanner.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- XMLDTDScanner.java	2000/06/26 22:48:58	1.10
  +++ XMLDTDScanner.java	2000/06/30 21:46:51	1.11
  @@ -90,7 +90,7 @@
    * </ol>
    *
    * @see XMLDTDScanner.EventHandler
  - * @version $Id: XMLDTDScanner.java,v 1.10 2000/06/26 22:48:58 ericye Exp $
  + * @version $Id: XMLDTDScanner.java,v 1.11 2000/06/30 21:46:51 jeffreyr Exp $
    */
   public final class XMLDTDScanner {
       //
  @@ -1156,6 +1156,9 @@
                   return false;
               }
               fEntityReader.skipPastSpaces();
  +            if( getReadingExternalEntity() == true ) {  //Are we in external subset?
  +               checkForPEReference(false);//If so Check for PE Ref
  +             }
               return scanSystemLiteral();
           }
           if (fEntityReader.skippedString(public_string)) {