From 63142d25ce94555e041dc9c9faa760f96356deaa Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Thu, 28 Mar 2024 16:57:21 +0900 Subject: [PATCH] Fix validating resource schema Load schema directly from a file because there is an unknown problem that cannot load schema from memory. Change-Id: Ief4d14db71aadf865951e2f1e486fe782b207f3c Signed-off-by: Sangyoon Jang --- packaging/aul.spec | 1 + src/rsc-mgr/CMakeLists.txt | 1 + src/rsc-mgr/aul_rsc_mgr_internal.c | 4 ++-- src/rsc-mgr/aul_rsc_mgr_schema.h | 37 ------------------------------------- src/rsc-mgr/res.xsd | 31 +++++++++++++++++++++++++++++++ 5 files changed, 35 insertions(+), 39 deletions(-) delete mode 100644 src/rsc-mgr/aul_rsc_mgr_schema.h create mode 100644 src/rsc-mgr/res.xsd diff --git a/packaging/aul.spec b/packaging/aul.spec index df8e22b..000b93e 100644 --- a/packaging/aul.spec +++ b/packaging/aul.spec @@ -338,6 +338,7 @@ chsmack -a 'User::Home' %{TZ_SYS_DB}/.component.db-journal %files rsc-mgr %manifest %{name}-rsc-mgr.manifest %attr(0644,root,root) %{_libdir}/libaul-rsc-mgr.so.* +%{_datadir}/aul/res.xsd %files rsc-mgr-devel %{_includedir}/aul/rsc-mgr/*.h diff --git a/src/rsc-mgr/CMakeLists.txt b/src/rsc-mgr/CMakeLists.txt index a2a38ef..54463ec 100644 --- a/src/rsc-mgr/CMakeLists.txt +++ b/src/rsc-mgr/CMakeLists.txt @@ -30,6 +30,7 @@ INSTALL(TARGETS ${TARGET_AUL_RSC_MGR} DESTINATION ${LIB_INSTALL_DIR} CONFIGURE_FILE(${TARGET_AUL_RSC_MGR}.pc.in ${TARGET_AUL_RSC_MGR}.pc @ONLY) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${TARGET_AUL_RSC_MGR}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) +INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res.xsd DESTINATION ${SHARE_INSTALL_PREFIX}/aul/) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION include/aul/rsc-mgr diff --git a/src/rsc-mgr/aul_rsc_mgr_internal.c b/src/rsc-mgr/aul_rsc_mgr_internal.c index 96f6fdd..37b2745 100644 --- a/src/rsc-mgr/aul_rsc_mgr_internal.c +++ b/src/rsc-mgr/aul_rsc_mgr_internal.c @@ -26,7 +26,6 @@ #include #include "aul_rsc_mgr_internal.h" -#include "aul_rsc_mgr_schema.h" static char *__get_attribute(xmlNode *xml_node, const char *name) { @@ -182,6 +181,7 @@ static int __parse_resource(xmlNode *xml_node, resource_data_t **data) return 0; } +#define SCHEMA_FILE SHARE_PREFIX"/res.xsd" static int __validate_schema(const char *path) { xmlSchemaParserCtxt *parser_ctxt; @@ -189,7 +189,7 @@ static int __validate_schema(const char *path) xmlSchemaValidCtxt *valid_ctxt; int ret; - parser_ctxt = xmlSchemaNewMemParserCtxt(res_schema, sizeof(res_schema)); + parser_ctxt = xmlSchemaNewParserCtxt(SCHEMA_FILE); if (parser_ctxt == NULL) { LOGE("failed to create parser context"); return -1; diff --git a/src/rsc-mgr/aul_rsc_mgr_schema.h b/src/rsc-mgr/aul_rsc_mgr_schema.h deleted file mode 100644 index 5bae1ea..0000000 --- a/src/rsc-mgr/aul_rsc_mgr_schema.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef __AUL_RSC_MGR_SCHEMA_H__ -#define __AUL_RSC_MGR_SCHEMA_H__ - -static const char res_schema[] = -"" -"" -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -" " -""; - -#endif diff --git a/src/rsc-mgr/res.xsd b/src/rsc-mgr/res.xsd new file mode 100644 index 0000000..ea85907 --- /dev/null +++ b/src/rsc-mgr/res.xsd @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- 2.7.4