sandygao    2002/09/25 06:23:17

  Modified:    java/src/org/apache/xerces/impl/xs XMLSchemaValidator.java
  Log:
  A bug: we didn't send characters to the document handler if
  schema-normalize-value feature is on, but the text doesn't need to be
  normalized (WS= preserve, or complex content).
  Fixed now.
  
  Revision  Changes    Path
  1.109     +15 -18    
xml-xerces/java/src/org/apache/xerces/impl/xs/XMLSchemaValidator.java
  
  Index: XMLSchemaValidator.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/XMLSchemaValidator.java,v
  retrieving revision 1.108
  retrieving revision 1.109
  diff -u -r1.108 -r1.109
  --- XMLSchemaValidator.java   25 Sep 2002 02:50:37 -0000      1.108
  +++ XMLSchemaValidator.java   25 Sep 2002 13:23:17 -0000      1.109
  @@ -732,23 +732,18 @@
        */
       public void characters(XMLString text, Augmentations augs) throws XNIException {
   
  -        handleCharacters(text);
  +        text = handleCharacters(text);
           // call handlers
           if (fDocumentHandler != null) {
  -            if (fNormalizeData) {
  -               if (fUnionType) {
  -                   // for union types we can't normalize data
  -                   // thus we only need to send augs information if any;
  -                   // the normalized data for union will be send
  -                   // after normalization is performed (at the endElement())
  -                   if (augs != null)
  -                       fDocumentHandler.characters(fEmptyXMLStr, augs);
  -                }
  -                else {
  -                    // otherwise pass the normalized string as the text
  -                    fDocumentHandler.characters(fNormalizedStr, augs);
  -                }
  -            } else {
  +            if (fNormalizeData && fUnionType) {
  +               // for union types we can't normalize data
  +               // thus we only need to send augs information if any;
  +               // the normalized data for union will be send
  +               // after normalization is performed (at the endElement())
  +               if (augs != null)
  +                   fDocumentHandler.characters(fEmptyXMLStr, augs);
  +            }
  +            else {
                   fDocumentHandler.characters(text, augs);
               }
           }
  @@ -1511,10 +1506,11 @@
       } // handleEndDocument()
   
       // handle character contents
  -    void handleCharacters(XMLString text) {
  +    // returns the normalized string if possible, otherwise the original string
  +    XMLString handleCharacters(XMLString text) {
   
           if (fSkipValidationDepth >= 0)
  -            return;
  +            return text;
   
           // Note: data in EntityRef and CDATA is normalized as well
           // if whitespace == -1 skip normalization, because it is a complexType
  @@ -1544,6 +1540,7 @@
           // we saw first chunk of characters
           fFirstChunk = false;
   
  +        return text;
       } // handleCharacters(XMLString)
   
       /**
  
  
  

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

Reply via email to