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 2003/03/20 21:14:23 UTC

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

sandygao    2003/03/20 12:14:23

  Modified:    java/src/org/apache/xerces/impl/xs/traversers
                        XSDHandler.java
  Log:
  Fixing bugs 16579, 16639,  and 16702:
  some invalid test cases concerning <redefine> weren't detected.
  Many thanks to Khaled Noaman for the patch.
  Also removed some unused imports and local variables.
  
  Revision  Changes    Path
  1.63      +33 -45    xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java
  
  Index: XSDHandler.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java,v
  retrieving revision 1.62
  retrieving revision 1.63
  diff -u -r1.62 -r1.63
  --- XSDHandler.java	21 Jan 2003 19:14:05 -0000	1.62
  +++ XSDHandler.java	20 Mar 2003 20:14:22 -0000	1.63
  @@ -2,7 +2,7 @@
    * The Apache Software License, Version 1.1
    *
    *
  - * Copyright (c) 1999-2002 The Apache Software Foundation.  All rights
  + * Copyright (c) 1999-2003 The Apache Software Foundation.  All rights
    * reserved.
    *
    * Redistribution and use in source and binary forms, with or without
  @@ -57,57 +57,41 @@
   
   package org.apache.xerces.impl.xs.traversers;
   
  -import org.apache.xerces.impl.xs.XSGrammarBucket;
  -import org.apache.xerces.impl.xs.XSParticleDecl;
  -import org.apache.xerces.impl.xs.XSElementDecl;
  -import org.apache.xerces.impl.xs.XSDeclarationPool;
  -import org.apache.xerces.impl.xs.SchemaNamespaceSupport;
  +import java.io.IOException;
  +import java.util.Hashtable;
  +import java.util.Stack;
  +import java.util.Vector;
  +
  +import org.apache.xerces.impl.Constants;
  +import org.apache.xerces.impl.XMLEntityManager;
  +import org.apache.xerces.impl.XMLErrorReporter;
   import org.apache.xerces.impl.xs.SchemaGrammar;
  -import org.apache.xerces.impl.xs.XSComplexTypeDecl;
  +import org.apache.xerces.impl.xs.SchemaNamespaceSupport;
   import org.apache.xerces.impl.xs.SchemaSymbols;
  -import org.apache.xerces.impl.xs.XSMessageFormatter;
  -import org.apache.xerces.impl.xs.XMLSchemaValidator;
  +import org.apache.xerces.impl.xs.XMLSchemaException;
   import org.apache.xerces.impl.xs.XMLSchemaLoader;
  +import org.apache.xerces.impl.xs.XSComplexTypeDecl;
   import org.apache.xerces.impl.xs.XSDDescription;
  -import org.apache.xerces.impl.xs.XMLSchemaException;
  -import org.apache.xerces.parsers.StandardParserConfiguration;
  -import org.apache.xerces.impl.Constants;
  -import org.apache.xerces.impl.XMLErrorReporter;
  -import org.apache.xerces.impl.XMLEntityManager;
  +import org.apache.xerces.impl.xs.XSDeclarationPool;
  +import org.apache.xerces.impl.xs.XSElementDecl;
  +import org.apache.xerces.impl.xs.XSGrammarBucket;
  +import org.apache.xerces.impl.xs.XSMessageFormatter;
  +import org.apache.xerces.impl.xs.XSParticleDecl;
  +import org.apache.xerces.impl.xs.dom.ElementNSImpl;
  +import org.apache.xerces.impl.xs.opti.ElementImpl;
  +import org.apache.xerces.impl.xs.opti.SchemaParsingConfig;
  +import org.apache.xerces.impl.xs.util.SimpleLocator;
  +import org.apache.xerces.util.DOMUtil;
  +import org.apache.xerces.util.SymbolTable;
  +import org.apache.xerces.util.XMLSymbols;
   import org.apache.xerces.xni.QName;
  -import org.apache.xerces.xni.XMLResourceIdentifier;
  +import org.apache.xerces.xni.grammars.XMLGrammarPool;
   import org.apache.xerces.xni.parser.XMLEntityResolver;
   import org.apache.xerces.xni.parser.XMLErrorHandler;
  -import org.apache.xerces.xni.XMLAttributes;
  -import org.apache.xerces.xni.parser.XMLConfigurationException;
   import org.apache.xerces.xni.parser.XMLInputSource;
  -import org.apache.xerces.xni.grammars.Grammar;
  -import org.apache.xerces.xni.grammars.XMLGrammarPool;
  -import org.apache.xerces.util.XMLResourceIdentifierImpl;
  -import org.apache.xerces.util.SymbolTable;
  -import org.apache.xerces.util.XMLSymbols;
  -import org.apache.xerces.util.SymbolHash;
  -import org.apache.xerces.util.DOMUtil;
  -import org.apache.xerces.xni.XMLLocator;
  -
  -import org.apache.xerces.impl.xs.opti.SchemaParsingConfig;
  -
  -import org.apache.xerces.impl.xs.dom.DOMParser;
  -import org.apache.xerces.impl.xs.dom.DOMNodePool;
  -import org.apache.xerces.impl.xs.dom.ElementNSImpl;
  -import org.apache.xerces.impl.xs.opti.ElementImpl;
  -import org.apache.xerces.impl.xs.util.SimpleLocator;
   import org.w3c.dom.Document;
  -import org.w3c.dom.Attr;
   import org.w3c.dom.Element;
   
  -import org.xml.sax.InputSource;
  -
  -import java.util.Hashtable;
  -import java.util.Stack;
  -import java.util.Vector;
  -import java.io.IOException;
  -
   /**
    * The purpose of this class is to co-ordinate the construction of a
    * grammar object corresponding to a schema.  To do this, it must be
  @@ -1650,6 +1634,13 @@
                   collidedWithRedefine = false;
               }
               if (redefinedSchema != null) { //redefinition involved somehow
  +                // If both components belong to the same document then
  +                // report an error and return.
  +                if (fDoc2XSDocumentMap.get(DOMUtil.getDocument(collidingElem)) == currSchema) {
  +                    reportSchemaError("sch-props-correct.2", new Object[]{qName}, currComp);
  +                    return;
  +                }
  +
                   String newName = qName.substring(qName.lastIndexOf(',')+1)+REDEF_IDENTIFIER;
                   if (redefinedSchema == currSchema) { // object comp. okay here
                       // now have to do some renaming...
  @@ -1694,7 +1685,6 @@
                                               Element child, String componentType,
                                               String oldName, String newName) {
   
  -        SchemaNamespaceSupport currNSMap = currSchema.fNamespaceSupport;
           if (componentType.equals(SchemaSymbols.ELT_SIMPLETYPE)) {
               Element grandKid = DOMUtil.getFirstChildElement(child);
               if (grandKid == null) {
  @@ -1862,7 +1852,6 @@
       // being redefined.
       private int changeRedefineGroup(String originalQName, String elementSought,
                                       String newName, Element curr, XSDocumentInfo schemaDoc) {
  -        SchemaNamespaceSupport currNSMap = schemaDoc.fNamespaceSupport;
           int result = 0;
           for (Element child = DOMUtil.getFirstChildElement(curr);
               child != null; child = DOMUtil.getNextSiblingElement(child)) {
  @@ -1875,7 +1864,6 @@
                       String processedRef = findQName(ref, schemaDoc);
                       if (originalQName.equals(processedRef)) {
                           String prefix = XMLSymbols.EMPTY_STRING;
  -                        String localpart = ref;
                           int colonptr = ref.indexOf(":");
                           if (colonptr > 0) {
                               prefix = ref.substring(0,colonptr);
  
  
  

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