You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ne...@apache.org on 2003/12/20 07:29:01 UTC

cvs commit: xml-xerces/c/src/xercesc/internal IGXMLScanner2.cpp IGXMLScanner.cpp SGXMLScanner.cpp

neilg       2003/12/19 22:29:01

  Modified:    c/src/xercesc/internal IGXMLScanner2.cpp IGXMLScanner.cpp
                        SGXMLScanner.cpp
  Log:
  add attribute names to PSVIAttributeList and fix some problems with calculation of canonical values in element content
  
  Revision  Changes    Path
  1.54      +7 -3      xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp
  
  Index: IGXMLScanner2.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp,v
  retrieving revision 1.53
  retrieving revision 1.54
  diff -u -r1.53 -r1.54
  --- IGXMLScanner2.cpp	19 Dec 2003 07:20:03 -0000	1.53
  +++ IGXMLScanner2.cpp	20 Dec 2003 06:29:00 -0000	1.54
  @@ -593,7 +593,7 @@
                   if(actualAttDef)
                   {
   	                XSAttributeDeclaration *attrDecl = (XSAttributeDeclaration *)fModel->getXSObject(actualAttDef);
  -	                PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(); 
  +	                PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(suffPtr, fURIStringPool->getValueForId(uriId)); 
                       DatatypeValidator * attrDataType = actualAttDef->getDatatypeValidator();
   	                XSSimpleTypeDefinition *validatingType = (XSSimpleTypeDefinition *)fModel->getXSObject(attrDataType);
   	                if(attrValid != PSVIItem::VALIDITY_VALID)
  @@ -647,7 +647,7 @@
                   attrValidator = DatatypeValidatorFactory::getBuiltInRegistry()->get(SchemaSymbols::fgDT_ANYURI);
               if(getPSVIHandler() && fGrammarType == Grammar::SchemaGrammarType)
               {
  -	            PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(); 
  +	            PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(suffPtr, fURIStringPool->getValueForId(uriId)); 
   	            XSSimpleTypeDefinition *validatingType = (attrValidator)
                               ? (XSSimpleTypeDefinition *)fModel->getXSObject(attrValidator)
                               : 0;
  @@ -835,7 +835,11 @@
                       retCount++;
                       if(getPSVIHandler() && fGrammarType == Grammar::SchemaGrammarType)
                       {
  -                        PSVIAttribute *defAttrToFill = fPSVIAttrList->getPSVIAttributeToFill();
  +                        QName *attName = ((SchemaAttDef *)curDef)->getAttName();
  +                        PSVIAttribute *defAttrToFill = fPSVIAttrList->getPSVIAttributeToFill
  +                        (
  +                            attName->getLocalPart(), fURIStringPool->getValueForId( attName->getURI())
  +                        );
                           XSAttributeDeclaration *defAttrDecl = (XSAttributeDeclaration *)fModel->getXSObject((void *)curDef);
                           DatatypeValidator * attrDataType = ((SchemaAttDef *)curDef)->getDatatypeValidator();
                           XSSimpleTypeDefinition *defAttrType = 
  
  
  
  1.53      +8 -1      xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp
  
  Index: IGXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner.cpp,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -r1.52 -r1.53
  --- IGXMLScanner.cpp	19 Dec 2003 07:20:03 -0000	1.52
  +++ IGXMLScanner.cpp	20 Dec 2003 06:29:00 -0000	1.53
  @@ -3472,13 +3472,20 @@
       }
   
       XSTypeDefinition* typeDef = 0;
  +    bool isMixed = false;
       if (fPSVIElemContext.fCurrentTypeInfo)
  +    {
           typeDef = (XSTypeDefinition*) fModel->getXSObject(fPSVIElemContext.fCurrentTypeInfo);
  +        SchemaElementDecl::ModelTypes modelType = (SchemaElementDecl::ModelTypes)fPSVIElemContext.fCurrentTypeInfo->getContentType();
  +        isMixed = (modelType == SchemaElementDecl::Mixed_Simple
  +                || modelType == SchemaElementDecl::Mixed_Complex);
  +    }
       else if (fPSVIElemContext.fCurrentDV)
           typeDef = (XSTypeDefinition*) fModel->getXSObject(fPSVIElemContext.fCurrentDV);
   
       XMLCh* canonicalValue = 0;
  -    if (fPSVIElemContext.fNormalizedValue )
  +    if (fPSVIElemContext.fNormalizedValue && !isMixed && 
  +            validity == PSVIElement::VALIDITY_VALID)
       {
           if (memberDV)
               canonicalValue = (XMLCh*) memberDV->getCanonicalRepresentation(fPSVIElemContext.fNormalizedValue, fMemoryManager);
  
  
  
  1.70      +15 -4     xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp
  
  Index: SGXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp,v
  retrieving revision 1.69
  retrieving revision 1.70
  diff -u -r1.69 -r1.70
  --- SGXMLScanner.cpp	19 Dec 2003 07:20:03 -0000	1.69
  +++ SGXMLScanner.cpp	20 Dec 2003 06:29:00 -0000	1.70
  @@ -2690,7 +2690,7 @@
                   if(actualAttDef)
                   {
   	                XSAttributeDeclaration *attrDecl = (XSAttributeDeclaration *)fModel->getXSObject(actualAttDef);
  -	                PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(); 
  +	                PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(suffPtr, fURIStringPool->getValueForId(uriId));
                       DatatypeValidator * attrDataType = actualAttDef->getDatatypeValidator();
   	                XSSimpleTypeDefinition *validatingType = (XSSimpleTypeDefinition *)fModel->getXSObject(attrDataType);
   	                if(attrValid != PSVIItem::VALIDITY_VALID)
  @@ -2744,7 +2744,7 @@
                   attrValidator = DatatypeValidatorFactory::getBuiltInRegistry()->get(SchemaSymbols::fgDT_ANYURI);
               if(getPSVIHandler())
               {
  -                PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill();
  +                PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(suffPtr, fURIStringPool->getValueForId(uriId));
   	            XSSimpleTypeDefinition *validatingType = (attrValidator)
                               ? (XSSimpleTypeDefinition *)fModel->getXSObject(attrValidator)
                               : 0;
  @@ -2894,7 +2894,11 @@
                       retCount++;
                       if(getPSVIHandler())
                       {
  -                        PSVIAttribute *defAttrToFill = fPSVIAttrList->getPSVIAttributeToFill();
  +                        QName *attName = ((SchemaAttDef *)curDef)->getAttName();
  +                        PSVIAttribute *defAttrToFill = fPSVIAttrList->getPSVIAttributeToFill
  +                        (
  +                            attName->getLocalPart(), fURIStringPool->getValueForId( attName->getURI())
  +                        );
                           XSAttributeDeclaration *defAttrDecl = (XSAttributeDeclaration *)fModel->getXSObject((void *)curDef);
                           DatatypeValidator * attrDataType = ((SchemaAttDef *)curDef)->getDatatypeValidator();
                           XSSimpleTypeDefinition *defAttrType = 
  @@ -4885,13 +4889,20 @@
       }
   
       XSTypeDefinition* typeDef = 0;
  +    bool isMixed = false;
       if (fPSVIElemContext.fCurrentTypeInfo)
  +    {
           typeDef = (XSTypeDefinition*) fModel->getXSObject(fPSVIElemContext.fCurrentTypeInfo);
  +        SchemaElementDecl::ModelTypes modelType = (SchemaElementDecl::ModelTypes)fPSVIElemContext.fCurrentTypeInfo->getContentType();
  +        isMixed = (modelType == SchemaElementDecl::Mixed_Simple
  +                || modelType == SchemaElementDecl::Mixed_Complex);
  +    }
       else if (fPSVIElemContext.fCurrentDV)
           typeDef = (XSTypeDefinition*) fModel->getXSObject(fPSVIElemContext.fCurrentDV);
   
       XMLCh* canonicalValue = 0;
  -    if (fPSVIElemContext.fNormalizedValue)
  +    if (fPSVIElemContext.fNormalizedValue && !isMixed &&
  +            validity == PSVIElement::VALIDITY_VALID)
       {
           if (memberDV)
               canonicalValue = (XMLCh*) memberDV->getCanonicalRepresentation(fPSVIElemContext.fNormalizedValue, fMemoryManager);
  
  
  

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