diff -r 127731b7107d -r 3eebb1e54d3a secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/IGXMLScanner.hpp --- a/secureswitools/swisistools/source/xmlparser/xerces/include/xercesc/internal/IGXMLScanner.hpp Fri Jan 22 09:56:12 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,326 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * $Id: IGXMLScanner.hpp 568078 2007-08-21 11:43:25Z amassari $ - */ - - -#if !defined(IGXMLSCANNER_HPP) -#define IGXMLSCANNER_HPP - -#include -#include -#include -#include -#include -#include - -XERCES_CPP_NAMESPACE_BEGIN - -class DTDElementDecl; -class DTDGrammar; -class DTDValidator; -class SchemaValidator; -class IdentityConstraintHandler; -class IdentityConstraint; -class ContentLeafNameTypeVector; -class SchemaAttDef; -class XMLContentModel; -class XSModel; -class PSVIAttributeList; -class PSVIElement; - -// This is an integrated scanner class, which does DTD/XML Schema grammar -// processing. -class XMLPARSER_EXPORT IGXMLScanner : public XMLScanner -{ -public : - // ----------------------------------------------------------------------- - // Constructors and Destructor - // ----------------------------------------------------------------------- - IGXMLScanner - ( - XMLValidator* const valToAdopt - , GrammarResolver* const grammarResolver - , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager - ); - IGXMLScanner - ( - XMLDocumentHandler* const docHandler - , DocTypeHandler* const docTypeHandler - , XMLEntityHandler* const entityHandler - , XMLErrorReporter* const errReporter - , XMLValidator* const valToAdopt - , GrammarResolver* const grammarResolver - , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager - ); - virtual ~IGXMLScanner(); - - // ----------------------------------------------------------------------- - // XMLScanner public virtual methods - // ----------------------------------------------------------------------- - virtual const XMLCh* getName() const; - virtual NameIdPool* getEntityDeclPool(); - virtual const NameIdPool* getEntityDeclPool() const; - virtual unsigned int resolveQName - ( - const XMLCh* const qName - , XMLBuffer& prefixBufToFill - , const short mode - , int& prefixColonPos - ); - virtual void scanDocument - ( - const InputSource& src - ); - virtual bool scanNext(XMLPScanToken& toFill); - virtual Grammar* loadGrammar - ( - const InputSource& src - , const short grammarType - , const bool toCache = false - ); - - virtual Grammar::GrammarType getCurrentGrammarType() const; - -private : - // ----------------------------------------------------------------------- - // Unimplemented constructors and operators - // ----------------------------------------------------------------------- - IGXMLScanner(); - IGXMLScanner(const IGXMLScanner&); - IGXMLScanner& operator=(const IGXMLScanner&); - - // ----------------------------------------------------------------------- - // XMLScanner virtual methods - // ----------------------------------------------------------------------- - virtual void scanCDSection(); - virtual void scanCharData(XMLBuffer& toToUse); - virtual EntityExpRes scanEntityRef - ( - const bool inAttVal - , XMLCh& firstCh - , XMLCh& secondCh - , bool& escaped - ); - virtual void scanDocTypeDecl(); - virtual void scanReset(const InputSource& src); - virtual void sendCharData(XMLBuffer& toSend); - virtual InputSource* resolveSystemId(const XMLCh* const sysId - ,const XMLCh* const pubId); - - // ----------------------------------------------------------------------- - // Private helper methods - // ----------------------------------------------------------------------- - void commonInit(); - void cleanUp(); - - unsigned int buildAttList - ( - const RefVectorOf& providedAttrs - , const unsigned int attCount - , XMLElementDecl* elemDecl - , RefVectorOf& toFill - ); - bool normalizeAttValue - ( - const XMLAttDef* const attDef - , const XMLCh* const name - , const XMLCh* const value - , XMLBuffer& toFill - ); - bool normalizeAttRawValue - ( - const XMLCh* const attrName - , const XMLCh* const value - , XMLBuffer& toFill - ); - unsigned int resolvePrefix - ( - const XMLCh* const prefix - , const ElemStack::MapModes mode - ); - unsigned int resolvePrefix - ( - const XMLCh* const prefix - , XMLBuffer& uriBufToFill - , const ElemStack::MapModes mode - ); - void updateNSMap - ( - const XMLCh* const attrName - , const XMLCh* const attrValue - ); - void updateNSMap - ( - const XMLCh* const attrName - , const XMLCh* const attrValue - , const int colonPosition - ); - void scanRawAttrListforNameSpaces(int attCount); - void parseSchemaLocation(const XMLCh* const schemaLocationStr); - void resolveSchemaGrammar(const XMLCh* const loc, const XMLCh* const uri); - bool switchGrammar(const XMLCh* const newGrammarNameSpace); - bool laxElementValidation(QName* element, ContentLeafNameTypeVector* cv, - const XMLContentModel* const cm, - const unsigned int parentElemDepth); - bool anyAttributeValidation(SchemaAttDef* attWildCard, - unsigned int uriId, - bool& skipThisOne, - bool& laxThisOne); - void resizeElemState(); - void processSchemaLocation(XMLCh* const schemaLoc); - - void resizeRawAttrColonList(); - - unsigned int resolveQNameWithColon - ( - const XMLCh* const qName - , XMLBuffer& prefixBufToFill - , const short mode - , const int prefixColonPos - ); - // ----------------------------------------------------------------------- - // Private scanning methods - // ----------------------------------------------------------------------- - bool basicAttrValueScan - ( - const XMLCh* const attrName - , XMLBuffer& toFill - ); - unsigned int rawAttrScan - ( - const XMLCh* const elemName - , RefVectorOf& toFill - , bool& isEmpty - ); - bool scanAttValue - ( - const XMLAttDef* const attDef - , const XMLCh* const attrName - , XMLBuffer& toFill - ); - bool scanContent(); - void scanEndTag(bool& gotData); - bool scanStartTag(bool& gotData); - bool scanStartTagNS(bool& gotData); - - // ----------------------------------------------------------------------- - // IdentityConstraints Activation methods - // ----------------------------------------------------------------------- - inline bool toCheckIdentityConstraint() const; - - // ----------------------------------------------------------------------- - // Grammar preparsing methods - // ----------------------------------------------------------------------- - Grammar* loadXMLSchemaGrammar(const InputSource& src, const bool toCache = false); - Grammar* loadDTDGrammar(const InputSource& src, const bool toCache = false); - - // ----------------------------------------------------------------------- - // PSVI handling methods - // ----------------------------------------------------------------------- - void endElementPSVI(SchemaElementDecl* const elemDecl, - DatatypeValidator* const memberDV); - void resetPSVIElemContext(); - - // ----------------------------------------------------------------------- - // Data members - // - // fRawAttrList - // During the initial scan of the attributes we can only do a raw - // scan for key/value pairs. So this vector is used to store them - // until they can be processed (and put into fAttrList.) - // - // fDTDValidator - // The DTD validator instance. - // - // fSchemaValidator - // The Schema validator instance. - // - // fSeeXsi - // This flag indicates a schema has been seen. - // - // fElemState - // fElemStateSize - // Stores an element next state from DFA content model - used for - // wildcard validation - // - // fDTDElemNonDeclPool - // registry of "faulted-in" DTD element decls - // fSchemaElemNonDeclPool - // registry for elements without decls in the grammar - // fElemCount - // count of the number of start tags seen so far (starts at 1). - // Used for duplicate attribute detection/processing of required/defaulted attributes - // fAttDefRegistry - // mapping from XMLAttDef instances to the count of the last - // start tag where they were utilized. - // fUndeclaredAttrRegistry - // mapping of attr QNames to the count of the last start tag in which they occurred - // fUndeclaredAttrRegistryNS - // mapping of namespaceId/localName pairs to the count of the last - // start tag in which they occurred. - // fPSVIAttrList - // PSVI attribute list implementation that needs to be - // filled when a PSVIHandler is registered - // - // ----------------------------------------------------------------------- - bool fSeeXsi; - Grammar::GrammarType fGrammarType; - unsigned int fElemStateSize; - unsigned int* fElemState; - XMLBuffer fContent; - RefVectorOf* fRawAttrList; - unsigned int fRawAttrColonListSize; - int* fRawAttrColonList; - DTDValidator* fDTDValidator; - SchemaValidator* fSchemaValidator; - DTDGrammar* fDTDGrammar; - IdentityConstraintHandler* fICHandler; - ValueVectorOf* fLocationPairs; - NameIdPool* fDTDElemNonDeclPool; - RefHash3KeysIdPool* fSchemaElemNonDeclPool; - unsigned int fElemCount; - RefHashTableOf* fAttDefRegistry; - RefHashTableOf* fUndeclaredAttrRegistry; - RefHash2KeysTableOf* fUndeclaredAttrRegistryNS; - PSVIAttributeList * fPSVIAttrList; - XSModel* fModel; - PSVIElement* fPSVIElement; - ValueStackOf* fErrorStack; - PSVIElemContext fPSVIElemContext; -}; - -inline const XMLCh* IGXMLScanner::getName() const -{ - return XMLUni::fgIGXMLScanner; -} - -inline bool IGXMLScanner::toCheckIdentityConstraint() const -{ - return fValidate && fIdentityConstraintChecking && fICHandler; -} - -inline Grammar::GrammarType IGXMLScanner::getCurrentGrammarType() const -{ - return fGrammarType; -} - -XERCES_CPP_NAMESPACE_END - -#endif