cvs commit: xml-xerces/c/src/xercesc/validators/schema TraverseSchema.hpp TraverseSchema.cpp

2003-01-15 Thread knoaman
knoaman 2003/01/15 07:32:16

  Modified:c/src/xercesc/validators/schema TraverseSchema.hpp
TraverseSchema.cpp
  Log:
  Check for target namespace with empty string.
  
  Revision  ChangesPath
  1.21  +5 -7  xml-xerces/c/src/xercesc/validators/schema/TraverseSchema.hpp
  
  Index: TraverseSchema.hpp
  ===
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/TraverseSchema.hpp,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- TraverseSchema.hpp13 Jan 2003 20:16:52 -  1.20
  +++ TraverseSchema.hpp15 Jan 2003 15:32:15 -  1.21
  @@ -559,7 +559,7 @@
   XercesAttGroupInfo* const toAttGroup,
   ComplexTypeInfo* const typeInfo);
   
  -const XMLCh* getTargetNamespaceString(const DOMElement* const elem);
  +void checkForEmptyTargetNamespace(const DOMElement* const elem);
   
   /**
 * Attribute wild card intersection.
  @@ -855,16 +855,14 @@
   return attValue;
   }
   
  -inline const XMLCh*
  -TraverseSchema::getTargetNamespaceString(const DOMElement* const elem) {
  +inline void
  +TraverseSchema::checkForEmptyTargetNamespace(const DOMElement* const elem) {
   
   const XMLCh* targetNS = getElementAttValue(elem, 
SchemaSymbols::fgATT_TARGETNAMESPACE);
   
  -if (targetNS && (!targetNS || !*targetNS)) {
  +if (targetNS && !*targetNS) {
   reportSchemaError(elem, XMLUni::fgXMLErrDomain, 
XMLErrs::InvalidTargetNSValue);
   }
  -
  -return targetNS;
   }
   
   inline bool TraverseSchema::isBaseFromAnotherSchema(const XMLCh* const baseURI)
  
  
  
  1.56  +12 -17xml-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.55
  retrieving revision 1.56
  diff -u -r1.55 -r1.56
  --- TraverseSchema.cpp14 Jan 2003 21:29:56 -  1.55
  +++ TraverseSchema.cpp15 Jan 2003 15:32:15 -  1.56
  @@ -365,13 +365,7 @@
   
   //Retrieve the targetnamespace URI information
   const XMLCh* targetNSURIStr = 
schemaRoot->getAttribute(SchemaSymbols::fgATT_TARGETNAMESPACE);
  -
  -if (targetNSURIStr == 0 || !*targetNSURIStr) {
  -fSchemaGrammar->setTargetNamespace(XMLUni::fgZeroLenString);
  -}
  -else {
  -fSchemaGrammar->setTargetNamespace(targetNSURIStr);
  -}
  +fSchemaGrammar->setTargetNamespace(targetNSURIStr);
   
   fScopeCount = 0;
   fCurrentScope = Grammar::TOP_LEVEL_SCOPE;
  @@ -407,6 +401,9 @@
   reportSchemaError(schemaRoot, XMLUni::fgXMLErrDomain, 
XMLErrs::InvalidXMLSchemaRoot);
   }
   
  +// Make sure that the targetNamespace value is not empty string
  +checkForEmptyTargetNamespace(schemaRoot);
  +
   // ---
   // Check Attributes
   // ---
  @@ -546,11 +543,10 @@
   
   if (root) {
   
  -const XMLCh* targetNSURIString = getTargetNamespaceString(root);
  -bool targetNSLength = !targetNSURIString || !*targetNSURIString;
  +const XMLCh* targetNSURIString = 
root->getAttribute(SchemaSymbols::fgATT_TARGETNAMESPACE);
   
   // check to see if targetNameSpace is right
  -if (!targetNSLength
  +if (*targetNSURIString
   && !XMLString::equals(targetNSURIString,fTargetNSURIString)){
   reportSchemaError(root, XMLUni::fgXMLErrDomain, 
XMLErrs::IncludeNamespaceDifference,
 schemaLocation, targetNSURIString);
  @@ -559,7 +555,7 @@
   
   // if targetNamespace is empty, change it to includ'g schema
   // targetNamespace
  -if (targetNSLength && root->getAttributeNode(XMLUni::fgXMLNSString) == 0
  +if (!*targetNSURIString && 
root->getAttributeNode(XMLUni::fgXMLNSString) == 0
   && fTargetNSURI != fEmptyNamespaceURI) {
   root->setAttribute(XMLUni::fgXMLNSString, fTargetNSURIString);
   }
  @@ -727,7 +723,7 @@
   return;
   }
   
  -const XMLCh* targetNSURIString = getTargetNamespaceString(root);
  +const XMLCh* targetNSURIString = 
root->getAttribute(SchemaSymbols::fgATT_TARGETNAMESPACE);
   
   if (!XMLString::equals(targetNSURIString, nameSpace)) {
   reportSchemaError(root, XMLUni::fgXMLErrDomain, 
XMLErrs::ImportNamespaceDifference,
  @@ -7358,11 +7354,10 @@
   return false;
   }
   
  -const XMLCh* targetNSURIString = getTargetNamespaceString(root);

cvs commit: xml-xerces/c/src/xercesc/util XMLUni.cpp XMLUni.hpp

2003-01-15 Thread knoaman
knoaman 2003/01/15 07:49:49

  Modified:c/src/xercesc/internal DGXMLScanner.hpp IGXMLScanner.hpp
SGXMLScanner.hpp WFXMLScanner.hpp
XMLScannerResolver.cpp
   c/src/xercesc/util XMLUni.cpp XMLUni.hpp
  Log:
  Change constant declaration name to match its value.
  
  Revision  ChangesPath
  1.3   +4 -1  xml-xerces/c/src/xercesc/internal/DGXMLScanner.hpp
  
  Index: DGXMLScanner.hpp
  ===
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/DGXMLScanner.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DGXMLScanner.hpp  13 Jan 2003 18:29:41 -  1.2
  +++ DGXMLScanner.hpp  15 Jan 2003 15:49:49 -  1.3
  @@ -56,6 +56,9 @@
   
   /*
* $Log$
  + * Revision 1.3  2003/01/15 15:49:49  knoaman
  + * Change constant declaration name to match its value.
  + *
* Revision 1.2  2003/01/13 18:29:41  knoaman
* Return proper scanner name.
*
  @@ -240,7 +243,7 @@
   
   inline const XMLCh* DGXMLScanner::getName() const
   {
  -return XMLUni::fgDGScanner;
  +return XMLUni::fgDGXMLScanner;
   }
   
   
  
  
  
  1.3   +4 -1  xml-xerces/c/src/xercesc/internal/IGXMLScanner.hpp
  
  Index: IGXMLScanner.hpp
  ===
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- IGXMLScanner.hpp  13 Jan 2003 16:30:18 -  1.2
  +++ IGXMLScanner.hpp  15 Jan 2003 15:49:49 -  1.3
  @@ -56,6 +56,9 @@
   
   /*
* $Log$
  + * Revision 1.3  2003/01/15 15:49:49  knoaman
  + * Change constant declaration name to match its value.
  + *
* Revision 1.2  2003/01/13 16:30:18  knoaman
* [Bug 14469] Validator doesn't enforce xsd:key.
*
  @@ -307,7 +310,7 @@
   
   inline const XMLCh* IGXMLScanner::getName() const
   {
  -return XMLUni::fgIGScanner;
  +return XMLUni::fgIGXMLScanner;
   }
   
   
  
  
  
  1.3   +4 -1  xml-xerces/c/src/xercesc/internal/SGXMLScanner.hpp
  
  Index: SGXMLScanner.hpp
  ===
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/SGXMLScanner.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SGXMLScanner.hpp  13 Jan 2003 16:30:18 -  1.2
  +++ SGXMLScanner.hpp  15 Jan 2003 15:49:49 -  1.3
  @@ -56,6 +56,9 @@
   
   /*
* $Log$
  + * Revision 1.3  2003/01/15 15:49:49  knoaman
  + * Change constant declaration name to match its value.
  + *
* Revision 1.2  2003/01/13 16:30:18  knoaman
* [Bug 14469] Validator doesn't enforce xsd:key.
*
  @@ -301,7 +304,7 @@
   
   inline const XMLCh* SGXMLScanner::getName() const
   {
  -return XMLUni::fgSGScanner;
  +return XMLUni::fgSGXMLScanner;
   }
   
   
  
  
  
  1.3   +4 -1  xml-xerces/c/src/xercesc/internal/WFXMLScanner.hpp
  
  Index: WFXMLScanner.hpp
  ===
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/WFXMLScanner.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- WFXMLScanner.hpp  2 Jan 2003 16:29:05 -   1.2
  +++ WFXMLScanner.hpp  15 Jan 2003 15:49:49 -  1.3
  @@ -56,6 +56,9 @@
   
   /*
* $Log$
  + * Revision 1.3  2003/01/15 15:49:49  knoaman
  + * Change constant declaration name to match its value.
  + *
* Revision 1.2  2003/01/02 16:29:05  knoaman
* Modified the way we handle element tags.
*
  @@ -202,7 +205,7 @@
   
   inline const XMLCh* WFXMLScanner::getName() const
   {
  -return XMLUni::fgWFScanner;
  +return XMLUni::fgWFXMLScanner;
   }
   
   
  
  
  
  1.4   +11 -11xml-xerces/c/src/xercesc/internal/XMLScannerResolver.cpp
  
  Index: XMLScannerResolver.cpp
  ===
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XMLScannerResolver.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XMLScannerResolver.cpp9 Dec 2002 15:47:49 -   1.3
  +++ XMLScannerResolver.cpp15 Jan 2003 15:49:49 -  1.4
  @@ -63,10 +63,10 @@
   //  Includes
   // ---
   #include 
  -#include 
   #include 
  -#include 
   #include 
  +#include 
  +#include 
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  @@ -83,13 +83,13 @@
   XMLScannerResolver::resolveScanner(const XMLCh* const scannerName,
  XMLValidator* const valToAdopt)
   {
  -if (XMLString::equals(scannerName, XMLUni::fgWFScanner))
  +if (XMLString::equals(scannerName, XMLUni::fgWFXMLScanner))
   return new WFXMLScanner(valToAdopt);
  -else if (XMLString::equals(scannerName, XMLUni:

cvs commit: xml-xerces/c/src/xercesc/validators/schema TraverseSchema.cpp

2003-01-15 Thread knoaman
knoaman 2003/01/15 11:24:16

  Modified:c/src/xercesc/validators/schema TraverseSchema.cpp
  Log:
  Check the value of the 'namespace' attribute of wildcards to be valid anyURI.
  
  Revision  ChangesPath
  1.57  +16 -1 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.56
  retrieving revision 1.57
  diff -u -r1.56 -r1.57
  --- TraverseSchema.cpp15 Jan 2003 15:32:15 -  1.56
  +++ TraverseSchema.cpp15 Jan 2003 19:24:16 -  1.57
  @@ -1689,6 +1689,7 @@
   ContentSpecNode* firstNode = 0;
   ContentSpecNode* secondNode = 0;
   unsigned int tokensSize = nameSpaceTokens->size();
  +DatatypeValidator* anyURIDV = 
fDatatypeRegistry->getDatatypeValidator(SchemaSymbols::fgDT_ANYURI);
   
   for (unsigned int i=0; i < tokensSize; i++) {
   
  @@ -1701,6 +1702,12 @@
   uriIndex = fTargetNSURI;
   }
   else {
  +try {
  +anyURIDV->validate(tokenElem);
  +}
  +catch(const XMLException& excep) {
  +reportSchemaError(elem, XMLUni::fgXMLErrDomain, 
XMLErrs::DisplayErrorMessage, excep.getMessage());
  +}
   uriIndex = fURIStringPool->addOrFind(tokenElem);
   }
   }
  @@ -3678,6 +3685,7 @@
   else {
   
   XMLStringTokenizer tokenizer(nameSpace);
  +DatatypeValidator* anyURIDV = 
fDatatypeRegistry->getDatatypeValidator(SchemaSymbols::fgDT_ANYURI);
   
   attType = XMLAttDef::Any_List;
   
  @@ -3692,6 +3700,13 @@
   uriIndex = fTargetNSURI;
   }
   else {
  +
  +try {
  +anyURIDV->validate(token);
  +}
  +catch(const XMLException& excep) {
  +reportSchemaError(elem, XMLUni::fgXMLErrDomain, 
XMLErrs::DisplayErrorMessage, excep.getMessage());
  +}
   uriIndex = fURIStringPool->addOrFind(token);
   }
   
  
  
  

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




cvs commit: xml-xerces/c/src/xercesc/validators/schema TraverseSchema.cpp

2003-01-15 Thread knoaman
knoaman 2003/01/15 12:50:33

  Modified:c/src/xercesc/validators/schema TraverseSchema.cpp
  Log:
  Fix for substitution group type checking.
  
  Revision  ChangesPath
  1.58  +13 -3 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.57
  retrieving revision 1.58
  diff -u -r1.57 -r1.58
  --- TraverseSchema.cpp15 Jan 2003 19:24:16 -  1.57
  +++ TraverseSchema.cpp15 Jan 2003 20:50:32 -  1.58
  @@ -5035,7 +5035,10 @@
   DatatypeValidator* elemDV = typeInfo->getDatatypeValidator();
   DatatypeValidator* subsValidator = subsElemDecl->getDatatypeValidator();
   
  -if (subsValidator && subsValidator->isSubstitutableBy(elemDV)) {
  +if (elemDV == subsValidator) {
  +return true;
  +}
  +else if (subsValidator && subsValidator->isSubstitutableBy(elemDV)) {
   if ((subsElemDecl->getFinalSet() & derivationMethod) == 0) {
   return true;
   }
  @@ -5047,6 +5050,10 @@
   else { // complex content
   
   ComplexTypeInfo* subsTypeInfo = subsElemDecl->getComplexTypeInfo();
  +
  +if (subsTypeInfo == typeInfo)
  +return true;
  +
   const ComplexTypeInfo* elemTypeInfo = typeInfo;
   
   for (; elemTypeInfo && elemTypeInfo != subsTypeInfo;
  @@ -5068,7 +5075,10 @@
   // first, check for type relation.
   DatatypeValidator* subsValidator = subsElemDecl->getDatatypeValidator();
   
  -if (subsValidator && subsValidator->isSubstitutableBy(validator)
  +if (subsValidator == validator) {
  +return true;
  +}
  +else if (subsValidator && subsValidator->isSubstitutableBy(validator)
   && ((subsElemDecl->getFinalSet() & SchemaSymbols::XSD_RESTRICTION) == 
0)) {
   return true;
   }
  
  
  

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