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/21 18:20:38 UTC

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

sandygao    02/01/21 09:20:38

  Modified:    java/src/org/apache/xerces/impl/xs/traversers
                        XSDWildcardTraverser.java XSAttributeChecker.java
  Log:
  Fixing bug [5884] and [5929]:
  In the old implementation, when there are multiple <any>/<anyAttribute>
  elements in the xsd file, it's possible that the "process contents" value in one
  wildcard is overwritten by that value from another wildcard.
  Now it's fixed.
  
  Revision  Changes    Path
  1.2       +7 -2      xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDWildcardTraverser.java
  
  Index: XSDWildcardTraverser.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDWildcardTraverser.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XSDWildcardTraverser.java	25 Oct 2001 20:36:04 -0000	1.1
  +++ XSDWildcardTraverser.java	21 Jan 2002 17:20:37 -0000	1.2
  @@ -92,7 +92,7 @@
    * @author Rahul Srivastava, Sun Microsystems Inc.
    * @author Sandy Gao, IBM
    *
  - * @version $Id: XSDWildcardTraverser.java,v 1.1 2001/10/25 20:36:04 elena Exp $
  + * @version $Id: XSDWildcardTraverser.java,v 1.2 2002/01/21 17:20:37 sandygao Exp $
    */
   class XSDWildcardTraverser extends XSDAbstractTraverser {
   
  @@ -180,9 +180,14 @@
                                            SchemaGrammar grammar) {
   
           //get all attributes
  -        XSWildcardDecl wildcard = (XSWildcardDecl) attrValues[XSAttributeChecker.ATTIDX_NAMESPACE];
  +        XSWildcardDecl namespace = (XSWildcardDecl) attrValues[XSAttributeChecker.ATTIDX_NAMESPACE];
           XInt processContentsAttr = (XInt) attrValues[XSAttributeChecker.ATTIDX_PROCESSCONTENTS];
   
  +        XSWildcardDecl wildcard = new XSWildcardDecl();
  +        
  +        // namespace
  +        wildcard.fType = namespace.fType;
  +        wildcard.fNamespaceList = namespace.fNamespaceList;
           // process contents
           wildcard.fProcessContents = processContentsAttr.shortValue();
   
  
  
  
  1.7       +4 -3      xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSAttributeChecker.java
  
  Index: XSAttributeChecker.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSAttributeChecker.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- XSAttributeChecker.java	17 Jan 2002 17:59:33 -0000	1.6
  +++ XSAttributeChecker.java	21 Jan 2002 17:20:37 -0000	1.7
  @@ -101,7 +101,7 @@
    * - use symbol table instead of many hashtables
    *
    * @author Sandy Gao, IBM
  - * @version $Id: XSAttributeChecker.java,v 1.6 2002/01/17 17:59:33 neilg Exp $
  + * @version $Id: XSAttributeChecker.java,v 1.7 2002/01/21 17:20:37 sandygao Exp $
    */
   
   public class XSAttributeChecker {
  @@ -173,6 +173,7 @@
   
       // default wildcard to return
       private static final XSWildcardDecl WC_ANY   = new XSWildcardDecl();
  +    private final        XSWildcardDecl fTempWC  = new XSWildcardDecl();
   
       // used to store the map from element name to attribute list
       protected static Hashtable fEleAttrsMapG = new Hashtable();
  @@ -1405,14 +1406,14 @@
                   wildcard = WC_ANY;
               } else if (value.equals(SchemaSymbols.ATTVAL_TWOPOUNDOTHER)) {
                   // ##other
  -                wildcard = new XSWildcardDecl();
  +                wildcard = fTempWC;
                   wildcard.fType = XSWildcardDecl.WILDCARD_OTHER;
                   wildcard.fNamespaceList = new String[2];
                   wildcard.fNamespaceList[0] = schemaDoc.fTargetNamespace;
                   wildcard.fNamespaceList[1] = null;
               } else {
                   // list
  -                wildcard = new XSWildcardDecl();
  +                wildcard = fTempWC;
                   wildcard.fType = XSWildcardDecl.WILDCARD_LIST;
   
                   // tokenize
  
  
  

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