You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by er...@locus.apache.org on 2000/10/09 19:51:04 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/validators/schema TraverseSchema.java

ericye      00/10/09 10:51:03

  Modified:    java/src/org/apache/xerces/validators/schema
                        TraverseSchema.java
  Log:
  
  
  Revision  Changes    Path
  1.51      +25 -4     xml-xerces/java/src/org/apache/xerces/validators/schema/TraverseSchema.java
  
  Index: TraverseSchema.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/validators/schema/TraverseSchema.java,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- TraverseSchema.java	2000/09/14 00:30:48	1.50
  +++ TraverseSchema.java	2000/10/09 17:51:01	1.51
  @@ -374,7 +374,7 @@
    *  
    * @see                  org.apache.xerces.validators.common.Grammar
    *
  - * @version $Id: TraverseSchema.java,v 1.50 2000/09/14 00:30:48 ericye Exp $
  + * @version $Id: TraverseSchema.java,v 1.51 2000/10/09 17:51:01 ericye Exp $
    */
   
   public class TraverseSchema implements 
  @@ -540,10 +540,31 @@
               reportGenericSchemaError("Internal error: don't have a GrammarResolver for TraverseSchema");
           }
           else{
  -            fSchemaGrammar.setComplexTypeRegistry(fComplexTypeRegistry);
  +            // for complex type registry, attribute decl registry and 
  +            // namespace mapping, needs to check whether the passed in 
  +            // Grammar was a newly instantiated one.
  +            if (fSchemaGrammar.getComplexTypeRegistry() == null ) {
  +                fSchemaGrammar.setComplexTypeRegistry(fComplexTypeRegistry);
  +            }
  +            else {
  +                fComplexTypeRegistry = fSchemaGrammar.getComplexTypeRegistry();
  +            }
  +
  +            if (fSchemaGrammar.getAttirubteDeclRegistry() == null ) {
  +                fSchemaGrammar.setAttributeDeclRegistry(fAttributeDeclRegistry);
  +            }
  +            else {
  +                fAttributeDeclRegistry = fSchemaGrammar.getAttirubteDeclRegistry();
  +            }
  +
  +            if (fSchemaGrammar.getNamespacesScope() == null ) {
  +                fSchemaGrammar.setNamespacesScope(fNamespacesScope);
  +            }
  +            else {
  +                fNamespacesScope = fSchemaGrammar.getNamespacesScope();
  +            }
  +
               fSchemaGrammar.setDatatypeRegistry(fDatatypeRegistry);
  -            fSchemaGrammar.setAttributeDeclRegistry(fAttributeDeclRegistry);
  -            fSchemaGrammar.setNamespacesScope(fNamespacesScope);
               fSchemaGrammar.setTargetNamespaceURI(fTargetNSURIString);
               fGrammarResolver.putGrammar(fTargetNSURIString, fSchemaGrammar);
           }