sandygao    2003/01/16 15:59:04

  Modified:    java/src/org/apache/xerces/impl/xs SchemaGrammar.java
                        XSModelImpl.java
  Log:
  Include the schema for the schema namespace in XSModel.
  Types from the schema namespace are by definition present in every
  schema document, so they should be included in XSModel.
  
  Revision  Changes    Path
  1.28      +9 -2      xml-xerces/java/src/org/apache/xerces/impl/xs/SchemaGrammar.java
  
  Index: SchemaGrammar.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/SchemaGrammar.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- SchemaGrammar.java        14 Jan 2003 20:21:45 -0000      1.27
  +++ SchemaGrammar.java        16 Jan 2003 23:59:03 -0000      1.28
  @@ -145,8 +145,15 @@
           fGlobalElemDecls = new SymbolHash();
           fGlobalGroupDecls = new SymbolHash();
           fGlobalNotationDecls = new SymbolHash();
  -        fGlobalTypeDecls = new SymbolHash();
           fGlobalIDConstraintDecls = new SymbolHash();
  +
  +        // if we are parsing S4S, put built-in types in first
  +        // they might get overwritten by the types from S4S, but that's
  +        // considered what the application wants to do.
  +        if (fTargetNamespace == SchemaSymbols.URI_SCHEMAFORSCHEMA)
  +            fGlobalTypeDecls = SG_SchemaNS.fGlobalTypeDecls.makeClone();
  +        else
  +            fGlobalTypeDecls = new SymbolHash();
       } // <init>(String, XSDDescription)
   
       // number of built-in XSTypes we need to create for base and full
  
  
  
  1.7       +11 -3     xml-xerces/java/src/org/apache/xerces/impl/xs/XSModelImpl.java
  
  Index: XSModelImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/XSModelImpl.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- XSModelImpl.java  14 Jan 2003 20:21:45 -0000      1.6
  +++ XSModelImpl.java  16 Jan 2003 23:59:04 -0000      1.7
  @@ -149,11 +149,19 @@
       public XSModelImpl(SchemaGrammar[] grammars) {
           // copy namespaces/grammars from the array to our arrays
           int len = grammars.length;
  -        fNamespaces = new String[Math.max(len, 5)];
  -        fGrammarList = new SchemaGrammar[Math.max(len, 5)];
  +        fNamespaces = new String[Math.max(len+1, 5)];
  +        fGrammarList = new SchemaGrammar[Math.max(len+1, 5)];
  +        boolean hasS4S = false;
           for (int i = 0; i < len; i++) {
               fNamespaces[i] = grammars[i].getTargetNamespace();
               fGrammarList[i] = grammars[i];
  +            if (fNamespaces[i] == SchemaSymbols.URI_SCHEMAFORSCHEMA)
  +                hasS4S = true;
  +        }
  +        // If a schema for the schema namespace isn't included, include it here.
  +        if (!hasS4S) {
  +            fNamespaces[len] = SchemaSymbols.URI_SCHEMAFORSCHEMA;
  +            fGrammarList[len++] = SchemaGrammar.SG_SchemaNS;
           }
   
           SchemaGrammar sg1, sg2;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to