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 2001/07/05 16:53:05 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/validators/common XMLValidator.java

sandygao    01/07/05 07:53:05

  Modified:    java/src/org/apache/xerces/validators/common
                        XMLValidator.java
  Log:
  fixing bug [2318]: corrected the error message
  
  Revision  Changes    Path
  1.173     +51 -7     xml-xerces/java/src/org/apache/xerces/validators/common/XMLValidator.java
  
  Index: XMLValidator.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/validators/common/XMLValidator.java,v
  retrieving revision 1.172
  retrieving revision 1.173
  diff -u -r1.172 -r1.173
  --- XMLValidator.java	2001/06/28 22:34:47	1.172
  +++ XMLValidator.java	2001/07/05 14:53:04	1.173
  @@ -125,7 +125,7 @@
   /**
    * This class is the super all-in-one validator used by the parser.
    *
  - * @version $Id: XMLValidator.java,v 1.172 2001/06/28 22:34:47 sandygao Exp $
  + * @version $Id: XMLValidator.java,v 1.173 2001/07/05 14:53:04 sandygao Exp $
    */
   public final class XMLValidator
       implements DefaultEntityHandler.EventHandler,
  @@ -1161,7 +1161,20 @@
   
         validateElementAndAttributes(element, fAttrList);
         if (fAttrListHandle != -1) {
  -         fAttrList.endAttrList();
  +         //fAttrList.endAttrList();
  +         int dupAttrs[];
  +         if ((dupAttrs = fAttrList.endAttrList()) != null) {
  +            Object[] args = {fStringPool.toString(element.rawname), null};
  +            for (int i = 0; i < dupAttrs.length; i++) {
  +                args[1] = fStringPool.toString(dupAttrs[i]);
  +                fErrorReporter.reportError(fErrorReporter.getLocator(),
  +                                           XMLMessages.XMLNS_DOMAIN,
  +                                           XMLMessages.MSG_ATTRIBUTE_NOT_UNIQUE,
  +                                           XMLMessages.WFC_UNIQUE_ATT_SPEC,
  +                                           args,
  +                                           XMLErrorReporter.ERRORTYPE_RECOVERABLE_ERROR);
  +            }
  +         }
         }
   
         // activate identity constraints
  @@ -3013,7 +3026,20 @@
            fCurrentContentSpecType = -1;
            fInElementContent = false;
            if (fAttrListHandle != -1) {
  -            fAttrList.endAttrList();
  +            //fAttrList.endAttrList();
  +            int dupAttrs[];
  +            if ((dupAttrs = fAttrList.endAttrList()) != null) {
  +               Object[] args = {fStringPool.toString(element.rawname), null};
  +               for (int i = 0; i < dupAttrs.length; i++) {
  +                   args[1] = fStringPool.toString(dupAttrs[i]);
  +                   fErrorReporter.reportError(fErrorReporter.getLocator(),
  +                                              XMLMessages.XMLNS_DOMAIN,
  +                                              XMLMessages.MSG_ATTRIBUTE_NOT_UNIQUE,
  +                                              XMLMessages.WFC_UNIQUE_ATT_SPEC,
  +                                              args,
  +                                              XMLErrorReporter.ERRORTYPE_RECOVERABLE_ERROR);
  +               }
  +            }
               int index = fAttrList.getFirstAttr(fAttrListHandle);
               while (index != -1) {
                  if (fStringPool.equalNames(fAttrList.getAttrName(index), fXMLLang)) {
  @@ -3499,7 +3525,20 @@
               fAttrListHandle = addDefaultAttributes(elementIndex, attrList, fAttrListHandle, fValidating, fStandaloneReader != -1);
            }
            if (fAttrListHandle != -1) {
  -            fAttrList.endAttrList();
  +            //fAttrList.endAttrList();
  +            int dupAttrs[];
  +            if ((dupAttrs = fAttrList.endAttrList()) != null) {
  +               Object[] args = {fStringPool.toString(element.rawname), null};
  +               for (int i = 0; i < dupAttrs.length; i++) {
  +                   args[1] = fStringPool.toString(dupAttrs[i]);
  +                   fErrorReporter.reportError(fErrorReporter.getLocator(),
  +                                              XMLMessages.XMLNS_DOMAIN,
  +                                              XMLMessages.MSG_ATTRIBUTE_NOT_UNIQUE,
  +                                              XMLMessages.WFC_UNIQUE_ATT_SPEC,
  +                                              args,
  +                                              XMLErrorReporter.ERRORTYPE_RECOVERABLE_ERROR);
  +               }
  +            }
            }
   
            if (DEBUG_PRINT_ATTRIBUTES) {
  @@ -3849,9 +3888,14 @@
                  fValID.validate( value, fIdDefs );
                  fValIDRef.validate( value, this.fValidateIDRef ); //just in case we called id after IDREF
               } catch ( InvalidDatatypeValueException ex ) {
  -               reportRecoverableXMLError(XMLMessages.MSG_ID_INVALID,
  -                                         XMLMessages.VC_ID,
  -                                         fStringPool.toString( attributeDecl.name.rawname), value );
  +               int major = ex.getMajorCode(), minor = ex.getMinorCode();
  +               if (major == -1) {
  +                   major = XMLMessages.MSG_ID_INVALID;
  +                   minor = XMLMessages.VC_ID;
  +               }
  +               reportRecoverableXMLError(major, minor,
  +                                         fStringPool.toString( attributeDecl.name.rawname),
  +                                         value );
               }
   
               if (fNormalizeAttributeValues && value != unTrimValue) {
  
  
  

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