summaryrefslogtreecommitdiffstats
path: root/parameter/XmlFileIncluderElement.cpp
diff options
context:
space:
mode:
authorJean-Michel Trivi <jmtrivi@google.com>2015-07-15 15:37:57 -0700
committerJean-Michel Trivi <jmtrivi@google.com>2015-07-15 17:09:51 -0700
commita9be2d378b7ad84e679a48efa81f42fb54f85d9a (patch)
tree587d34728dac3517a213d6d2a9a6ebdecd4e7531 /parameter/XmlFileIncluderElement.cpp
parentc99720d29f2ee618cc74c9336d2cd2a26544c020 (diff)
downloadexternal_parameter-framework-a9be2d378b7ad84e679a48efa81f42fb54f85d9a.zip
external_parameter-framework-a9be2d378b7ad84e679a48efa81f42fb54f85d9a.tar.gz
external_parameter-framework-a9be2d378b7ad84e679a48efa81f42fb54f85d9a.tar.bz2
Drop release v2.6.0+no-stlport
Bug 246391 Change-Id: I662b7b0f90c97cb169978e1b64ad1fe32c440cf5 Signed-off-by: Jean-Michel Trivi <jmtrivi@google.com>
Diffstat (limited to 'parameter/XmlFileIncluderElement.cpp')
-rw-r--r--parameter/XmlFileIncluderElement.cpp25
1 files changed, 17 insertions, 8 deletions
diff --git a/parameter/XmlFileIncluderElement.cpp b/parameter/XmlFileIncluderElement.cpp
index 674a331..d20a624 100644
--- a/parameter/XmlFileIncluderElement.cpp
+++ b/parameter/XmlFileIncluderElement.cpp
@@ -28,12 +28,13 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "XmlFileIncluderElement.h"
-#include "XmlFileDocSource.h"
+#include "XmlDocSource.h"
#include "XmlMemoryDocSink.h"
#include "XmlElementSerializingContext.h"
#include "ElementLibrary.h"
#include "AutoLog.h"
#include <assert.h>
+#include <fstream>
#define base CKindElement
CXmlFileIncluderElement::CXmlFileIncluderElement(const std::string& strName,
@@ -68,12 +69,20 @@ bool CXmlFileIncluderElement::fromXml(const CXmlElement& xmlElement, CXmlSeriali
std::string strPathToXsdFile = elementSerializingContext.getXmlSchemaPathFolder() + "/" +
strIncludedElementType + ".xsd";
- CXmlFileDocSource fileDocSource(strPath,
- strPathToXsdFile,
- strIncludedElementType,
- _bValidateSchemasOnStart);
+ std::string xmlErrorMsg;
+ _xmlDoc *doc = CXmlDocSource::mkXmlDoc(strPath, true, true, xmlErrorMsg);
+ if (doc == NULL) {
+ elementSerializingContext.setError(xmlErrorMsg);
+ return false;
+ }
+
+ CXmlDocSource docSource(doc, _bValidateSchemasOnStart,
+ strPathToXsdFile,
+ strIncludedElementType);
+
+ if (!docSource.isParsable()) {
- if (!fileDocSource.isParsable(elementSerializingContext)) {
+ elementSerializingContext.setError("Could not parse document \"" + strPath + "\"");
return false;
}
@@ -81,7 +90,7 @@ bool CXmlFileIncluderElement::fromXml(const CXmlElement& xmlElement, CXmlSeriali
// Get top level element
CXmlElement childElement;
- fileDocSource.getRootElement(childElement);
+ docSource.getRootElement(childElement);
// Create child element
CElement* pChild = elementSerializingContext.getElementLibrary()->createElement(childElement);
@@ -100,7 +109,7 @@ bool CXmlFileIncluderElement::fromXml(const CXmlElement& xmlElement, CXmlSeriali
// Use a doc sink that instantiate the structure from the doc source
CXmlMemoryDocSink memorySink(pChild);
- if (!memorySink.process(fileDocSource, elementSerializingContext)) {
+ if (!memorySink.process(docSource, elementSerializingContext)) {
return false;
}