You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by kn...@apache.org on 2001/07/24 20:32:27 UTC
cvs commit: xml-xerces/c/src/internal XMLScanner.cpp
knoaman 01/07/24 11:32:27
Modified: c/src/internal XMLScanner.cpp
Log:
Added support for <group> + extra constraint checking for complexType
Revision Changes Path
1.57 +39 -25 xml-xerces/c/src/internal/XMLScanner.cpp
Index: XMLScanner.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/internal/XMLScanner.cpp,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -r1.56 -r1.57
--- XMLScanner.cpp 2001/07/13 16:56:41 1.56
+++ XMLScanner.cpp 2001/07/24 18:32:27 1.57
@@ -55,7 +55,7 @@
*/
/*
- * $Id: XMLScanner.cpp,v 1.56 2001/07/13 16:56:41 tng Exp $
+ * $Id: XMLScanner.cpp,v 1.57 2001/07/24 18:32:27 knoaman Exp $
*/
@@ -2814,28 +2814,41 @@
//
bool wasAdded = false;
XMLElementDecl* elemDecl;
+ const XMLCh* nameRawBuf = fNameBuf.getRawBuffer();
+ const XMLCh* qnameRawBuf = fQNameBuf.getRawBuffer();
if (uriId != fEmptyNamespaceId) {
- if (fURIStringPool->getId(fGrammar->getTargetNamespace()) != uriId) {
+
+ // Check in current grammar before switching if necessary
+ elemDecl = fGrammar->getElemDecl
+ (
+ uriId
+ , nameRawBuf
+ , qnameRawBuf
+ , currentScope
+ );
+
+ if (!elemDecl && fURIStringPool->getId(fGrammar->getTargetNamespace()) != uriId) {
+
// switch grammar first
- XMLBuffer bufURI;
- getURIText(uriId, bufURI);
- if (!switchGrammar(bufURI.getRawBuffer()) && fValidate && !laxThisOne)
+ const XMLCh* uriStr = getURIText(uriId);
+ if (!switchGrammar(uriStr) && fValidate && !laxThisOne)
{
fValidator->emitError
(
XMLValid::GrammarNotFound
- , bufURI.getRawBuffer()
+ ,uriStr
);
}
+
+ elemDecl = fGrammar->getElemDecl
+ (
+ uriId
+ , nameRawBuf
+ , qnameRawBuf
+ , currentScope
+ );
}
- elemDecl = fGrammar->getElemDecl
- (
- uriId
- , fNameBuf.getRawBuffer()
- , fQNameBuf.getRawBuffer()
- , currentScope
- );
if (!elemDecl) {
if (currentScope != Grammar::TOP_LEVEL_SCOPE) {
@@ -2844,8 +2857,8 @@
elemDecl = fGrammar->getElemDecl
(
fEmptyNamespaceId
- , fNameBuf.getRawBuffer()
- , fQNameBuf.getRawBuffer()
+ , nameRawBuf
+ , qnameRawBuf
, currentScope
);
}
@@ -2862,9 +2875,9 @@
elemDecl = fGrammar->findOrAddElemDecl
(
uriId
- , fNameBuf.getRawBuffer()
+ , nameRawBuf
, fPrefixBuf.getRawBuffer()
- , fQNameBuf.getRawBuffer()
+ , qnameRawBuf
, Grammar::TOP_LEVEL_SCOPE
, wasAdded
);
@@ -2881,8 +2894,8 @@
elemDecl = fGrammar->getElemDecl
(
uriId
- , fNameBuf.getRawBuffer()
- , fQNameBuf.getRawBuffer()
+ , nameRawBuf
+ , qnameRawBuf
, currentScope
);
@@ -2892,8 +2905,8 @@
elemDecl = fGrammar->getElemDecl
(
fURIStringPool->getId(fGrammar->getTargetNamespace())
- , fNameBuf.getRawBuffer()
- , fQNameBuf.getRawBuffer()
+ , nameRawBuf
+ , qnameRawBuf
, currentScope
);
@@ -2920,8 +2933,8 @@
elemDecl = fGrammar->getElemDecl
(
uriId
- , fNameBuf.getRawBuffer()
- , fQNameBuf.getRawBuffer()
+ , nameRawBuf
+ , qnameRawBuf
, currentScope
);
@@ -2930,9 +2943,9 @@
elemDecl = fGrammar->findOrAddElemDecl
(
uriId
- , fNameBuf.getRawBuffer()
+ , nameRawBuf
, fPrefixBuf.getRawBuffer()
- , fQNameBuf.getRawBuffer()
+ , qnameRawBuf
, Grammar::TOP_LEVEL_SCOPE
, wasAdded
);
@@ -3478,4 +3491,5 @@
return false;
}
+
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org