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]