You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by sa...@apache.org on 2001/10/23 21:05:02 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes NOTATIONDatatypeValidator.java QNameDatatypeValidator.java

sandygao    01/10/23 12:05:02

  Modified:    java/src/org/apache/xerces/impl/v2 SchemaValidator.java
                        XSAttributeChecker.java XSDAbstractTraverser.java
                        XSDHandler.java
               java/src/org/apache/xerces/impl/v2/datatypes
                        NOTATIONDatatypeValidator.java
                        QNameDatatypeValidator.java
  Log:
  qname prefix resolution:
  1. add checking for unfound prefixes;
  2. add comments at places where more prefix checking needs to be done;
  3. removed comments about prefix resolution that are not applicable anymore.
  
  Revision  Changes    Path
  1.38      +1 -6      xml-xerces/java/src/org/apache/xerces/impl/v2/SchemaValidator.java
  
  Index: SchemaValidator.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/SchemaValidator.java,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- SchemaValidator.java	2001/10/22 16:58:14	1.37
  +++ SchemaValidator.java	2001/10/23 19:05:01	1.38
  @@ -115,7 +115,7 @@
    * @author Andy Clark, IBM
    * @author Jeffrey Rodriguez IBM
    *
  - * @version $Id: SchemaValidator.java,v 1.37 2001/10/22 16:58:14 sandygao Exp $
  + * @version $Id: SchemaValidator.java,v 1.38 2001/10/23 19:05:01 sandygao Exp $
    */
   public class SchemaValidator
       implements XMLComponent, XMLDocumentFilter,
  @@ -1350,9 +1350,6 @@
                   prefix = fSymbolTable.addSymbol(xsiType.substring(0,colonptr));
                   localpart = xsiType.substring(colonptr+1);
               }
  -            // REVISIT: if we take the null approach (instead of ""),
  -            //          we need to chech the retrned value from getURI
  -            //          to see whether a binding is found.
               String uri = fNamespaceSupport.getURI(prefix);
               typeName = new QName(prefix, localpart, xsiType, uri);
           } catch (InvalidDatatypeValueException e) {
  @@ -1531,8 +1528,6 @@
               attrValue = XSAttributeChecker.normalize(attrValue, attDV.getWSFacet());
               Object actualValue = null;
               try {
  -                // REVISIT: use XSSimpleTypeDecl.ValidateContext to replace null
  -                // actualValue = attDV.validate(attrValue, null);
                   attDV.validate(attrValue, fValidationState);
               } catch (InvalidDatatypeValueException idve) {
                   reportSchemaError("cvc-attribute.3", new Object[]{element.rawname, fTempQName.rawname, attrValue});
  
  
  
  1.35      +2 -1      xml-xerces/java/src/org/apache/xerces/impl/v2/XSAttributeChecker.java
  
  Index: XSAttributeChecker.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/XSAttributeChecker.java,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- XSAttributeChecker.java	2001/10/22 22:19:52	1.34
  +++ XSAttributeChecker.java	2001/10/23 19:05:02	1.35
  @@ -89,7 +89,7 @@
    * - use symbol table instead of many hashtables
    *
    * @author Sandy Gao, IBM
  - * @version $Id: XSAttributeChecker.java,v 1.34 2001/10/22 22:19:52 sandygao Exp $
  + * @version $Id: XSAttributeChecker.java,v 1.35 2001/10/23 19:05:02 sandygao Exp $
    */
   
   public class XSAttributeChecker {
  @@ -1548,6 +1548,7 @@
           return sb.toString();
       }
   
  +    // REVISIT: should remove this method once the DVs return compiled value
       protected QName resolveQName (String attrVal, XSDocumentInfo currSchema) {
           SchemaNamespaceSupport nsSupport = currSchema.fNamespaceSupport;
           String prefix = fSchemaHandler.EMPTY_STRING;
  
  
  
  1.39      +4 -2      xml-xerces/java/src/org/apache/xerces/impl/v2/XSDAbstractTraverser.java
  
  Index: XSDAbstractTraverser.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/XSDAbstractTraverser.java,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- XSDAbstractTraverser.java	2001/10/23 16:49:59	1.38
  +++ XSDAbstractTraverser.java	2001/10/23 19:05:02	1.39
  @@ -77,7 +77,7 @@
    * @author Elena Litani, IBM
    * @author Rahul Srivastava, Sun Microsystems Inc.
    *
  - * @version $Id: XSDAbstractTraverser.java,v 1.38 2001/10/23 16:49:59 elena Exp $
  + * @version $Id: XSDAbstractTraverser.java,v 1.39 2001/10/23 19:05:02 sandygao Exp $
    */
   abstract class XSDAbstractTraverser {
   
  @@ -245,12 +245,14 @@
   
                       }
                       String uriStr = schemaDoc.fNamespaceSupport.getURI(prefix);
  +                    if (prefix != fSchemaHandler.EMPTY_STRING && uriStr == null) {
  +                        reportGenericSchemaError("Cannot resolve the prefix of the NOTATION  value '"+enumVal+"'");
  +                    }
                       fQName.setValues(prefix, localpart, null, uriStr );
                       XSNotationDecl notation = (XSNotationDecl)fSchemaHandler.getGlobalDecl(schemaDoc, XSDHandler.NOTATION_TYPE , fQName);
                       if (notation == null) {
                           reportGenericSchemaError("Notation '" + localpart +
                                                    "' not found in the grammar "+ uriStr);
  -
                       }
   
                       enumVal = (uriStr!=null)?(uriStr+","+localpart):localpart;
  
  
  
  1.54      +8 -1      xml-xerces/java/src/org/apache/xerces/impl/v2/XSDHandler.java
  
  Index: XSDHandler.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/XSDHandler.java,v
  retrieving revision 1.53
  retrieving revision 1.54
  diff -u -r1.53 -r1.54
  --- XSDHandler.java	2001/10/23 17:44:16	1.53
  +++ XSDHandler.java	2001/10/23 19:05:02	1.54
  @@ -97,7 +97,7 @@
    * schema, other grammars may be constructed as a side-effect.
    *
    * @author Neil Graham, IBM
  - * @version $Id: XSDHandler.java,v 1.53 2001/10/23 17:44:16 sandygao Exp $
  + * @version $Id: XSDHandler.java,v 1.54 2001/10/23 19:05:02 sandygao Exp $
    */
   
   class XSDHandler {
  @@ -1268,6 +1268,13 @@
       // to by a in the current SchemaNamespaceSupport object, and returns this
       // information in the form (nsURI,b) suitable for lookups in the global
       // decl Hashtables.
  +    // REVISIT: should have it return QName, instead of String. this would
  +    //          save lots of string concatenation time. we can use
  +    //          QName#equals() to compare two QNames, and use QName directly
  +    //          as a key to the SymbolHash.
  +    //          And when the DV's are ready to return compiled values from
  +    //          validate() method, we should just call QNameDV.validate()
  +    //          in this method.
       private String findQName(String name, XSDocumentInfo schemaDoc) {
           SchemaNamespaceSupport currNSMap = schemaDoc.fNamespaceSupport;
           int colonPtr = name.indexOf(':');
  
  
  
  1.7       +10 -3     xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/NOTATIONDatatypeValidator.java
  
  Index: NOTATIONDatatypeValidator.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/NOTATIONDatatypeValidator.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- NOTATIONDatatypeValidator.java	2001/10/22 21:22:37	1.6
  +++ NOTATIONDatatypeValidator.java	2001/10/23 19:05:02	1.7
  @@ -72,7 +72,7 @@
    * @author Elena Litani
    * @author Jeffrey Rodriguez-
    * @author Mark Swinkles - List Validation refactoring
  - * @version $Id: NOTATIONDatatypeValidator.java,v 1.6 2001/10/22 21:22:37 sandygao Exp $
  + * @version $Id: NOTATIONDatatypeValidator.java,v 1.7 2001/10/23 19:05:02 sandygao Exp $
    */
   public class NOTATIONDatatypeValidator extends AbstractStringValidator {
   
  @@ -152,7 +152,7 @@
           //
           if (state !=null && (fFacetsDefined & DatatypeValidator.FACET_ENUMERATION) != 0 &&
               (fEnumeration != null)) {
  -            String prefix = state.getSymbol("");
  +            String prefix = "";
               String localpart = content;
               int colonptr = content.indexOf(":");
               if (colonptr > 0) {
  @@ -161,7 +161,14 @@
   
               }
               String uriStr = state.getURI(state.getSymbol(prefix));
  -            String fullName =  (uriStr!=null)?(uriStr+","+localpart):localpart;
  +            String fullName = null;
  +            if (uriStr == null) {
  +                if (prefix.length() != 0)
  +                    throw new InvalidDatatypeValueException("Cannot resolve the prefix of the NOTATION  value '"+content+"'");
  +                fullName = localpart;
  +            } else {
  +                fullName = uriStr+","+localpart;
  +            }
               if (fEnumeration.contains( fullName ) == false)
                   throw new InvalidDatatypeValueException("Value '"+content+"' must be one of "+fEnumeration);
           }
  
  
  
  1.5       +5 -2      xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/QNameDatatypeValidator.java
  
  Index: QNameDatatypeValidator.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/datatypes/QNameDatatypeValidator.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- QNameDatatypeValidator.java	2001/10/16 17:21:39	1.4
  +++ QNameDatatypeValidator.java	2001/10/23 19:05:02	1.5
  @@ -77,7 +77,7 @@
    *
    * @author Jeffrey Rodriguez
    * @author Mark Swinkles - List Validation refactoring
  - * @version $Id: QNameDatatypeValidator.java,v 1.4 2001/10/16 17:21:39 elena Exp $
  + * @version $Id: QNameDatatypeValidator.java,v 1.5 2001/10/23 19:05:02 sandygao Exp $
    */
   public class QNameDatatypeValidator extends  AbstractStringValidator {
   
  @@ -100,13 +100,16 @@
           String msg = getErrorString(
               DatatypeMessageProvider.fgMessageKeys[DatatypeMessageProvider.ILLEGAL_STRING_FACET],
               new Object[] { key });
  -        throw new InvalidDatatypeFacetException(msg);       
  +        throw new InvalidDatatypeFacetException(msg);
       }
   
   
       protected void checkValueSpace (String content) throws InvalidDatatypeValueException {
   
           // check 3.2.18.c0 must: "NCName:NCName"
  +        // REVISIT: we need to check whether the prefix of the content is
  +        //          resolvable. not sure where to do it, checkValueSpace()
  +        //          or checkContent() or validate().
           try {
               int posColon = content.indexOf(':');
               if (posColon >= 0)
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org