cargilld    2004/09/29 16:25:42

  Modified:    c/src/xercesc/internal XSAXMLScanner.cpp
               c/src/xercesc/validators/schema TraverseSchema.cpp
  Log:
  Validate Annotation Changes.
  
  Revision  Changes    Path
  1.2       +9 -2      xml-xerces/c/src/xercesc/internal/XSAXMLScanner.cpp
  
  Index: XSAXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XSAXMLScanner.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XSAXMLScanner.cpp 27 Sep 2004 20:58:14 -0000      1.1
  +++ XSAXMLScanner.cpp 29 Sep 2004 23:25:42 -0000      1.2
  @@ -669,7 +669,14 @@
   void XSAXMLScanner::switchGrammar( const XMLCh* const uriStr
                                    , bool laxValidate)
   {
  -    Grammar* tempGrammar = fGrammarResolver->getGrammar(uriStr);
  +    Grammar* tempGrammar = 0;
  +
  +    if (XMLString::equals(uriStr, SchemaSymbols::fgURI_SCHEMAFORSCHEMA)) {
  +        tempGrammar = fSchemaGrammar;
  +    }
  +    else {
  +        tempGrammar = fGrammarResolver->getGrammar(uriStr);
  +    }
   
       if (tempGrammar && tempGrammar->getGrammarType() == Grammar::SchemaGrammarType)
       {
  
  
  
  1.119     +18 -8     xml-xerces/c/src/xercesc/validators/schema/TraverseSchema.cpp
  
  Index: TraverseSchema.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/TraverseSchema.cpp,v
  retrieving revision 1.118
  retrieving revision 1.119
  diff -u -r1.118 -r1.119
  --- TraverseSchema.cpp        28 Sep 2004 02:14:14 -0000      1.118
  +++ TraverseSchema.cpp        29 Sep 2004 23:25:42 -0000      1.119
  @@ -8899,14 +8899,24 @@
       complexType->setAnonymous();
       complexType->setContentType(SchemaElementDecl::Mixed_Complex);
       annotElemDecl->setComplexTypeInfo(complexType);
  -
  -    // Revisit: is this okay for a key?
  +    
       fBuffer.set(SchemaSymbols::fgURI_SCHEMAFORSCHEMA);
       fBuffer.append(chComma);
       fBuffer.append(chLatin_C);
  -    fBuffer.append(chDigit_0);        
  -    grammar->getComplexTypeRegistry()->put((void*) fBuffer.getRawBuffer(), 
complexType);
  -
  +    fBuffer.append(chDigit_0);     
  +    const XMLCh* fullName = 
fStringPool->getValueForId(fStringPool->addOrFind(fBuffer.getRawBuffer()));
  +    grammar->getComplexTypeRegistry()->put((void*) fullName, complexType);
  +    complexType->setTypeName(fullName);    
  +     complexType->setAttWildCard
  +    (
  +        new (memMgr) SchemaAttDef
  +        (
  +            XMLUni::fgZeroLenString, XMLUni::fgZeroLenString,
  +            fEmptyNamespaceURI, XMLAttDef::Any_Any,
  +            XMLAttDef::ProcessContents_Lax, memMgr
  +        )
  +    );
  +    
       SchemaElementDecl* appInfoElemDecl = new (memMgr) SchemaElementDecl
       (
           XMLUni::fgZeroLenString , SchemaSymbols::fgELT_APPINFO
  @@ -8932,7 +8942,7 @@
           XMLUni::fgZeroLenString , SchemaSymbols::fgELT_DOCUMENTATION
           , fURIStringPool->addOrFind(SchemaSymbols::fgURI_SCHEMAFORSCHEMA)
           , SchemaElementDecl::Any, Grammar::TOP_LEVEL_SCOPE , memMgr
  -    );
  +   );
           
       docElemDecl->setCreateReason(XMLElementDecl::Declared);
       docElemDecl->setAttWildCard
  @@ -8985,7 +8995,7 @@
           XSAnnotation& xsAnnot = xsAnnotationEnum.nextElement();
           memBufIS->resetMemBufInputSource((const 
XMLByte*)xsAnnot.getAnnotationString()
                                           , 
XMLString::stringLen(xsAnnot.getAnnotationString())*sizeof(XMLCh));
  -        //scanner->scanDocument(*memBufIS);
  +        scanner->scanDocument(*memBufIS);
       }
       
       delete scanner;
  
  
  

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

Reply via email to