aboutsummaryrefslogtreecommitdiffstats
path: root/xmlserializer/XmlParser.cpp
diff options
context:
space:
mode:
authorGeorges-Henri Baron <georges-henrix.baron@intel.com>2012-06-28 12:05:09 +0200
committerDavid Wagner <david.wagner@intel.com>2014-02-12 17:03:13 +0100
commit326a31df0dd401283de6170ed09bcf605f61ef7d (patch)
tree8b41618325db75380a53df102e2f0e62451a3b2b /xmlserializer/XmlParser.cpp
parentdc32d63f2ed740af1bfc0b3f8fd2337cba46d895 (diff)
downloadexternal_parameter-framework-326a31df0dd401283de6170ed09bcf605f61ef7d.zip
external_parameter-framework-326a31df0dd401283de6170ed09bcf605f61ef7d.tar.gz
external_parameter-framework-326a31df0dd401283de6170ed09bcf605f61ef7d.tar.bz2
PFW: Add two commands to print xml settings and structure
BZ: 44910 Creates two commands that can be called through the command line of the parameter-framework. First command getDomainXML returns a string containing the xml structure of the domains, configurations and settings. Second command getSystemClassXML returns a string containing the xml structure of all the instantiated parameter with their attributes. Change-Id: I9a35333802049a2177b8fc416754fdb67e6efff0 Signed-off-by: Georges-Henri Baron <georges-henrix.baron@intel.com> Reviewed-on: http://android.intel.com:8080/55155 Reviewed-by: Rocard, KevinX <kevinx.rocard@intel.com> Reviewed-by: Centelles, Sylvain <sylvain.centelles@intel.com> Tested-by: Mendi, EduardoX <eduardox.mendi@intel.com> Reviewed-by: buildbot <buildbot@intel.com> Tested-by: buildbot <buildbot@intel.com>
Diffstat (limited to 'xmlserializer/XmlParser.cpp')
-rw-r--r--xmlserializer/XmlParser.cpp156
1 files changed, 0 insertions, 156 deletions
diff --git a/xmlserializer/XmlParser.cpp b/xmlserializer/XmlParser.cpp
deleted file mode 100644
index af26346..0000000
--- a/xmlserializer/XmlParser.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * INTEL CONFIDENTIAL
- * Copyright © 2011 Intel
- * Corporation All Rights Reserved.
- *
- * The source code contained or described herein and all documents related to
- * the source code ("Material") are owned by Intel Corporation or its suppliers
- * or licensors. Title to the Material remains with Intel Corporation or its
- * suppliers and licensors. The Material contains trade secrets and proprietary
- * and confidential information of Intel or its suppliers and licensors. The
- * Material is protected by worldwide copyright and trade secret laws and
- * treaty provisions. No part of the Material may be used, copied, reproduced,
- * modified, published, uploaded, posted, transmitted, distributed, or
- * disclosed in any way without Intel’s prior express written permission.
- *
- * No license under any patent, copyright, trade secret or other intellectual
- * property right is granted to or conferred upon you by disclosure or delivery
- * of the Materials, either expressly, by implication, inducement, estoppel or
- * otherwise. Any license under such intellectual property rights must be
- * express and approved by Intel in writing.
- *
- * CREATED: 2011-06-01
- * UPDATED: 2011-07-27
- */
-#include "XmlParser.h"
-#include <stdio.h>
-#include <stdarg.h>
-#include <libxml/parser.h>
-#include <libxml/tree.h>
-#include <libxml/xmlschemas.h>
-
-#define base CXmlSerializer
-
-
-CXmlParser::CXmlParser(const string& strXmlInstanceFile, const string& strXmlSchemaFile, const string& strRootElementType, CXmlSerializingContext& serializingContext) :
- base(strXmlInstanceFile, strXmlSchemaFile, strRootElementType, serializingContext)
-{
-}
-
-CXmlParser::~CXmlParser()
-{
-}
-
-void CXmlParser::schemaValidityStructuredErrorFunc(void* pUserData, _xmlError* pError)
-{
- (void)pUserData;
-
-#ifdef LIBXML_SCHEMAS_ENABLED
- // Display message
- puts(pError->message);
-#endif
-}
-
-bool CXmlParser::isInstanceDocumentValid()
-{
-#ifdef LIBXML_SCHEMAS_ENABLED
- xmlDocPtr pSchemaDoc = xmlReadFile(_strXmlSchemaFile.c_str(), NULL, XML_PARSE_NONET);
-
- if (!pSchemaDoc) {
- // Unable to load Schema
- return false;
- }
-
- xmlSchemaParserCtxtPtr pParserCtxt = xmlSchemaNewDocParserCtxt(pSchemaDoc);
-
- if (!pParserCtxt) {
-
- // Unable to create schema context
- xmlFreeDoc(pSchemaDoc);
- return false;
- }
-
- // Get Schema
- xmlSchemaPtr pSchema = xmlSchemaParse(pParserCtxt);
-
- if (!pSchema) {
-
- // Invalid Schema
- xmlSchemaFreeParserCtxt(pParserCtxt);
- xmlFreeDoc(pSchemaDoc);
- return false;
- }
- xmlSchemaValidCtxtPtr pValidationCtxt = xmlSchemaNewValidCtxt(pSchema);
-
- if (!pValidationCtxt) {
-
- // Unable to create validation context
- xmlSchemaFree(pSchema);
- xmlSchemaFreeParserCtxt(pParserCtxt);
- xmlFreeDoc(pSchemaDoc);
- return false;
- }
-
- xmlSetStructuredErrorFunc(this, schemaValidityStructuredErrorFunc);
- //xmlSchemaSetValidErrors(pValidationCtxt, schemaValidityErrorFunc, schemaValidityWarningFunc, NULL);
-
- bool isDocValid = xmlSchemaValidateDoc(pValidationCtxt, _pDoc) == 0;
-
- xmlSchemaFreeValidCtxt(pValidationCtxt);
- xmlSchemaFree(pSchema);
- xmlSchemaFreeParserCtxt(pParserCtxt);
- xmlFreeDoc(pSchemaDoc);
-
- return isDocValid;
-#else
- return true;
-#endif
-}
-
-bool CXmlParser::open()
-{
- // Parse the file and get the DOM
- _pDoc = xmlReadFile(_strXmlInstanceFile.c_str(), NULL, 0);
-
- if (!_pDoc) {
-
- _serializingContext.setError("Could not parse file " + _strXmlInstanceFile);
-
- return false;
- }
- // Validate
- if (!isInstanceDocumentValid()) {
-
- _serializingContext.setError("Document " + _strXmlInstanceFile + " is not valid");
-
- // Free XML doc
- xmlFreeDoc(_pDoc);
-
- _pDoc = NULL;
-
- return false;
- }
-
- // Get the root element node
- _pRootNode = xmlDocGetRootElement(_pDoc);
-
- // Check Root element type
- if (getRootElementName() != _strRootElementType) {
-
- _serializingContext.setError("Error: Wrong XML structure file " + _strXmlInstanceFile);
- _serializingContext.appendLineToError("Root Element " + getRootElementName() + " mismatches expected type " + _strRootElementType);
-
- return false;
- }
-
- return base::open();
-}
-
-bool CXmlParser::parse(IXmlSink* pXmlSink)
-{
- // Parse document
- CXmlElement topMostElement(_pRootNode);
-
- return pXmlSink->fromXml(topMostElement, _serializingContext);
-}
-