knoaman 2003/01/07 07:43:47 Modified: c/src/xercesc/internal IGXMLScanner.cpp SGXMLScanner.cpp c/src/xercesc/validators/schema TraverseSchema.cpp Log: Errata E1-22: anyType has process contents of lax. Revision Changes Path 1.3 +6 -2 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.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- IGXMLScanner.cpp 20 Dec 2002 22:09:56 -0000 1.2 +++ IGXMLScanner.cpp 7 Jan 2003 15:43:47 -0000 1.3 @@ -1956,6 +1956,8 @@ ContentLeafNameTypeVector* cv = 0; XMLContentModel* cm = 0; int currentScope = Grammar::TOP_LEVEL_SCOPE; + bool laxThisOne = false; + if (!isRoot && fGrammarType == Grammar::SchemaGrammarType) { SchemaElementDecl* tempElement = (SchemaElementDecl*) fElemStack.topElement()->fThisElement; SchemaElementDecl::ModelTypes modelType = tempElement->getModelType(); @@ -1968,6 +1970,9 @@ cv = cm->getContentLeafNameTypeVector(); currentScope = fElemStack.getCurrentScope(); } + else if (modelType == SchemaElementDecl::Any) { + laxThisOne = true; + } } // Now, since we might have to update the namespace map for this element, @@ -2042,7 +2047,6 @@ //if schema, check if we should lax or skip the validation of this element bool parentValidation = fValidate; - bool laxThisOne = false; if (cv) { QName element(fPrefixBuf.getRawBuffer(), &qnameRawBuf[prefixColonPos + 1], uriId); // elementDepth will be > 0, as cv is only constructed if element is not 1.8 +6 -3 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.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- SGXMLScanner.cpp 6 Jan 2003 19:44:57 -0000 1.7 +++ SGXMLScanner.cpp 7 Jan 2003 15:43:47 -0000 1.8 @@ -1110,6 +1110,7 @@ ContentLeafNameTypeVector* cv = 0; XMLContentModel* cm = 0; int currentScope = Grammar::TOP_LEVEL_SCOPE; + bool laxThisOne = false; if (!isRoot) { SchemaElementDecl* tempElement = (SchemaElementDecl*) fElemStack.topElement()->fThisElement; @@ -1123,6 +1124,9 @@ cv = cm->getContentLeafNameTypeVector(); currentScope = fElemStack.getCurrentScope(); } + else if (modelType == SchemaElementDecl::Any) { + laxThisOne = true; + } } // Now, since we might have to update the namespace map for this element, @@ -1162,7 +1166,6 @@ //if schema, check if we should lax or skip the validation of this element bool parentValidation = fValidate; - bool laxThisOne = false; if (cv) { QName element(fPrefixBuf.getRawBuffer(), &qnameRawBuf[prefixColonPos + 1], uriId); // elementDepth will be > 0, as cv is only constructed if element is not @@ -1851,7 +1854,7 @@ fElemStateSize = newSize; } -// This method is called from scanStartTagNS() to build up the list of +// This method is called from scanStartTag() to build up the list of // XMLAttr objects that will be passed out in the start tag callout. We // get the key/value pairs from the raw scan of explicitly provided attrs, // which have not been normalized. And we get the element declaration from 1.51 +4 -4 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.50 retrieving revision 1.51 diff -u -r1.50 -r1.51 --- TraverseSchema.cpp 6 Jan 2003 19:43:49 -0000 1.50 +++ TraverseSchema.cpp 7 Jan 2003 15:43:47 -0000 1.51 @@ -2599,7 +2599,7 @@ elemDecl->setAttWildCard(new SchemaAttDef(XMLUni::fgZeroLenString, XMLUni::fgZeroLenString, fEmptyNamespaceURI, XMLAttDef::Any_Any, - XMLAttDef::ProcessContents_Strict)); + XMLAttDef::ProcessContents_Lax)); } // key/keyref/unique processing @@ -5656,7 +5656,7 @@ fEmptyNamespaceURI), false); - anySpecNode->setType(ContentSpecNode::Any); + anySpecNode->setType(ContentSpecNode::Any_Lax); anySpecNode->setMinOccurs(0); anySpecNode->setMaxOccurs(SchemaSymbols::UNBOUNDED); @@ -5995,7 +5995,7 @@ baseAttWildCard = new SchemaAttDef(XMLUni::fgZeroLenString, XMLUni::fgZeroLenString, fEmptyNamespaceURI, XMLAttDef::Any_Any, - XMLAttDef::ProcessContents_Strict); + XMLAttDef::ProcessContents_Lax); janBaseAttWildCard.reset(baseAttWildCard); }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]