// From IXmlSink bool CCompoundRule::fromXml(const CXmlElement& xmlElement, CXmlSerializingContext& serializingContext) { // Get type _bTypeAll = xmlElement.getAttributeBoolean("Type", _apcTypes[true]); // Base return base::fromXml(xmlElement, serializingContext); }
// From IXmlSink bool CSubsystem::fromXml(const CXmlElement& xmlElement, CXmlSerializingContext& serializingContext) { // Context CXmlParameterSerializingContext& parameterBuildContext = static_cast<CXmlParameterSerializingContext&>(serializingContext); // Install temporary component library for further component creation parameterBuildContext.setComponentLibrary(_pComponentLibrary); CXmlElement childElement; // XML populate ComponentLibrary xmlElement.getChildElement("ComponentLibrary", childElement); if (!_pComponentLibrary->fromXml(childElement, serializingContext)) { return false; } // XML populate InstanceDefintion xmlElement.getChildElement("InstanceDefintion", childElement); if (!_pInstanceDefinition->fromXml(childElement, serializingContext)) { return false; } // Create components _pInstanceDefinition->createInstances(this); // Execute mapping to create subsystem mapping entities string strError; if (!mapSubsystemElements(strError)) { serializingContext.setError(strError); return false; } // Endianness _bBigEndian = xmlElement.getAttributeBoolean("Endianness", "Big"); return true; }
// XML Serialization value space handling // Value space handling for configuration import void CFixedPointParameterType::handleValueSpaceAttribute(CXmlElement& xmlConfigurableElementSettingsElement, CConfigurationAccessContext& configurationAccessContext) const { // Direction? if (!configurationAccessContext.serializeOut()) { // Get Value space from XML if (xmlConfigurableElementSettingsElement.hasAttribute("ValueSpace")) { configurationAccessContext.setValueSpaceRaw(xmlConfigurableElementSettingsElement.getAttributeBoolean("ValueSpace", "Raw")); } else { configurationAccessContext.setValueSpaceRaw(false); } } else { // Provide value space only if not the default one if (configurationAccessContext.valueSpaceIsRaw()) { xmlConfigurableElementSettingsElement.setAttributeString("ValueSpace", "Raw"); } } }