Ignore:
Timestamp:
May 19, 2013, 9:20:51 AM (6 years ago)
Author:
cameron
Message:

Fixes for icXML 0.9

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icXML/icXML-devel/src/icxercesc/validators/schema/TraverseSchema.cpp

    r3153 r3157  
    82268226        }
    82278227
    8228         if (attGroupInfo) {
     8228    if (attGroupInfo) {
    82298229                copyAttGroupAttributes(elem, attGroupInfo, fCurrentAttGroupInfo, typeInfo);
    82308230        }
    82318231
    82328232        // restore schema information, if necessary
    8233         if (saveInfo != fSchemaInfo) {
     8233    if (saveInfo != fSchemaInfo) {
    82348234                restoreSchemaInfo(saveInfo, infoType);
    82358235        }
     
    1058510585}
    1058610586
     10587// NOTE: had to move these functions out to retain DLL compatibility
     10588
     10589const XMLCh* TraverseSchema::getPrefix(const XMLCh* const rawName)
     10590{
     10591    int colonIndex = XMLString::indexOf(rawName, chColon);
     10592
     10593    if (colonIndex <= 0)
     10594    {
     10595        return XMLUni::fgZeroLenString;
     10596    }
     10597
     10598    XMLCh * const colon = const_cast<XMLCh*>(&rawName[colonIndex]);
     10599
     10600    *colon = 0;
     10601    const XMLCh * name = fStringPool->getValueForId(fStringPool->addOrFind(rawName));
     10602    *colon = chColon;
     10603
     10604    return name;
     10605}
     10606
     10607void TraverseSchema::addImportedNS(const int namespaceURI)
     10608{
     10609    if (!fImportedNSList)
     10610    {
     10611        fImportedNSList = new (fMemoryManager) ValueVectorOf<int>(4, fMemoryManager);
     10612    }
     10613
     10614    if (!fImportedNSList->containsElement(namespaceURI))
     10615    {
     10616        fImportedNSList->addElement(namespaceURI);
     10617    }
     10618}
     10619
     10620const XMLCh* TraverseSchema::genAnonTypeName(const XMLCh* const prefix)
     10621{
     10622    XMLCh anonCountStr[16]; // a count of 15 digits should be enough
     10623
     10624    XMLString::sizeToText(fAnonXSTypeCount++, anonCountStr, 15, 10, fMemoryManager);
     10625    fBuffer.set(prefix);
     10626    fBuffer.append(anonCountStr);
     10627
     10628    return fStringPool->getValueForId(fStringPool->addOrFind(fBuffer.getRawBuffer()));
     10629}
     10630
     10631const XMLCh* TraverseSchema::getLocalPart(const XMLCh* const rawName)
     10632{
     10633    int    colonIndex = XMLString::indexOf(rawName, chColon);
     10634    XMLSize_t rawNameLen = XMLString::stringLen(rawName);
     10635
     10636    if (XMLSize_t(colonIndex + 1) == rawNameLen)
     10637    {
     10638        return XMLUni::fgZeroLenString;
     10639    }
     10640
     10641    return fStringPool->getValueForId(fStringPool->addOrFind(&rawName[colonIndex + 1]));
     10642}
     10643
    1058710644XERCES_CPP_NAMESPACE_END
    1058810645
Note: See TracChangeset for help on using the changeset viewer.