cargilld 2005/03/29 16:55:14 Modified: c/src/xercesc/parsers AbstractDOMParser.cpp AbstractDOMParser.hpp DOMBuilderImpl.cpp SAX2XMLReaderImpl.cpp SAXParser.cpp SAXParser.hpp c/src/xercesc/internal XMLScanner.cpp XMLScanner.hpp c/src/xercesc/util XMLUni.cpp XMLUni.hpp Log: Begin work on adding some new features by checking in the feature handling support. Revision Changes Path 1.72 +30 -1 xml-xerces/c/src/xercesc/parsers/AbstractDOMParser.cpp Index: AbstractDOMParser.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/AbstractDOMParser.cpp,v retrieving revision 1.71 retrieving revision 1.72 diff -u -r1.71 -r1.72 --- AbstractDOMParser.cpp 7 Jan 2005 15:23:26 -0000 1.71 +++ AbstractDOMParser.cpp 30 Mar 2005 00:55:13 -0000 1.72 @@ -312,6 +312,20 @@ return fScanner->getStandardUriConformant(); } +bool AbstractDOMParser::getIgnoreAnnotations() const +{ + return fScanner->getIgnoreAnnotations(); +} + +bool AbstractDOMParser::getDisableDefaultEntityResolution() const +{ + return fScanner->getDisableDefaultEntityResolution(); +} + +bool AbstractDOMParser::getSkipDTDValidation() const +{ + return fScanner->getSkipDTDValidation(); +} // --------------------------------------------------------------------------- // AbstractDOMParser: Setter methods @@ -449,6 +463,21 @@ fScanner->setPSVIHandler(0); } +void AbstractDOMParser::setIgnoreAnnotations(const bool newValue) +{ + fScanner->setIgnoreAnnotations(newValue); +} + +void AbstractDOMParser::setDisableDefaultEntityResolution(const bool newValue) +{ + fScanner->setDisableDefaultEntityResolution(newValue); +} + +void AbstractDOMParser::setSkipDTDValidation(const bool newValue) +{ + fScanner->setSkipDTDValidation(newValue); +} + // --------------------------------------------------------------------------- // AbstractDOMParser: Parsing methods // --------------------------------------------------------------------------- 1.36 +68 -1 xml-xerces/c/src/xercesc/parsers/AbstractDOMParser.hpp Index: AbstractDOMParser.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/AbstractDOMParser.hpp,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- AbstractDOMParser.hpp 28 Sep 2004 02:14:14 -0000 1.35 +++ AbstractDOMParser.hpp 30 Mar 2005 00:55:13 -0000 1.36 @@ -430,6 +430,33 @@ */ bool getValidateAnnotations() const; + /** Get the 'ignore annotations' flag + * + * @return true, if the parser is currently configured to + * ignore annotations, false otherwise. + * + * @see #setIgnoreAnnotations + */ + bool getIgnoreAnnotations() const; + + /** Get the 'disable default entity resolution' flag + * + * @return true, if the parser is currently configured to + * not perform default entity resolution, false otherwise. + * + * @see #setDisableDefaultEntityResolution + */ + bool getDisableDefaultEntityResolution() const; + + /** Get the 'skip DTD validation' flag + * + * @return true, if the parser is currently configured to + * skip DTD validation, false otherwise. + * + * @see #setSkipDTDValidation + */ + bool getSkipDTDValidation() const; + //@} @@ -797,6 +824,46 @@ */ void setCreateSchemaInfo(const bool newState); + /** Set the 'ignore annotation' flag + * + * This method gives users the option to not generate XSAnnotations + * when "traversing" a schema. + * + * The parser's default state is false + * + * @param newValue The state to set + */ + void setIgnoreAnnotations(const bool newValue); + + /** Set the 'disable default entity resolution' flag + * + * This method gives users the option to not perform default entity + * resolution. If the user's resolveEntity method returns NULL the + * parser will try to resolve the entity on its own. When this option + * is set to true, the parser will not attempt to resolve the entity + * when the resolveEntity method returns NULL. + * + * The parser's default state is false + * + * @param newValue The state to set + * + * @see #entityResolver + */ + void setDisableDefaultEntityResolution(const bool newValue); + + /** Set the 'skip DTD validation' flag + * + * This method gives users the option to skip DTD validation only when + * schema validation is on (i.e. when performing validation, we will + * ignore the DTD, except for entities, when schema validation is enabled). + * + * NOTE: This option is ignored if schema validation is disabled. + * + * The parser's default state is false + * + * @param newValue The state to set + */ + void setSkipDTDValidation(const bool newValue); //@} 1.44 +29 -2 xml-xerces/c/src/xercesc/parsers/DOMBuilderImpl.cpp Index: DOMBuilderImpl.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/DOMBuilderImpl.cpp,v retrieving revision 1.43 retrieving revision 1.44 diff -u -r1.43 -r1.44 --- DOMBuilderImpl.cpp 20 Mar 2005 19:02:45 -0000 1.43 +++ DOMBuilderImpl.cpp 30 Mar 2005 00:55:13 -0000 1.44 @@ -247,6 +247,18 @@ { getScanner()->setIgnoredCachedDTD(state); } + else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesIgnoreAnnotations) == 0) + { + getScanner()->setIgnoreAnnotations(state); + } + else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesDisableDefaultEntityResolution) == 0) + { + getScanner()->setDisableDefaultEntityResolution(state); + } + else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSkipDTDValidation) == 0) + { + getScanner()->setSkipDTDValidation(state); + } else { throw DOMException(DOMException::NOT_FOUND_ERR, 0, getMemoryManager()); } @@ -349,6 +361,18 @@ { return getScanner()->getIgnoreCachedDTD(); } + else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesIgnoreAnnotations) == 0) + { + return getScanner()->getIgnoreAnnotations(); + } + else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesDisableDefaultEntityResolution) == 0) + { + return getScanner()->getDisableDefaultEntityResolution(); + } + else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSkipDTDValidation) == 0) + { + return getScanner()->getSkipDTDValidation(); + } else { throw DOMException(DOMException::NOT_FOUND_ERR, 0, getMemoryManager()); } @@ -373,7 +397,10 @@ (XMLString::compareIStringASCII(name, XMLUni::fgXercesValidateAnnotations) == 0) || (XMLString::compareIStringASCII(name, XMLUni::fgXercesGenerateSyntheticAnnotations) == 0) || (XMLString::compareIStringASCII(name, XMLUni::fgXercesIdentityConstraintChecking) == 0) || - (XMLString::compareIStringASCII(name, XMLUni::fgXercesIgnoreCachedDTD) == 0) + (XMLString::compareIStringASCII(name, XMLUni::fgXercesIgnoreCachedDTD) == 0) || + (XMLString::compareIStringASCII(name, XMLUni::fgXercesIgnoreAnnotations) == 0) || + (XMLString::compareIStringASCII(name, XMLUni::fgXercesDisableDefaultEntityResolution) == 0) || + (XMLString::compareIStringASCII(name, XMLUni::fgXercesSkipDTDValidation) == 0) ) { return true; } 1.45 +21 -0 xml-xerces/c/src/xercesc/parsers/SAX2XMLReaderImpl.cpp Index: SAX2XMLReaderImpl.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/SAX2XMLReaderImpl.cpp,v retrieving revision 1.44 retrieving revision 1.45 diff -u -r1.44 -r1.45 --- SAX2XMLReaderImpl.cpp 20 Mar 2005 19:02:45 -0000 1.44 +++ SAX2XMLReaderImpl.cpp 30 Mar 2005 00:55:13 -0000 1.45 @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.45 2005/03/30 00:55:13 cargilld + * Begin work on adding some new features by checking in the feature handling support. + * * Revision 1.44 2005/03/20 19:02:45 cargilld * Implement versions of uppercase and compareIstring that only check a to z, instead of all characters, and don't rely on functionality provided in the transcoders. * @@ -1577,6 +1580,18 @@ { fScanner->setIgnoredCachedDTD(value); } + else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesIgnoreAnnotations) == 0) + { + fScanner->setIgnoreAnnotations(value); + } + else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesDisableDefaultEntityResolution) == 0) + { + fScanner->setDisableDefaultEntityResolution(value); + } + else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSkipDTDValidation) == 0) + { + fScanner->setSkipDTDValidation(value); + } else throw SAXNotRecognizedException("Unknown Feature", fMemoryManager); } @@ -1617,6 +1632,12 @@ return fScanner->getValidateAnnotations(); else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesIgnoreCachedDTD) == 0) return fScanner->getIgnoreCachedDTD(); + else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesIgnoreAnnotations) == 0) + return fScanner->getIgnoreAnnotations(); + else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesDisableDefaultEntityResolution) == 0) + return fScanner->getDisableDefaultEntityResolution(); + else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSkipDTDValidation) == 0) + return fScanner->getSkipDTDValidation(); else throw SAXNotRecognizedException("Unknown Feature", fMemoryManager); 1.39 +33 -0 xml-xerces/c/src/xercesc/parsers/SAXParser.cpp Index: SAXParser.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/SAXParser.cpp,v retrieving revision 1.38 retrieving revision 1.39 diff -u -r1.38 -r1.39 --- SAXParser.cpp 30 Dec 2004 15:23:41 -0000 1.38 +++ SAXParser.cpp 30 Mar 2005 00:55:14 -0000 1.39 @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.39 2005/03/30 00:55:14 cargilld + * Begin work on adding some new features by checking in the feature handling support. + * * Revision 1.38 2004/12/30 15:23:41 amassari * Notify advanced handlers of the whitespace before and after the root document element (jira# 729) * @@ -580,6 +583,21 @@ return fScanner->getIgnoreCachedDTD(); } +bool SAXParser::getIgnoreAnnotations() const +{ + return fScanner->getIgnoreAnnotations(); +} + +bool SAXParser::getDisableDefaultEntityResolution() const +{ + return fScanner->getDisableDefaultEntityResolution(); +} + +bool SAXParser::getSkipDTDValidation() const +{ + return fScanner->getSkipDTDValidation(); +} + // --------------------------------------------------------------------------- // SAXParser: Setter methods // --------------------------------------------------------------------------- @@ -721,6 +739,21 @@ fScanner->setIgnoredCachedDTD(newValue); } +void SAXParser::setIgnoreAnnotations(const bool newValue) +{ + fScanner->setIgnoreAnnotations(newValue); +} + +void SAXParser::setDisableDefaultEntityResolution(const bool newValue) +{ + fScanner->setDisableDefaultEntityResolution(newValue); +} + +void SAXParser::setSkipDTDValidation(const bool newValue) +{ + fScanner->setSkipDTDValidation(newValue); +} + // --------------------------------------------------------------------------- // SAXParser: Overrides of the SAX Parser interface // --------------------------------------------------------------------------- 1.39 +70 -0 xml-xerces/c/src/xercesc/parsers/SAXParser.hpp Index: SAXParser.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/SAXParser.hpp,v retrieving revision 1.38 retrieving revision 1.39 diff -u -r1.38 -r1.39 --- SAXParser.hpp 9 Mar 2005 16:07:10 -0000 1.38 +++ SAXParser.hpp 30 Mar 2005 00:55:14 -0000 1.39 @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.39 2005/03/30 00:55:14 cargilld + * Begin work on adding some new features by checking in the feature handling support. + * * Revision 1.38 2005/03/09 16:07:10 amassari * Protected getSrcOffset to avoid crashing when parsing has finished; updated documentation * @@ -697,6 +700,33 @@ */ bool getIgnoreCachedDTD() const; + /** Get the 'ignore annotations' flag + * + * @return true, if the parser is currently configured to + * ignore annotations, false otherwise. + * + * @see #setIgnoreAnnotations + */ + bool getIgnoreAnnotations() const; + + /** Get the 'disable default entity resolution' flag + * + * @return true, if the parser is currently configured to + * not perform default entity resolution, false otherwise. + * + * @see #setDisableDefaultEntityResolution + */ + bool getDisableDefaultEntityResolution() const; + + /** Get the 'skip DTD validation' flag + * + * @return true, if the parser is currently configured to + * skip DTD validation, false otherwise. + * + * @see #setSkipDTDValidation + */ + bool getSkipDTDValidation() const; + //@} @@ -1041,6 +1071,46 @@ */ void setIgnoreCachedDTD(const bool newValue); + /** Set the 'ignore annotation' flag + * + * This method gives users the option to not generate XSAnnotations + * when "traversing" a schema. + * + * The parser's default state is false + * + * @param newValue The state to set + */ + void setIgnoreAnnotations(const bool newValue); + + /** Set the 'disable default entity resolution' flag + * + * This method gives users the option to not perform default entity + * resolution. If the user's resolveEntity method returns NULL the + * parser will try to resolve the entity on its own. When this option + * is set to true, the parser will not attempt to resolve the entity + * when the resolveEntity method returns NULL. + * + * The parser's default state is false + * + * @param newValue The state to set + * + * @see #entityResolver + */ + void setDisableDefaultEntityResolution(const bool newValue); + + /** Set the 'skip DTD validation' flag + * + * This method gives users the option to skip DTD validation only when + * schema validation is on (i.e. when performing validation, we will + * ignore the DTD, except for entities, when schema validation is enabled). + * + * NOTE: This option is ignored if schema validation is disabled. + * + * The parser's default state is false + * + * @param newValue The state to set + */ + void setSkipDTDValidation(const bool newValue); //@} 1.79 +7 -1 xml-xerces/c/src/xercesc/internal/XMLScanner.cpp Index: XMLScanner.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XMLScanner.cpp,v retrieving revision 1.78 retrieving revision 1.79 diff -u -r1.78 -r1.79 --- XMLScanner.cpp 20 Mar 2005 19:02:46 -0000 1.78 +++ XMLScanner.cpp 30 Mar 2005 00:55:14 -0000 1.79 @@ -161,6 +161,9 @@ , fGenerateSyntheticAnnotations(false) , fValidateAnnotations(false) , fIgnoreCachedDTD(false) + , fIgnoreAnnotations(false) + , fDisableDefaultEntityResolution(false) + , fSkipDTDValidation(false) , fErrorCount(0) , fEntityExpansionLimit(0) , fEntityExpansionCount(0) @@ -246,6 +249,9 @@ , fGenerateSyntheticAnnotations(false) , fValidateAnnotations(false) , fIgnoreCachedDTD(false) + , fIgnoreAnnotations(false) + , fDisableDefaultEntityResolution(false) + , fSkipDTDValidation(false) , fErrorCount(0) , fEntityExpansionLimit(0) , fEntityExpansionCount(0) 1.49 +42 -0 xml-xerces/c/src/xercesc/internal/XMLScanner.hpp Index: XMLScanner.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XMLScanner.hpp,v retrieving revision 1.48 retrieving revision 1.49 diff -u -r1.48 -r1.49 --- XMLScanner.hpp 6 Jan 2005 21:39:43 -0000 1.48 +++ XMLScanner.hpp 30 Mar 2005 00:55:14 -0000 1.49 @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.49 2005/03/30 00:55:14 cargilld + * Begin work on adding some new features by checking in the feature handling support. + * * Revision 1.48 2005/01/06 21:39:43 amassari * Removed warnings * @@ -563,6 +566,9 @@ bool getGenerateSyntheticAnnotations() const; bool getValidateAnnotations() const; bool getIgnoreCachedDTD() const; + bool getIgnoreAnnotations() const; + bool getDisableDefaultEntityResolution() const; + bool getSkipDTDValidation() const; // ----------------------------------------------------------------------- // Getter methods @@ -661,6 +667,9 @@ void setGenerateSyntheticAnnotations(const bool newValue); void setValidateAnnotations(const bool newValue); void setIgnoredCachedDTD(const bool newValue); + void setIgnoreAnnotations(const bool newValue); + void setDisableDefaultEntityResolution(const bool newValue); + void setSkipDTDValidation(const bool newValue); // ----------------------------------------------------------------------- // Mutator methods @@ -1029,6 +1038,9 @@ bool fGenerateSyntheticAnnotations; bool fValidateAnnotations; bool fIgnoreCachedDTD; + bool fIgnoreAnnotations; + bool fDisableDefaultEntityResolution; + bool fSkipDTDValidation; int fErrorCount; unsigned int fEntityExpansionLimit; unsigned int fEntityExpansionCount; @@ -1391,6 +1403,21 @@ return fIgnoreCachedDTD; } +inline bool XMLScanner::getIgnoreAnnotations() const +{ + return fIgnoreAnnotations; +} + +inline bool XMLScanner::getDisableDefaultEntityResolution() const +{ + return fDisableDefaultEntityResolution; +} + +inline bool XMLScanner::getSkipDTDValidation() const +{ + return fSkipDTDValidation; +} + // --------------------------------------------------------------------------- // XMLScanner: Setter methods // --------------------------------------------------------------------------- @@ -1565,6 +1592,21 @@ fIgnoreCachedDTD = newValue; } +inline void XMLScanner::setIgnoreAnnotations(const bool newValue) +{ + fIgnoreAnnotations = newValue; +} + +inline void XMLScanner::setDisableDefaultEntityResolution(const bool newValue) +{ + fDisableDefaultEntityResolution = newValue; +} + +inline void XMLScanner::setSkipDTDValidation(const bool newValue) +{ + fSkipDTDValidation = newValue; +} + // --------------------------------------------------------------------------- // XMLScanner: Mutator methods // --------------------------------------------------------------------------- 1.49 +48 -1 xml-xerces/c/src/xercesc/util/XMLUni.cpp Index: XMLUni.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLUni.cpp,v retrieving revision 1.48 retrieving revision 1.49 diff -u -r1.48 -r1.49 --- XMLUni.cpp 20 Jan 2005 17:35:45 -0000 1.48 +++ XMLUni.cpp 30 Mar 2005 00:55:14 -0000 1.49 @@ -1273,6 +1273,53 @@ , chLatin_D, chLatin_T, chLatin_D, chNull }; +//Xerces: http://apache.org/xml/features/schema/ignore-annotations +const XMLCh XMLUni::fgXercesIgnoreAnnotations[] = +{ + chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash + , chForwardSlash, chLatin_a, chLatin_p, chLatin_a, chLatin_c, chLatin_h + , chLatin_e, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash + , chLatin_x, chLatin_m, chLatin_l, chForwardSlash, chLatin_f, chLatin_e + , chLatin_a, chLatin_t, chLatin_u, chLatin_r, chLatin_e, chLatin_s + , chForwardSlash, chLatin_s, chLatin_c, chLatin_h, chLatin_e, chLatin_m + , chLatin_a, chForwardSlash, chLatin_i, chLatin_g, chLatin_n, chLatin_o + , chLatin_r, chLatin_e, chDash + , chLatin_a, chLatin_n, chLatin_n, chLatin_o, chLatin_t, chLatin_a, chLatin_t + , chLatin_i, chLatin_o, chLatin_n, chLatin_s, chNull +}; + +//Xerces: http://apache.org/xml/features/disable-default-entity-resolution +const XMLCh XMLUni::fgXercesDisableDefaultEntityResolution[] = +{ + chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash + , chForwardSlash, chLatin_a, chLatin_p, chLatin_a, chLatin_c, chLatin_h + , chLatin_e, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash + , chLatin_x, chLatin_m, chLatin_l, chForwardSlash, chLatin_f, chLatin_e + , chLatin_a, chLatin_t, chLatin_u, chLatin_r, chLatin_e, chLatin_s + , chForwardSlash, chLatin_d, chLatin_i, chLatin_s, chLatin_a, chLatin_b + , chLatin_l, chLatin_e, chDash, chLatin_d, chLatin_e, chLatin_f + , chLatin_a, chLatin_u, chLatin_l, chLatin_t, chDash, chLatin_e + , chLatin_n, chLatin_t, chLatin_i, chLatin_t, chLatin_y, chDash + , chLatin_r, chLatin_e, chLatin_s, chLatin_o, chLatin_l, chLatin_u + , chLatin_t, chLatin_i, chLatin_o, chLatin_n, chNull +}; + +//Xerces: http://apache.org/xml/features/validation/schema/skip-dtd-validation +const XMLCh XMLUni::fgXercesSkipDTDValidation[] = +{ + chLatin_h, chLatin_t, chLatin_t, chLatin_p, chColon, chForwardSlash + , chForwardSlash, chLatin_a, chLatin_p, chLatin_a, chLatin_c, chLatin_h + , chLatin_e, chPeriod, chLatin_o, chLatin_r, chLatin_g, chForwardSlash + , chLatin_x, chLatin_m, chLatin_l, chForwardSlash, chLatin_f, chLatin_e + , chLatin_a, chLatin_t, chLatin_u, chLatin_r, chLatin_e, chLatin_s + , chForwardSlash, chLatin_v, chLatin_a, chLatin_l, chLatin_i, chLatin_d + , chLatin_a, chLatin_t, chLatin_i, chLatin_o, chLatin_n, chForwardSlash + , chLatin_s, chLatin_c, chLatin_h, chLatin_e, chLatin_m, chLatin_a + , chForwardSlash, chLatin_s, chLatin_k, chLatin_i, chLatin_p, chDash + , chLatin_d, chLatin_t, chLatin_d, chDash, chLatin_v, chLatin_a + , chLatin_l, chLatin_i, chLatin_d, chLatin_a, chLatin_t, chLatin_i + , chLatin_o, chLatin_n, chNull +}; //Introduced in DOM Level 3 const XMLCh XMLUni::fgDOMCanonicalForm[] = 1.43 +4 -1 xml-xerces/c/src/xercesc/util/XMLUni.hpp Index: XMLUni.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLUni.hpp,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- XMLUni.hpp 28 Dec 2004 17:31:19 -0000 1.42 +++ XMLUni.hpp 30 Mar 2005 00:55:14 -0000 1.43 @@ -224,6 +224,9 @@ static const XMLCh fgXercesGenerateSyntheticAnnotations[]; static const XMLCh fgXercesValidateAnnotations[]; static const XMLCh fgXercesIgnoreCachedDTD[]; + static const XMLCh fgXercesIgnoreAnnotations[]; + static const XMLCh fgXercesDisableDefaultEntityResolution[]; + static const XMLCh fgXercesSkipDTDValidation[]; // SAX2 features/properties names
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]