VirtualBox

Changeset 49028 in vbox for trunk/src/VBox/Main


Ignore:
Timestamp:
Oct 10, 2013 12:55:06 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
89794
Message:

iprt/cpp/xml: Fixed attribute lookup with namespace by doing the same way as for elements. Also renamed the two methods with namespace prefix and name in the 'logical' order so they can safely be changed to the order dictated C++ default parameter value handling (name first, then optionally ns-prefix), like the rest.

Location:
trunk/src/VBox/Main/xml
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/xml/Settings.cpp

    r48983 r49028  
    493493            // <ExtraDataItem name="GUI/LastWindowPostion" value="97,88,981,858"/>
    494494            Utf8Str strName, strValue;
    495             if (    ((pelmExtraDataItem->getAttributeValue("name", strName)))
    496                  && ((pelmExtraDataItem->getAttributeValue("value", strValue)))
    497                )
     495            if (   pelmExtraDataItem->getAttributeValue("name", strName)
     496                && pelmExtraDataItem->getAttributeValue("value", strValue) )
    498497                map[strName] = strValue;
    499498            else
     
    521520        flt.action = USBDeviceFilterAction_Ignore;
    522521        Utf8Str strAction;
    523         if (    (pelmLevel4Child->getAttributeValue("name", flt.strName))
    524              && (pelmLevel4Child->getAttributeValue("active", flt.fActive))
    525            )
     522        if (   pelmLevel4Child->getAttributeValue("name", flt.strName)
     523            && pelmLevel4Child->getAttributeValue("active", flt.fActive))
    526524        {
    527525            if (!pelmLevel4Child->getAttributeValue("vendorId", flt.strVendorId))
     
    576574    settings::Medium med;
    577575    Utf8Str strUUID;
    578     if (!(elmMedium.getAttributeValue("uuid", strUUID)))
     576    if (!elmMedium.getAttributeValue("uuid", strUUID))
    579577        throw ConfigFileError(this, &elmMedium, N_("Required %s/@uuid attribute is missing"), elmMedium.getName());
    580578
     
    669667
    670668        if (med.strFormat.isEmpty())        // not set with 1.4 format above, or 1.4 Custom format?
    671             if (!(elmMedium.getAttributeValue("format", med.strFormat)))
     669            if (!elmMedium.getAttributeValue("format", med.strFormat))
    672670                throw ConfigFileError(this, &elmMedium, N_("Required %s/@format attribute is missing"), elmMedium.getName());
    673671
    674         if (!(elmMedium.getAttributeValue("autoReset", med.fAutoReset)))
     672        if (!elmMedium.getAttributeValue("autoReset", med.fAutoReset))
    675673            med.fAutoReset = false;
    676674
    677675        Utf8Str strType;
    678         if ((elmMedium.getAttributeValue("type", strType)))
     676        if (elmMedium.getAttributeValue("type", strType))
    679677        {
    680678            // pre-1.4 used lower case, so make this case-insensitive
     
    701699        {
    702700            // DVD and floppy images before 1.4 had "src" attribute instead of "location"
    703             if (!(elmMedium.getAttributeValue("src", med.strLocation)))
     701            if (!elmMedium.getAttributeValue("src", med.strLocation))
    704702                throw ConfigFileError(this, &elmMedium, N_("Required %s/@src attribute is missing"), elmMedium.getName());
    705703
     
    707705        }
    708706
    709         if (!(elmMedium.getAttributeValue("format", med.strFormat)))
     707        if (!elmMedium.getAttributeValue("format", med.strFormat))
    710708        {
    711709            // DVD and floppy images before 1.11 had no format attribute. assign the default.
     
    721719    if (fNeedsLocation)
    722720        // current files and 1.4 CustomHardDisk elements must have a location attribute
    723         if (!(elmMedium.getAttributeValue("location", med.strLocation)))
     721        if (!elmMedium.getAttributeValue("location", med.strLocation))
    724722            throw ConfigFileError(this, &elmMedium, N_("Required %s/@location attribute is missing"), elmMedium.getName());
    725723
     
    745743        {
    746744            Utf8Str strPropName, strPropValue;
    747             if (    (pelmHDChild->getAttributeValue("name", strPropName))
    748                  && (pelmHDChild->getAttributeValue("value", strPropValue))
    749                )
     745            if (   pelmHDChild->getAttributeValue("name", strPropName)
     746                && pelmHDChild->getAttributeValue("value", strPropValue) )
    750747                med.properties[strPropName] = strPropValue;
    751748            else
     
    13021299            MachineRegistryEntry mre;
    13031300            Utf8Str strUUID;
    1304             if (    ((pelmChild1->getAttributeValue("uuid", strUUID)))
    1305                  && ((pelmChild1->getAttributeValue("src", mre.strSettingsFile)))
    1306                )
     1301            if (   pelmChild1->getAttributeValue("uuid", strUUID)
     1302                && pelmChild1->getAttributeValue("src", mre.strSettingsFile) )
    13071303            {
    13081304                parseUUID(mre.uuid, strUUID);
     
    13281324        {
    13291325            DHCPServer srv;
    1330             if (    (pelmServer->getAttributeValue("networkName", srv.strNetworkName))
    1331                  && (pelmServer->getAttributeValue("IPAddress", srv.strIPAddress))
    1332                     && (pelmServer->getAttributeValue("networkMask", srv.GlobalDhcpOptions[DhcpOpt_SubnetMask]))
    1333                  && (pelmServer->getAttributeValue("lowerIP", srv.strIPLower))
    1334                  && (pelmServer->getAttributeValue("upperIP", srv.strIPUpper))
    1335                  && (pelmServer->getAttributeValue("enabled", srv.fEnabled))
    1336                )
     1326            if (   pelmServer->getAttributeValue("networkName", srv.strNetworkName)
     1327                && pelmServer->getAttributeValue("IPAddress", srv.strIPAddress)
     1328                && pelmServer->getAttributeValue("networkMask", srv.GlobalDhcpOptions[DhcpOpt_SubnetMask])
     1329                && pelmServer->getAttributeValue("lowerIP", srv.strIPLower)
     1330                && pelmServer->getAttributeValue("upperIP", srv.strIPUpper)
     1331                && pelmServer->getAttributeValue("enabled", srv.fEnabled) )
    13371332            {
    13381333                xml::NodesLoop nlOptions(*pelmServer, "Options");
     
    13511346                    uint32_t u32Slot;
    13521347                    cfg->getAttributeValue("vm-name", strVmName);
    1353                     cfg->getAttributeValue("slot", (uint32_t&)u32Slot);
    1354                     readDhcpOptions(srv.VmSlot2OptionsM[VmNameSlotKey(strVmName, u32Slot)],
    1355                                    *cfg);
     1348                    cfg->getAttributeValue("slot", u32Slot);
     1349                    readDhcpOptions(srv.VmSlot2OptionsM[VmNameSlotKey(strVmName, u32Slot)], *cfg);
    13561350                }
    13571351                llDhcpServers.push_back(srv);
     
    13681362    xml::NodesLoop nl2(options, "Option");
    13691363    const xml::ElementNode *opt;
    1370     while((opt = nl2.forAllNodes()))
     1364    while ((opt = nl2.forAllNodes()))
    13711365    {
    13721366        DhcpOpt_T OptName;
     
    13791373        opt->getAttributeValue("value", OptValue);
    13801374
    1381         map.insert(
    1382           std::map<DhcpOpt_T, Utf8Str>::value_type(OptName, OptValue));
     1375        map.insert(std::map<DhcpOpt_T, Utf8Str>::value_type(OptName, OptValue));
    13831376    } /* end of forall("Option") */
    13841377
     
    13981391        {
    13991392            NATNetwork net;
    1400             if (    (pelmNet->getAttributeValue("networkName", net.strNetworkName))
    1401                  && (pelmNet->getAttributeValue("enabled", net.fEnabled))
    1402                  && (pelmNet->getAttributeValue("network", net.strNetwork))
    1403                  && (pelmNet->getAttributeValue("ipv6", net.fIPv6))
    1404                  && (pelmNet->getAttributeValue("ipv6prefix", net.strIPv6Prefix))
    1405                  && (pelmNet->getAttributeValue("advertiseDefaultIPv6Route", net.fAdvertiseDefaultIPv6Route))
    1406                  && (pelmNet->getAttributeValue("needDhcp", net.fNeedDhcpServer))
    1407                )
     1393            if (   pelmNet->getAttributeValue("networkName", net.strNetworkName)
     1394                && pelmNet->getAttributeValue("enabled", net.fEnabled)
     1395                && pelmNet->getAttributeValue("network", net.strNetwork)
     1396                && pelmNet->getAttributeValue("ipv6", net.fIPv6)
     1397                && pelmNet->getAttributeValue("ipv6prefix", net.strIPv6Prefix)
     1398                && pelmNet->getAttributeValue("advertiseDefaultIPv6Route", net.fAdvertiseDefaultIPv6Route)
     1399                && pelmNet->getAttributeValue("needDhcp", net.fNeedDhcpServer) )
    14081400            {
    14091401                pelmNet->getAttributeValue("loopback6", net.u32HostLoopback6Offset);
     
    23792371        readNATForwardRuleList(elmMode, nic.nat.llRules);
    23802372    }
    2381     else if (   (elmMode.nameEquals("HostInterface"))
    2382              || (elmMode.nameEquals("BridgedInterface")))
     2373    else if (   elmMode.nameEquals("HostInterface")
     2374             || elmMode.nameEquals("BridgedInterface"))
    23832375    {
    23842376        enmAttachmentType = NetworkAttachmentType_Bridged;
     
    24142406            {
    24152407                Utf8Str strPropName, strPropValue;
    2416                 if (    (pelmModeChild->getAttributeValue("name", strPropName))
    2417                      && (pelmModeChild->getAttributeValue("value", strPropValue))
    2418                    )
     2408                if (   pelmModeChild->getAttributeValue("name", strPropName)
     2409                    && pelmModeChild->getAttributeValue("value", strPropValue) )
    24192410                    nic.genericProperties[strPropName] = strPropValue;
    24202411                else
     
    29582949                        /* <Property name="TCP/Ports" value="3000-3002"/> */
    29592950                        Utf8Str strName, strValue;
    2960                         if (    ((pelmProperty->getAttributeValue("name", strName)))
    2961                              && ((pelmProperty->getAttributeValue("value", strValue)))
    2962                            )
     2951                        if (   pelmProperty->getAttributeValue("name", strName)
     2952                            && pelmProperty->getAttributeValue("value", strValue))
    29632953                            hw.vrdeSettings.mapProperties[strName] = strValue;
    29642954                        else
     
    30062996            // legacy BIOS/IDEController (pre 1.7)
    30072997            if (    (m->sv < SettingsVersion_v1_7)
    3008                  && ((pelmBIOSChild = pelmHwChild->findChildElement("IDEController")))
     2998                 && (pelmBIOSChild = pelmHwChild->findChildElement("IDEController"))
    30092999               )
    30103000            {
     
    30923082                readUSBDeviceFilters(*pelmUSBChild, hw.usbSettings.llDeviceFilters);
    30933083        }
    3094         else if (    (m->sv < SettingsVersion_v1_7)
    3095                   && (pelmHwChild->nameEquals("SATAController"))
    3096                 )
     3084        else if (   m->sv < SettingsVersion_v1_7
     3085                 && pelmHwChild->nameEquals("SATAController"))
    30973086        {
    30983087            bool f;
    3099             if (    (pelmHwChild->getAttributeValue("enabled", f))
    3100                  && (f)
    3101                )
     3088            if (   pelmHwChild->getAttributeValue("enabled", f)
     3089                && f)
    31023090            {
    31033091                StorageController sctl;
     
    31163104        {
    31173105            Utf8Str strLocalOrUTC;
    3118             machineUserData.fRTCUseUTC =    pelmHwChild->getAttributeValue("localOrUTC", strLocalOrUTC)
    3119                                          && strLocalOrUTC == "UTC";
    3120         }
    3121         else if (    (pelmHwChild->nameEquals("UART"))
    3122                   || (pelmHwChild->nameEquals("Uart"))      // used before 1.3
     3106            machineUserData.fRTCUseUTC = pelmHwChild->getAttributeValue("localOrUTC", strLocalOrUTC)
     3107                                      && strLocalOrUTC == "UTC";
     3108        }
     3109        else if (    pelmHwChild->nameEquals("UART")
     3110                  || pelmHwChild->nameEquals("Uart")      // used before 1.3
    31233111                )
    31243112            readSerialPorts(*pelmHwChild, hw.llSerialPorts);
    3125         else if (    (pelmHwChild->nameEquals("LPT"))
    3126                   || (pelmHwChild->nameEquals("Lpt"))       // used before 1.3
     3113        else if (    pelmHwChild->nameEquals("LPT")
     3114                  || pelmHwChild->nameEquals("Lpt")       // used before 1.3
    31273115                )
    31283116            readParallelPorts(*pelmHwChild, hw.llParallelPorts);
     
    32263214                }
    32273215            }
    3228         }  else if (pelmHwChild->nameEquals("HostPci")) {
     3216        }
     3217        else if (pelmHwChild->nameEquals("HostPci"))
     3218        {
    32293219            const xml::ElementNode *pelmDevices;
    32303220
     
    35373527            const xml::ElementNode *pDriveChild;
    35383528            Utf8Str strTmp;
    3539             if (    ((pDriveChild = pelmHwChild->findChildElement("Image")))
    3540                  && (pDriveChild->getAttributeValue("uuid", strTmp))
    3541                )
     3529            if (   (pDriveChild = pelmHwChild->findChildElement("Image")) != NULL
     3530                && pDriveChild->getAttributeValue("uuid", strTmp))
    35423531                parseUUID(att.uuid, strTmp);
    35433532            else if ((pDriveChild = pelmHwChild->findChildElement("HostDrive")))
     
    35673556        {
    35683557            bool fEnabled;
    3569             if (    (pelmHwChild->getAttributeValue("enabled", fEnabled))
    3570                  && (fEnabled)
    3571                )
     3558            if (   pelmHwChild->getAttributeValue("enabled", fEnabled)
     3559                && fEnabled)
    35723560            {
    35733561                // create a new floppy controller and attach a floppy "attached device"
     
    35853573                const xml::ElementNode *pDriveChild;
    35863574                Utf8Str strTmp;
    3587                 if (    ((pDriveChild = pelmHwChild->findChildElement("Image")))
    3588                      && (pDriveChild->getAttributeValue("uuid", strTmp))
    3589                    )
     3575                if (   (pDriveChild = pelmHwChild->findChildElement("Image"))
     3576                    && pDriveChild->getAttributeValue("uuid", strTmp) )
    35903577                    parseUUID(att.uuid, strTmp);
    35913578                else if ((pDriveChild = pelmHwChild->findChildElement("HostDrive")))
     
    37343721        if (pelmSnapshotChild->nameEquals("Description"))
    37353722            snap.strDescription = pelmSnapshotChild->getValue();
    3736         else if (    (m->sv < SettingsVersion_v1_7)
    3737                   && (pelmSnapshotChild->nameEquals("HardDiskAttachments"))
    3738                 )
     3723        else if (   m->sv < SettingsVersion_v1_7
     3724                 && pelmSnapshotChild->nameEquals("HardDiskAttachments"))
    37393725            readHardDiskAttachments_pre1_7(*pelmSnapshotChild, snap.storage);
    3740         else if (    (m->sv >= SettingsVersion_v1_7)
    3741                   && (pelmSnapshotChild->nameEquals("StorageControllers"))
    3742                 )
     3726        else if (   m->sv >= SettingsVersion_v1_7
     3727                 && pelmSnapshotChild->nameEquals("StorageControllers"))
    37433728            readStorageControllers(*pelmSnapshotChild, snap.storage);
    37443729        else if (pelmSnapshotChild->nameEquals("Snapshots"))
     
    38373822{
    38383823    Utf8Str strUUID;
    3839     if (    (elmMachine.getAttributeValue("uuid", strUUID))
    3840          && (elmMachine.getAttributeValue("name", machineUserData.strName))
    3841        )
     3824    if (   elmMachine.getAttributeValue("uuid", strUUID)
     3825        && elmMachine.getAttributeValue("name", machineUserData.strName))
    38423826    {
    38433827        parseUUID(uuid, strUUID);
  • trunk/src/VBox/Main/xml/ovfreader.cpp

    r48009 r49028  
    9191    }
    9292
    93     if ((pTypeAttr = pRootElem->findAttribute("xml:lang")))
     93    if ((pTypeAttr = pRootElem->findAttribute("lang", "xml")))
    9494    {
    9595        pcszTypeAttr = pTypeAttr->getValue();
     
    135135        const char *pcszTypeAttr = "";
    136136        const xml::AttributeNode *pTypeAttr;
    137         if (    ((pTypeAttr = pElem->findAttribute("xsi:type")))
    138              || ((pTypeAttr = pElem->findAttribute("type")))
     137        if (    (pTypeAttr = pElem->findAttribute("type", "xsi")) != NULL
     138             || (pTypeAttr = pElem->findAttribute("type")) != NULL
    139139           )
    140140            pcszTypeAttr = pTypeAttr->getValue();
     
    231231
    232232            // optional vbox:uuid attribute (if OVF was exported by VirtualBox != 3.2)
    233             pelmDisk->getAttributeValue("vbox:uuid", d.uuidVbox);
     233            pelmDisk->getAttributeValue("uuid", d.uuidVbox, "vbox");
    234234
    235235            const char *pcszFileRef;
     
    335335    // peek under the <VirtualSystem> node whether we have a <vbox:Machine> node;
    336336    // that case case, the caller can completely ignore the OVF but only load the VBox machine XML
    337     vsys.pelmVboxMachine = pelmVirtualSystem->findChildElement("vbox", "Machine");
     337    vsys.pelmVboxMachine = pelmVirtualSystem->findChildElementNS("vbox", "Machine");
    338338
    339339    // now look for real OVF
     
    351351        {
    352352            const xml::AttributeNode *pTypeAttr;
    353             if (    ((pTypeAttr = pelmThis->findAttribute("type")))
    354                  || ((pTypeAttr = pelmThis->findAttribute("xsi:type")))
     353            if (    (pTypeAttr = pelmThis->findAttribute("type")) != NULL
     354                 || (pTypeAttr = pelmThis->findAttribute("type", "xsi")) != NULL
    355355               )
    356356                pcszTypeAttr = pTypeAttr->getValue();
     
    813813
    814814            const xml::ElementNode *pelmVBoxOSType;
    815             if ((pelmVBoxOSType = pelmThis->findChildElement("vbox",            // namespace
    816                                                              "OSType")))        // element name
     815            if ((pelmVBoxOSType = pelmThis->findChildElementNS("vbox",            // namespace
     816                                                               "OSType")))        // element name
    817817                vsys.strTypeVbox = pelmVBoxOSType->getValue();
    818818        }
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette