You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ne...@apache.org on 2001/10/17 18:00:46 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/impl/v2 XSDAbstractTraverser.java XSDHandler.java XSDocumentInfo.java

neilg       01/10/17 09:00:46

  Modified:    java/src/org/apache/xerces/impl/v2 XSDAbstractTraverser.java
                        XSDHandler.java XSDocumentInfo.java
  Log:
  fixed some NPEs.  Also fixed a problem arising when a reference was made to a component from the schema-for-schema namespace that could not be found.
  
  Revision  Changes    Path
  1.27      +3 -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.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- XSDAbstractTraverser.java	2001/10/11 21:05:29	1.26
  +++ XSDAbstractTraverser.java	2001/10/17 16:00:45	1.27
  @@ -77,7 +77,7 @@
    * @author Elena Litani, IBM
    * @author Rahul Srivastava, Sun Microsystems Inc.
    *
  - * @version $Id: XSDAbstractTraverser.java,v 1.26 2001/10/11 21:05:29 elena Exp $
  + * @version $Id: XSDAbstractTraverser.java,v 1.27 2001/10/17 16:00:45 neilg Exp $
    */
   abstract class XSDAbstractTraverser {
   
  @@ -383,7 +383,8 @@
               else if (childName.equals(SchemaSymbols.ELT_ATTRIBUTEGROUP)) {
                   //REVISIT: do we need to save some state at this point??
                   tempAttrGrp = fSchemaHandler.fAttributeGroupTraverser.traverseLocal(
  -                                                                                   child, schemaDoc, grammar);
  +                       child, schemaDoc, grammar);
  +                if(tempAttrGrp == null ) break;
                   XSAttributeUse[] attrUseS = tempAttrGrp.getAttributeUses();
                   XSAttributeUse existingAttrUse = null;
                   for (int i=0; i<attrUseS.length; i++) {
  
  
  
  1.43      +11 -2     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.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- XSDHandler.java	2001/10/16 17:21:39	1.42
  +++ XSDHandler.java	2001/10/17 16:00:45	1.43
  @@ -97,7 +97,7 @@
    * schema, other grammars may be constructed as a side-effect.
    *
    * @author Neil Graham, IBM
  - * @version $Id: XSDHandler.java,v 1.42 2001/10/16 17:21:39 elena Exp $
  + * @version $Id: XSDHandler.java,v 1.43 2001/10/17 16:00:45 neilg Exp $
    */
   
   class XSDHandler {
  @@ -666,10 +666,20 @@
           XSDocumentInfo schemaWithDecl = null;
           SchemaGrammar sGrammar = null;
           Element decl = null;
  +        Object retObj = null;
   
           if (declToTraverse.uri != null &&
               declToTraverse.uri.equals(SchemaSymbols.URI_SCHEMAFORSCHEMA)) {
               sGrammar = SchemaGrammar.SG_SchemaNS;
  +            if(currSchema.fTargetNamespace != SchemaSymbols.URI_SCHEMAFORSCHEMA) {
  +                if(declType == TYPEDECL_TYPE) {
  +                    retObj = sGrammar.getGlobalTypeDecl(declToTraverse.localpart);
  +                }
  +                if (retObj == null) {
  +                    fElementTraverser.reportGenericSchemaError("Could not locate a component corresponding to " + declToTraverse.localpart);
  +                    return null;
  +                }
  +            }
           } else {
               String declKey = declToTraverse.uri == null? ","+declToTraverse.localpart:
                       declToTraverse.uri+","+declToTraverse.localpart;
  @@ -715,7 +725,6 @@
               sGrammar = fGrammarResolver.getGrammar(schemaWithDecl.fTargetNamespace);
           }
   
  -        Object retObj = null;
           switch (declType) {
           case ATTRIBUTE_TYPE :
               retObj = sGrammar.getGlobalAttributeDecl(declToTraverse.localpart);
  
  
  
  1.16      +2 -1      xml-xerces/java/src/org/apache/xerces/impl/v2/XSDocumentInfo.java
  
  Index: XSDocumentInfo.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/v2/XSDocumentInfo.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- XSDocumentInfo.java	2001/10/16 16:00:35	1.15
  +++ XSDocumentInfo.java	2001/10/17 16:00:46	1.16
  @@ -74,7 +74,7 @@
    * affect the contents of that schema document alone.
    *
    * @author Neil Graham, IBM
  - * @version $Id: XSDocumentInfo.java,v 1.15 2001/10/16 16:00:35 neilg Exp $
  + * @version $Id: XSDocumentInfo.java,v 1.16 2001/10/17 16:00:46 neilg Exp $
    */
   
   class XSDocumentInfo {
  @@ -126,6 +126,7 @@
                   ((XInt)schemaAttrs[XSAttributeChecker.ATTIDX_FINALDEFAULT]).shortValue();
               fTargetNamespace =
                   (String)schemaAttrs[XSAttributeChecker.ATTIDX_TARGETNAMESPACE];
  +            if(fTargetNamespace.length() == 0) fTargetNamespace = null;
               if (fTargetNamespace != null)
                   fTargetNamespace = symbolTable.addSymbol(fTargetNamespace);
   
  
  
  

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