complextypeinfo.hpp

来自「IBM的解析xml的工具Xerces的源代码」· HPP 代码 · 共 574 行 · 第 1/2 页

HPP
574
字号
    return 0;}inline XMLCh* ComplexTypeInfo::getTypeName() const {    return fTypeName;}inline DatatypeValidator* ComplexTypeInfo::getBaseDatatypeValidator() const {    return fBaseDatatypeValidator;}inline DatatypeValidator* ComplexTypeInfo::getDatatypeValidator() const {    return fDatatypeValidator;}inline ComplexTypeInfo* ComplexTypeInfo::getBaseComplexTypeInfo() const {    return fBaseComplexTypeInfo;}inline ContentSpecNode* ComplexTypeInfo::getContentSpec() const {    return fContentSpec;}inline const SchemaAttDef* ComplexTypeInfo::getAttWildCard() const {    return fAttWildCard;}inline SchemaAttDef* ComplexTypeInfo::getAttWildCard() {    return fAttWildCard;}inline const SchemaAttDef* ComplexTypeInfo::getAttDef(const XMLCh* const baseName,                                                      const int uriId) const {    // If no list, then return a null    if (!fAttDefs)        return 0;    return fAttDefs->get(baseName, uriId);}inline SchemaAttDef* ComplexTypeInfo::getAttDef(const XMLCh* const baseName,                                                const int uriId){    // If no list, then return a null    if (!fAttDefs)        return 0;    return fAttDefs->get(baseName, uriId);}inline SchemaElementDecl*ComplexTypeInfo::elementAt(const unsigned int index) {    if (!fElements) {        return 0; // REVISIT - need to throw an exception    }    return fElements->elementAt(index);}inline const SchemaElementDecl*ComplexTypeInfo::elementAt(const unsigned int index) const {    if (!fElements) {        return 0; // REVISIT - need to throw an exception    }    return fElements->elementAt(index);}inline XMLContentModel* ComplexTypeInfo::getContentModel(const bool checkUPA){    if (!fContentModel && fContentSpec)        fContentModel = makeContentModel(checkUPA);    return fContentModel;}inline XSDLocator* ComplexTypeInfo::getLocator() const{    return fLocator;}inline bool ComplexTypeInfo::getAnonymous() const {    return fAnonymous;}inline const XMLCh* ComplexTypeInfo::getTypeLocalName() const{    return fTypeLocalName;}inline const XMLCh* ComplexTypeInfo::getTypeUri() const{   return fTypeUri;}// ---------------------------------------------------------------------------//  ComplexTypeInfo: Setter methods// ---------------------------------------------------------------------------inline void ComplexTypeInfo::setAbstract(const bool isAbstract) {    fAbstract = isAbstract;}inline void ComplexTypeInfo::setAdoptContentSpec(const bool toAdopt) {    fAdoptContentSpec = toAdopt;}inline void ComplexTypeInfo::setAttWithTypeId(const bool value) {    fAttWithTypeId = value;}inline void ComplexTypeInfo::setPreprocessed(const bool aValue) {    fPreprocessed = aValue;}inline void ComplexTypeInfo::setDerivedBy(const int derivedBy) {    fDerivedBy = derivedBy;}inline void ComplexTypeInfo::setBlockSet(const int blockSet) {    fBlockSet = blockSet;}inline void ComplexTypeInfo::setFinalSet(const int finalSet) {    fFinalSet = finalSet;}inline void ComplexTypeInfo::setScopeDefined(const int scopeDefined) {    fScopeDefined = scopeDefined;}inline void ComplexTypeInfo::setElementId(const unsigned int elemId) {    fElementId = elemId;}inline voidComplexTypeInfo::setContentType(const int contentType) {    fContentType = contentType;}inline void ComplexTypeInfo::setTypeName(const XMLCh* const typeName) {    fMemoryManager->deallocate(fTypeName);//delete [] fTypeName;    fMemoryManager->deallocate(fTypeLocalName);//delete [] fTypeLocalName;    fMemoryManager->deallocate(fTypeUri);//delete [] fTypeUri;        if (typeName)    {        fTypeName = XMLString::replicate(typeName, fMemoryManager);        int index = XMLString::indexOf(fTypeName, chComma);        int length = XMLString::stringLen(fTypeName);        fTypeLocalName = (XMLCh*) fMemoryManager->allocate        (            (length - index + 1) * sizeof(XMLCh)        ); //new XMLCh[length - index + 1];        XMLString::subString(fTypeLocalName, fTypeName, index + 1, length, fMemoryManager);                fTypeUri = (XMLCh*) fMemoryManager->allocate        (            (index + 1) * sizeof(XMLCh)        ); //new XMLCh[index + 1];        XMLString::subString(fTypeUri, fTypeName, 0, index, fMemoryManager);            }    else    {        fTypeName = fTypeLocalName = fTypeUri = 0;    }}inline voidComplexTypeInfo::setBaseDatatypeValidator(DatatypeValidator* const validator) {    fBaseDatatypeValidator = validator;}inline voidComplexTypeInfo::setDatatypeValidator(DatatypeValidator* const validator) {    fDatatypeValidator = validator;}inline voidComplexTypeInfo::setBaseComplexTypeInfo(ComplexTypeInfo* const typeInfo) {    fBaseComplexTypeInfo = typeInfo;}inline void ComplexTypeInfo::addElement(SchemaElementDecl* const elem) {    if (!fElements) {        fElements = new (fMemoryManager) RefVectorOf<SchemaElementDecl>(8, false, fMemoryManager);    }    else if (fElements->containsElement(elem)) {        return;    }    fElements->addElement(elem);}inline void ComplexTypeInfo::setAttWildCard(SchemaAttDef* const toAdopt) {    if (fAttWildCard) {       delete fAttWildCard;    }    fAttWildCard = toAdopt;}inline voidComplexTypeInfo::setContentModel(XMLContentModel* const newModelToAdopt){    delete fContentModel;    fContentModel = newModelToAdopt;    // reset formattedModel    if (fFormattedModel)    {        fMemoryManager->deallocate(fFormattedModel);        fFormattedModel = 0;    }}inline void ComplexTypeInfo::setAnonymous() {    fAnonymous = true;}// ---------------------------------------------------------------------------//  ComplexTypeInfo: Helper methods// ---------------------------------------------------------------------------inline bool ComplexTypeInfo::hasAttDefs() const{    // If the collection hasn't been faulted in, then no att defs    if (!fAttDefs)        return false;    return !fAttDefs->isEmpty();}inline bool ComplexTypeInfo::contains(const XMLCh* const attName) {    if (!fAttDefs) {        return false;    }    RefHash2KeysTableOfEnumerator<SchemaAttDef> enumDefs(fAttDefs, false, fMemoryManager);    while (enumDefs.hasMoreElements()) {        if (XMLString::equals(attName, enumDefs.nextElement().getAttName()->getLocalPart())) {            return true;        }    }    return false;}XERCES_CPP_NAMESPACE_END#endif/**  * End of file ComplexTypeInfo.hpp  */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?