diff --git a/CHANGELOG.md b/CHANGELOG.md index f10731fe..e9edfa55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,10 @@ * Added cli returna value also for single commands (eg -1) * Fixed JSON unbalanced braces resulting in assert. +### Known issues +* Namespace name relabeling is not supported. + * Eg: if "des" is defined as prefix for an imported module, then a relabeling using xmlfns is not supported, such as: x:des3 + ## 3.6.1 (29 May 2018) ### Corrected Bugs diff --git a/example/example_cli.cli b/example/example_cli.cli index 657f884b..8853aed2 100644 --- a/example/example_cli.cli +++ b/example/example_cli.cli @@ -6,8 +6,6 @@ CLICON_PLUGIN="example_cli"; # Translate variable "value" by incrementing its characters translate value (),cli_set("/translate/value"); - - # Note, when switching to PT, change datamodel to only @datamodel set @datamodel:example, cli_set(); merge @datamodel:example, cli_merge(); @@ -41,11 +39,18 @@ show("Show a particular state of the system"){ text("Show comparison in text"), compare_dbs((int32)1); } configuration("Show configuration"), cli_show_config("candidate", "text", "/");{ - xml("Show configuration as XML"), cli_show_config("candidate", "xml", "/"); - netconf("Show configuration as netconf edit-config operation"), cli_show_config("candidate", "netconf", "/"); - text("Show configuration as text"), cli_show_config("candidate","text","/"); - cli("Show configuration as cli commands"), cli_show_config("candidate", "cli", "/"); - json("Show configuration as cli commands"), cli_show_config("candidate", "json", "/"); + xml("Show configuration as XML"), cli_show_config("candidate", "xml", "/");{ + @datamodel:example, cli_show_auto("candidate", "text"); + } + netconf("Show configuration as netconf edit-config operation"), cli_show_config("candidate", "netconf", "/");{ + @datamodel:example, cli_show_auto("candidate", "netconf"); + } + text("Show configuration as text"), cli_show_config("candidate","text","/");{ + @datamodel:example, cli_show_auto("candidate", "text"); + } + json("Show configuration as cli commands"), cli_show_config("candidate", "json", "/");{ + @datamodel:example, cli_show_auto("candidate", "json"); + } } } diff --git a/lib/clixon/clixon_xml.h b/lib/clixon/clixon_xml.h index f22d30f2..34b0265a 100644 --- a/lib/clixon/clixon_xml.h +++ b/lib/clixon/clixon_xml.h @@ -80,6 +80,9 @@ typedef int (xml_applyfn_t)(cxobj *x, void *arg); #define XML_FLAG_CHANGE 0x08 /* Node is changed (commits) or child changed rec */ #define XML_FLAG_NONE 0x10 /* Node is added as NONE */ +/* Full xmlns validation check is made only if XML has associated YANG spec */ +#define XMLNS_YANG_ONLY 1 + /* Sort and binary search of XML children * Experimental */ diff --git a/lib/src/clixon_xml.c b/lib/src/clixon_xml.c index edc11643..63be3008 100644 --- a/lib/src/clixon_xml.c +++ b/lib/src/clixon_xml.c @@ -253,9 +253,12 @@ xml_namespace_check(cxobj *xn, return 0; xn = xp; } +#ifdef XMLNS_YANG_ONLY if (ys == NULL) return 0; /* If no yang spec */ - else{ + else +#endif + { /* Check if my namespace */ if ((n = yang_find_myprefix(ys)) != NULL && strcmp(nsn,n)==0) return 0;