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 2002/01/03 21:59:43 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/impl/xs/traversers XSDSimpleTypeTraverser.java

sandygao    02/01/03 12:59:43

  Modified:    java/src/org/apache/xerces/impl/xs/traversers
                        XSDSimpleTypeTraverser.java
  Log:
  1. We can access anySimpleType directly from the SchemaGrammar class.
  This is more efficient than looking it up in a hashtable by name.
  2. After "getGlobalDecl", we need to check whether the retuned type is a
  simpleType, before cast it to XSSimpleType.
  
  Revision  Changes    Path
  1.6       +15 -11    xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDSimpleTypeTraverser.java
  
  Index: XSDSimpleTypeTraverser.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDSimpleTypeTraverser.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- XSDSimpleTypeTraverser.java	14 Dec 2001 20:04:16 -0000	1.5
  +++ XSDSimpleTypeTraverser.java	3 Jan 2002 20:59:43 -0000	1.6
  @@ -65,6 +65,7 @@
   import org.apache.xerces.impl.XMLErrorReporter;
   import org.apache.xerces.impl.xs.SchemaGrammar;
   import org.apache.xerces.impl.xs.SchemaSymbols;
  +import org.apache.xerces.impl.xs.XSTypeDecl;
   
   import org.apache.xerces.util.DOMUtil;
   import org.apache.xerces.impl.xs.util.XInt;
  @@ -115,7 +116,7 @@
    *
    * @author Elena Litani, IBM
    * @author Neeraj Bajaj, Sun Microsystems, Inc.
  - * @version $Id: XSDSimpleTypeTraverser.java,v 1.5 2001/12/14 20:04:16 sandygao Exp $
  + * @version $Id: XSDSimpleTypeTraverser.java,v 1.6 2002/01/03 20:59:43 sandygao Exp $
    */
   class XSDSimpleTypeTraverser extends XSDAbstractTraverser {
   
  @@ -297,13 +298,13 @@
                   if (baseValidator == null) {
                       Object[] args = {content.getAttribute( SchemaSymbols.ATT_BASE )};
                       reportSchemaError("dt-unknown-basetype", args);
  -                    return (XSSimpleType)SchemaGrammar.SG_SchemaNS.getGlobalTypeDecl(SchemaSymbols.ATTVAL_ANYSIMPLETYPE);
  +                    return SchemaGrammar.fAnySimpleType;
                   }
               }
               else {
                   Object[] args = { simpleTypeDecl.getAttribute( SchemaSymbols.ATT_NAME )};
                   reportSchemaError("dt-simpleType",new Object[]{SchemaSymbols.ELT_SIMPLETYPE, nameProperty, "(annotation?, (restriction | list | union))"});
  -                return (XSSimpleType)SchemaGrammar.SG_SchemaNS.getGlobalTypeDecl(SchemaSymbols.ATTVAL_ANYSIMPLETYPE);
  +                return SchemaGrammar.fAnySimpleType;
               }
           }
           else {
  @@ -328,7 +329,7 @@
                   if (baseValidator == null) {
                       Object[] args = { content.getAttribute( SchemaSymbols.ATT_BASE ), nameProperty};
                       reportSchemaError("dt-unknown-basetype", args);
  -                    baseValidator = (XSSimpleType)SchemaGrammar.SG_SchemaNS.getGlobalTypeDecl(SchemaSymbols.ATTVAL_ANYSIMPLETYPE);
  +                    baseValidator = SchemaGrammar.fAnySimpleType;
                   }
                   // ------------------------------
                   // (variety is list)cos-list-of-atomic
  @@ -417,7 +418,7 @@
                   if (baseValidator == null) {
                       Object[] args = { content.getAttribute( SchemaSymbols.ATT_BASE ), nameProperty};
                       reportSchemaError("dt-unknown-basetype", args);
  -                    baseValidator = (XSSimpleType)SchemaGrammar.SG_SchemaNS.getGlobalTypeDecl(SchemaSymbols.ATTVAL_ANYSIMPLETYPE);
  +                    baseValidator = SchemaGrammar.fAnySimpleType;
                   }
                   content   = DOMUtil.getNextSiblingElement( content );
               }
  @@ -520,20 +521,23 @@
               (baseTypeStr.localpart.equals(SchemaSymbols.ATTVAL_ANYSIMPLETYPE) ||
                baseTypeStr.localpart.equals(SchemaSymbols.ATTVAL_ANYTYPE)) &&
               baseRefContext == SchemaSymbols.RESTRICTION) {
  -            String base = baseTypeStr.localpart;
               reportSchemaError("dt-unknown-basetype", new Object[] {
                                          DOMUtil.getAttrValue(elm, SchemaSymbols.ATT_NAME), DOMUtil.getAttrValue(elm, SchemaSymbols.ATT_BASE)});
  -            return  (XSSimpleType)SchemaGrammar.SG_SchemaNS.getGlobalTypeDecl(SchemaSymbols.ATTVAL_ANYSIMPLETYPE);
  +            return SchemaGrammar.fAnySimpleType;
           }
   
  -        XSSimpleType baseType = null;
  -        baseType = (XSSimpleType)fSchemaHandler.getGlobalDecl(schemaDoc, fSchemaHandler.TYPEDECL_TYPE, baseTypeStr);
  +        XSTypeDecl baseType = (XSTypeDecl)fSchemaHandler.getGlobalDecl(schemaDoc, fSchemaHandler.TYPEDECL_TYPE, baseTypeStr);
           if (baseType != null) {
  +            if (baseType.getXSType() != XSTypeDecl.SIMPLE_TYPE) {
  +                reportSchemaError("st-props-correct.4.1", new Object[] { baseTypeStr.rawname} );
  +                return SchemaGrammar.fAnySimpleType;
  +            }
               if ((baseType.getFinalSet() & baseRefContext) != 0) {
  -                reportSchemaError("dt-restiction-final",new Object[] { baseTypeStr.rawname} );
  +                reportSchemaError("dt-restiction-final", new Object[] { baseTypeStr.rawname} );
               }
           }
  -        return baseType;
  +
  +        return (XSSimpleType)baseType;
       }
   
       // find if union datatype validator has list datatype member.
  
  
  

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