elena 2003/02/12 09:10:34 Modified: java/src/org/apache/xerces/impl XML11EntityScanner.java XMLEntityManager.java XMLEntityScanner.java java/src/org/apache/xerces/impl/msg XMLMessages.properties Log: Xerces failed to report a fatal error on invalid QName. Bug fix: http://nagoya.apache.org/bugzilla/show_bug.cgi?id=15079. Revision Changes Path 1.2 +3 -34 xml-xerces/java/src/org/apache/xerces/impl/XML11EntityScanner.java Index: XML11EntityScanner.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/XML11EntityScanner.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- XML11EntityScanner.java 7 Dec 2002 00:15:58 -0000 1.1 +++ XML11EntityScanner.java 12 Feb 2003 17:10:33 -0000 1.2 @@ -57,43 +57,12 @@ package org.apache.xerces.impl; -import java.io.EOFException; -import java.io.FileInputStream; -import java.io.FilterReader; -import java.io.InputStream; -import java.io.InputStreamReader; import java.io.IOException; -import java.io.Reader; -import java.io.StringReader; -import java.net.URL; -import java.util.Hashtable; -import java.util.Stack; -import java.util.Vector; -import org.apache.xerces.impl.XMLErrorReporter; -import org.apache.xerces.impl.io.ASCIIReader; -import org.apache.xerces.impl.io.UCSReader; -import org.apache.xerces.impl.io.UTF8Reader; -import org.apache.xerces.impl.msg.XMLMessageFormatter; -import org.apache.xerces.impl.validation.ValidationManager; - -import org.apache.xerces.util.EncodingMap; -import org.apache.xerces.util.SymbolTable; -import org.apache.xerces.util.XMLStringBuffer; -import org.apache.xerces.util.SymbolTable; -import org.apache.xerces.util.URI; import org.apache.xerces.util.XML11Char; -import org.apache.xerces.util.XMLResourceIdentifierImpl; - +import org.apache.xerces.util.XMLStringBuffer; import org.apache.xerces.xni.QName; -import org.apache.xerces.xni.XMLResourceIdentifier; import org.apache.xerces.xni.XMLString; -import org.apache.xerces.xni.XNIException; -import org.apache.xerces.xni.parser.XMLComponent; -import org.apache.xerces.xni.parser.XMLComponentManager; -import org.apache.xerces.xni.parser.XMLConfigurationException; -import org.apache.xerces.xni.parser.XMLEntityResolver; -import org.apache.xerces.xni.parser.XMLInputSource; /** * Implements the entity scanner methods in @@ -111,7 +80,7 @@ // /** Default constructor. */ - public XML11EntityScanner( ) { + public XML11EntityScanner() { super(); } // <init>() 1.62 +11 -18 xml-xerces/java/src/org/apache/xerces/impl/XMLEntityManager.java Index: XMLEntityManager.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/XMLEntityManager.java,v retrieving revision 1.61 retrieving revision 1.62 diff -u -r1.61 -r1.62 --- XMLEntityManager.java 10 Feb 2003 21:37:34 -0000 1.61 +++ XMLEntityManager.java 12 Feb 2003 17:10:33 -0000 1.62 @@ -57,12 +57,9 @@ package org.apache.xerces.impl; -import java.io.EOFException; -import java.io.FileInputStream; -import java.io.FilterReader; +import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; -import java.io.IOException; import java.io.Reader; import java.io.StringReader; import java.net.URL; @@ -71,24 +68,18 @@ import java.util.Stack; import java.util.Vector; -import org.apache.xerces.impl.XMLErrorReporter; import org.apache.xerces.impl.io.ASCIIReader; import org.apache.xerces.impl.io.UCSReader; import org.apache.xerces.impl.io.UTF8Reader; import org.apache.xerces.impl.msg.XMLMessageFormatter; import org.apache.xerces.impl.validation.ValidationManager; - import org.apache.xerces.util.EncodingMap; -import org.apache.xerces.util.XMLStringBuffer; import org.apache.xerces.util.SecurityManager; import org.apache.xerces.util.SymbolTable; import org.apache.xerces.util.URI; import org.apache.xerces.util.XMLChar; import org.apache.xerces.util.XMLResourceIdentifierImpl; - -import org.apache.xerces.xni.QName; import org.apache.xerces.xni.XMLResourceIdentifier; -import org.apache.xerces.xni.XMLString; import org.apache.xerces.xni.XNIException; import org.apache.xerces.xni.parser.XMLComponent; import org.apache.xerces.xni.parser.XMLComponentManager; @@ -1087,14 +1078,14 @@ if(version == Constants.XML_VERSION_1_0) { if(fXML10EntityScanner == null) { fXML10EntityScanner = new XMLEntityScanner(); - fXML10EntityScanner.reset(fSymbolTable, this); + fXML10EntityScanner.reset(fSymbolTable, this, fErrorReporter); } fEntityScanner = fXML10EntityScanner; fEntityScanner.setCurrentEntity(fCurrentEntity); } else { if(fXML11EntityScanner == null) { fXML11EntityScanner = new XML11EntityScanner(); - fXML11EntityScanner.reset(fSymbolTable, this); + fXML11EntityScanner.reset(fSymbolTable, this, fErrorReporter); } fEntityScanner = fXML11EntityScanner; fEntityScanner.setCurrentEntity(fCurrentEntity); @@ -1108,7 +1099,7 @@ if(fXML10EntityScanner == null) { fXML10EntityScanner = new XMLEntityScanner(); } - fXML10EntityScanner.reset(fSymbolTable, this); + fXML10EntityScanner.reset(fSymbolTable, this, fErrorReporter); fEntityScanner = fXML10EntityScanner; } return fEntityScanner; @@ -1237,10 +1228,12 @@ fCurrentEntity = null; // reset scanner - if(fXML10EntityScanner != null) - fXML10EntityScanner.reset(fSymbolTable, this); - if(fXML11EntityScanner != null) - fXML11EntityScanner.reset(fSymbolTable, this); + if(fXML10EntityScanner != null){ + fXML10EntityScanner.reset(fSymbolTable, this, fErrorReporter); + } + if(fXML11EntityScanner != null) { + fXML11EntityScanner.reset(fSymbolTable, this, fErrorReporter); + } // DEBUG if (DEBUG_ENTITIES) { 1.13 +20 -4 xml-xerces/java/src/org/apache/xerces/impl/XMLEntityScanner.java Index: XMLEntityScanner.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/XMLEntityScanner.java,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- XMLEntityScanner.java 3 Feb 2003 08:44:43 -0000 1.12 +++ XMLEntityScanner.java 12 Feb 2003 17:10:33 -0000 1.13 @@ -64,6 +64,7 @@ import org.apache.xerces.util.XMLChar; import org.apache.xerces.util.SymbolTable; import org.apache.xerces.impl.io.UCSReader; +import org.apache.xerces.impl.msg.XMLMessageFormatter; import org.apache.xerces.util.XMLStringBuffer; import java.io.IOException; @@ -91,12 +92,17 @@ protected int fBufferSize = XMLEntityManager.DEFAULT_BUFFER_SIZE; + /** + * Error reporter. This property identifier is: + * http://apache.org/xml/properties/internal/error-reporter + */ + protected XMLErrorReporter fErrorReporter; // // Constructors // /** Default constructor. */ - public XMLEntityScanner( ) { + public XMLEntityScanner() { } // <init>() // @@ -490,6 +496,7 @@ int index = -1; while (XMLChar.isName(fCurrentEntity.ch[fCurrentEntity.position])) { char c = fCurrentEntity.ch[fCurrentEntity.position]; + if (c == ':') { if (index != -1) { break; @@ -531,8 +538,15 @@ prefix = fSymbolTable.addSymbol(fCurrentEntity.ch, offset, prefixLength); int len = length - prefixLength - 1; + int startLocal = index +1; + if (!XMLChar.isNameStart(fCurrentEntity.ch[startLocal])){ + fErrorReporter.reportError(XMLMessageFormatter.XML_DOMAIN, + "IllegalQName", + null, + XMLErrorReporter.SEVERITY_FATAL_ERROR); + } localpart = fSymbolTable.addSymbol(fCurrentEntity.ch, - index + 1, len); + startLocal, len); } else { @@ -1478,10 +1492,12 @@ } // reset what little state we have... - public void reset(SymbolTable symbolTable, XMLEntityManager entityManager) { + public void reset(SymbolTable symbolTable, XMLEntityManager entityManager, + XMLErrorReporter reporter) { fCurrentEntity = null; fSymbolTable = symbolTable; fEntityManager = entityManager; + fErrorReporter = reporter; } // 1.17 +1 -0 xml-xerces/java/src/org/apache/xerces/impl/msg/XMLMessages.properties Index: XMLMessages.properties =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/msg/XMLMessages.properties,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- XMLMessages.properties 8 Jan 2003 23:04:11 -0000 1.16 +++ XMLMessages.properties 12 Feb 2003 17:10:34 -0000 1.17 @@ -261,6 +261,7 @@ # Namespaces support # 4. Using Qualified Names + IllegalQName = Element or attribute do not match QName production: QName::=(NCName':')?NCName. ElementXMLNSPrefix = Element \"{0}\" cannot have \"xmlns\" as its prefix. ElementPrefixUnbound = The prefix \"{0}\" for element \"{1}\" is not bound. AttributePrefixUnbound = The prefix \"{0}\" for attribute \"{1}\" is not bound.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]