libyang 1.0.184
YANG data modeling language library
Loading...
Searching...
No Matches
tree_data.h
Go to the documentation of this file.
1
15#ifndef LY_TREE_DATA_H_
16#define LY_TREE_DATA_H_
17
18#include <stddef.h>
19#include <stdint.h>
20
21#include "libyang.h"
22#include "tree_schema.h"
23#include "xml.h"
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
40typedef enum {
46
50typedef enum {
54 LYD_ANYDATA_STRING = 0x01,
59 LYD_ANYDATA_JSON = 0x02,
63 LYD_ANYDATA_JSOND = 0x03,
67 LYD_ANYDATA_SXML = 0x04,
70 LYD_ANYDATA_SXMLD = 0x05,
74 LYD_ANYDATA_XML = 0x08,
82 LYD_ANYDATA_LYB = 0x20,
85 LYD_ANYDATA_LYBD = 0x21,
90
94typedef union lyd_value_u {
95 const char *binary;
96 struct lys_type_bit **bit;
98 int8_t bln;
99 int64_t dec64;
101 struct lys_ident *ident;
105 int8_t int8;
106 int16_t int16;
107 int32_t int32;
108 int64_t int64;
110 const char *string;
111 uint8_t uint8;
112 uint16_t uint16;
113 uint32_t uint32;
114 uint64_t uint64;
115 void *ptr;
117
128struct lyd_attr {
129 struct lyd_node *parent;
130 struct lyd_attr *next;
132 const char *name;
133 const char *value_str;
136 uint8_t value_flags;
137};
138
147#define LYD_VAL_OK 0x00
148#define LYD_VAL_DUP 0x01
150#define LYD_VAL_UNIQUE 0x02
151#define LYD_VAL_MAND 0x04
157#define LYD_VAL_INUSE 0x80
176struct lyd_node {
177 struct lys_node *schema;
178 uint8_t validity;
179 uint8_t dflt:1;
180 uint8_t when_status:3;
183 struct lyd_attr *attr;
184 struct lyd_node *next;
185 struct lyd_node *prev;
189 struct lyd_node *parent;
191#ifdef LY_ENABLED_LYD_PRIV
192 void *priv;
193#endif
194
195#ifdef LY_ENABLED_CACHE
196 uint32_t hash;
197 struct hash_table *ht;
198#endif
199
200 struct lyd_node *child;
205};
206
218 struct lys_node *schema;
220 uint8_t validity;
221 uint8_t dflt:1;
222 uint8_t when_status:3;
225 struct lyd_attr *attr;
226 struct lyd_node *next;
227 struct lyd_node *prev;
231 struct lyd_node *parent;
233#ifdef LY_ENABLED_LYD_PRIV
234 void *priv;
235#endif
236
237#ifdef LY_ENABLED_CACHE
238 uint32_t hash;
239#endif
240
241 /* struct lyd_node *child; should be here, but is not */
242
243 /* leaflist's specific members */
244 const char *value_str;
247 uint8_t value_flags;
248};
249
253#define LY_VALUE_UNRES 0x01
256#define LY_VALUE_USER 0x02
257/* 0x80 is reserved for internal use */
258
262typedef union {
263 const char *str;
264 char *mem;
265 struct lyxml_elem *xml;
266 struct lyd_node *tree;
269
279 struct lys_node *schema;
281 uint8_t validity;
282 uint8_t dflt:1;
283 uint8_t when_status:3;
286 struct lyd_attr *attr;
287 struct lyd_node *next;
288 struct lyd_node *prev;
292 struct lyd_node *parent;
294#ifdef LY_ENABLED_LYD_PRIV
295 void *priv;
296#endif
297
298#ifdef LY_ENABLED_CACHE
299 uint32_t hash;
300#endif
301
302 /* struct lyd_node *child; should be here, but is not */
303
304 /* anyxml's specific members */
307};
308
312typedef enum {
351
357 struct lyd_node **first;
359 struct lyd_node **second;
361};
362
368void lyd_free_diff(struct lyd_difflist *diff);
369
415struct lyd_difflist *lyd_diff(struct lyd_node *first, struct lyd_node *second, int options);
416
423/* LYD_DIFFOPT_NOSIBLINGS value is the same as LYD_OPT_NOSIBLINGS due to backward compatibility. The LYD_OPT_NOSIBLINGS
424 * was used previously as an option for lyd_diff(). */
425#define LYD_DIFFOPT_NOSIBLINGS 0x0800
427#define LYD_DIFFOPT_WITHDEFAULTS 0x0001
445char *lyd_path(const struct lyd_node *node);
446
478#define LYD_OPT_DATA 0x00
481#define LYD_OPT_CONFIG 0x01
484#define LYD_OPT_GET 0x02
490#define LYD_OPT_GETCONFIG 0x04
497#define LYD_OPT_EDIT 0x08
503#define LYD_OPT_RPC 0x10
506#define LYD_OPT_RPCREPLY 0x20
507#define LYD_OPT_NOTIF 0x40
510#define LYD_OPT_NOTIF_FILTER 0x80
513#define LYD_OPT_TYPEMASK 0x10000ff
516/* 0x100 reserved, used internally */
517#define LYD_OPT_STRICT 0x0200
518#define LYD_OPT_DESTRUCT 0x0400
521#define LYD_OPT_OBSOLETE 0x0800
522#define LYD_OPT_NOSIBLINGS 0x1000
524#define LYD_OPT_TRUSTED 0x2000
528#define LYD_OPT_WHENAUTODEL 0x4000
531#define LYD_OPT_NOEXTDEPS 0x8000
533#define LYD_OPT_DATA_NO_YANGLIB 0x10000
534#define LYD_OPT_DATA_ADD_YANGLIB 0x20000
537#define LYD_OPT_VAL_DIFF 0x40000
539#define LYD_OPT_LYB_MOD_UPDATE 0x80000
540#define LYD_OPT_DATA_TEMPLATE 0x1000000
580struct lyd_node *lyd_parse_mem(struct ly_ctx *ctx, const char *data, LYD_FORMAT format, int options, ...);
581
620struct lyd_node *lyd_parse_fd(struct ly_ctx *ctx, int fd, LYD_FORMAT format, int options, ...);
621
658struct lyd_node *lyd_parse_path(struct ly_ctx *ctx, const char *path, LYD_FORMAT format, int options, ...);
659
706struct lyd_node *lyd_parse_xml(struct ly_ctx *ctx, struct lyxml_elem **root, int options,...);
707
719struct lyd_node *lyd_new(struct lyd_node *parent, const struct lys_module *module, const char *name);
720
734struct lyd_node *lyd_new_leaf(struct lyd_node *parent, const struct lys_module *module, const char *name,
735 const char *val_str);
736
752int lyd_change_leaf(struct lyd_node_leaf_list *leaf, const char *val_str);
753
770struct lyd_node *lyd_new_anydata(struct lyd_node *parent, const struct lys_module *module, const char *name,
771 void *value, LYD_ANYDATA_VALUETYPE value_type);
772
784struct lyd_node *lyd_new_output(struct lyd_node *parent, const struct lys_module *module, const char *name);
785
799struct lyd_node *lyd_new_output_leaf(struct lyd_node *parent, const struct lys_module *module, const char *name,
800 const char *val_str);
801
819struct lyd_node *lyd_new_output_anydata(struct lyd_node *parent, const struct lys_module *module, const char *name,
820 void *value, LYD_ANYDATA_VALUETYPE value_type);
821
832struct lyd_node *lyd_new_yangdata(const struct lys_module *module, const char *name_template, const char *name);
833
847#define LYD_PATH_OPT_UPDATE 0x01
850#define LYD_PATH_OPT_NOPARENT 0x02
852#define LYD_PATH_OPT_OUTPUT 0x04
853#define LYD_PATH_OPT_DFLT 0x08
858#define LYD_PATH_OPT_NOPARENTRET 0x10
860#define LYD_PATH_OPT_EDIT 0x20
893struct lyd_node *lyd_new_path(struct lyd_node *data_tree, const struct ly_ctx *ctx, const char *path, void *value,
894 LYD_ANYDATA_VALUETYPE value_type, int options);
895
903unsigned int lyd_list_pos(const struct lyd_node *node);
904
917#define LYD_DUP_OPT_RECURSIVE 0x01
918#define LYD_DUP_OPT_NO_ATTR 0x02
919#define LYD_DUP_OPT_WITH_PARENTS 0x04
921#define LYD_DUP_OPT_WITH_KEYS 0x08
923#define LYD_DUP_OPT_WITH_WHEN 0x10
941struct lyd_node *lyd_dup(const struct lyd_node *node, int options);
942
953struct lyd_node *lyd_dup_withsiblings(const struct lyd_node *node, int options);
954
967struct lyd_node *lyd_dup_to_ctx(const struct lyd_node *node, int options, struct ly_ctx *ctx);
968
994int lyd_merge(struct lyd_node *target, const struct lyd_node *source, int options);
995
1016int lyd_merge_to_ctx(struct lyd_node **trg, const struct lyd_node *src, int options, struct ly_ctx *ctx);
1017
1018#define LYD_OPT_EXPLICIT 0x0100
1019
1048int lyd_insert(struct lyd_node *parent, struct lyd_node *node);
1049
1079int lyd_insert_sibling(struct lyd_node **sibling, struct lyd_node *node);
1080
1098int lyd_insert_before(struct lyd_node *sibling, struct lyd_node *node);
1099
1118int lyd_insert_after(struct lyd_node *sibling, struct lyd_node *node);
1119
1132int lyd_schema_sort(struct lyd_node *sibling, int recursive);
1133
1144struct ly_set *lyd_find_path(const struct lyd_node *ctx_node, const char *path);
1145
1156struct ly_set *lyd_find_instance(const struct lyd_node *data, const struct lys_node *schema);
1157
1168int lyd_find_sibling(const struct lyd_node *siblings, const struct lyd_node *target, struct lyd_node **match);
1169
1181int lyd_find_sibling_set(const struct lyd_node *siblings, const struct lyd_node *target, struct ly_set **set);
1182
1206int lyd_find_sibling_val(const struct lyd_node *siblings, const struct lys_node *schema, const char *key_or_value,
1207 struct lyd_node **match);
1208
1216
1250int lyd_validate(struct lyd_node **node, int options, void *var_arg, ...);
1251
1274int lyd_validate_modules(struct lyd_node **node, const struct lys_module **modules, int mod_count, int options, ...);
1275
1282
1297int lyd_validate_value(struct lys_node *node, const char *value);
1298
1315int lyd_value_type(struct lys_node *node, const char *value, struct lys_type **type);
1316
1325
1333int lyd_node_should_print(const struct lyd_node *node, int options);
1334
1347int lyd_unlink(struct lyd_node *node);
1348
1357void lyd_free(struct lyd_node *node);
1358
1370
1387struct lyd_attr *lyd_insert_attr(struct lyd_node *parent, const struct lys_module *mod, const char *name,
1388 const char *value);
1389
1402void lyd_free_attr(struct ly_ctx *ctx, struct lyd_node *parent, struct lyd_attr *attr, int recursive);
1403
1413struct lys_module *lyd_node_module(const struct lyd_node *node);
1414
1424const struct lys_type *lyd_leaf_type(const struct lyd_node_leaf_list *leaf);
1425
1436int lyd_print_mem(char **strp, const struct lyd_node *root, LYD_FORMAT format, int options);
1437
1448int lyd_print_fd(int fd, const struct lyd_node *root, LYD_FORMAT format, int options);
1449
1460int lyd_print_file(FILE *f, const struct lyd_node *root, LYD_FORMAT format, int options);
1461
1472int lyd_print_path(const char *path, const struct lyd_node *root, LYD_FORMAT format, int options);
1473
1485int lyd_print_clb(ssize_t (*writeclb)(void *arg, const void *buf, size_t count), void *arg,
1486 const struct lyd_node *root, LYD_FORMAT format, int options);
1487
1497double lyd_dec64_to_double(const struct lyd_node *node);
1498
1505int lyd_lyb_data_length(const char *data);
1506
1507#ifdef LY_ENABLED_LYD_PRIV
1508
1518void *lyd_set_private(const struct lyd_node *node, void *priv);
1519
1520#endif
1521
1524#ifdef __cplusplus
1525}
1526#endif
1527
1528#endif /* LY_TREE_DATA_H_ */
libyang context handler.
lyd_val value
Definition: tree_data.h:134
struct lyd_node * prev
Definition: tree_data.h:185
const char * value_str
Definition: tree_data.h:133
uint8_t when_status
Definition: tree_data.h:180
struct lys_ident * ident
Definition: tree_data.h:101
uint8_t value_flags
Definition: tree_data.h:136
struct lys_node * schema
Definition: tree_data.h:177
uint8_t uint8
Definition: tree_data.h:111
int64_t int64
Definition: tree_data.h:108
int32_t int32
Definition: tree_data.h:107
uint32_t uint32
Definition: tree_data.h:113
struct lyd_node * child
Definition: tree_data.h:200
LYD_ANYDATA_VALUETYPE value_type
Definition: tree_data.h:305
uint8_t validity
Definition: tree_data.h:178
uint64_t uint64
Definition: tree_data.h:114
struct lyd_node * leafref
Definition: tree_data.h:109
int8_t bln
Definition: tree_data.h:98
int64_t dec64
Definition: tree_data.h:99
struct lyd_attr * attr
Definition: tree_data.h:183
struct lyd_node * tree
Definition: tree_data.h:266
int16_t int16
Definition: tree_data.h:106
struct lyd_node * instance
Definition: tree_data.h:102
struct lys_ext_instance_complex * annotation
Definition: tree_data.h:131
struct lyd_node ** first
Definition: tree_data.h:357
const char * name
Definition: tree_data.h:132
uint8_t dflt
Definition: tree_data.h:179
const char * binary
Definition: tree_data.h:95
LY_DATA_TYPE _PACKED value_type
Definition: tree_data.h:135
struct lys_type_bit ** bit
Definition: tree_data.h:96
lyd_anydata_value value
Definition: tree_data.h:306
struct lyd_node * next
Definition: tree_data.h:184
struct lyd_node * parent
Definition: tree_data.h:129
void * ptr
Definition: tree_data.h:115
int8_t int8
Definition: tree_data.h:105
const char * string
Definition: tree_data.h:110
struct lys_type_enum * enm
Definition: tree_data.h:100
struct lyd_node ** second
Definition: tree_data.h:359
uint16_t uint16
Definition: tree_data.h:112
const char * str
Definition: tree_data.h:263
LYD_DIFFTYPE * type
Definition: tree_data.h:356
struct lyd_attr * next
Definition: tree_data.h:130
struct lyxml_elem * xml
Definition: tree_data.h:265
char * lyd_path(const struct lyd_node *node)
Build data path (usable as path, see XPath Addressing) of the data node.
int lyd_merge_to_ctx(struct lyd_node **trg, const struct lyd_node *src, int options, struct ly_ctx *ctx)
Same as lyd_merge(), but moves the resulting data into the specified context.
struct ly_set * lyd_find_path(const struct lyd_node *ctx_node, const char *path)
Search in the given data for instances of nodes matching the provided path.
struct lyd_node * lyd_dup(const struct lyd_node *node, int options)
Create a copy of the specified data tree node. Schema references are kept the same....
int lyd_print_path(const char *path, const struct lyd_node *root, LYD_FORMAT format, int options)
Print data tree in the specified format.
union lyd_value_u lyd_val
node's value representation
struct lyd_node * lyd_new(struct lyd_node *parent, const struct lys_module *module, const char *name)
Create a new container node in a data tree.
struct lyd_node * lyd_new_path(struct lyd_node *data_tree, const struct ly_ctx *ctx, const char *path, void *value, LYD_ANYDATA_VALUETYPE value_type, int options)
Create a new data node based on a simple XPath.
void lyd_free(struct lyd_node *node)
Free (and unlink) the specified data subtree. Use carefully, since libyang silently creates default n...
struct lyd_node * lyd_parse_path(struct ly_ctx *ctx, const char *path, LYD_FORMAT format, int options,...)
Read (and validate) data from the given file path.
int lyd_value_type(struct lys_node *node, const char *value, struct lys_type **type)
Check restrictions applicable to the particular leaf/leaf-list on the given string value and optional...
int lyd_node_should_print(const struct lyd_node *node, int options)
Learn if a node is supposed to be printed based on the options.
struct lyd_node * lyd_new_output_anydata(struct lyd_node *parent, const struct lys_module *module, const char *name, void *value, LYD_ANYDATA_VALUETYPE value_type)
Create a new anydata or anyxml node in a data tree. Ignore RPC/action input nodes and instead use RPC...
int lyd_insert_sibling(struct lyd_node **sibling, struct lyd_node *node)
Insert the node element as a last sibling of the specified sibling element.
LYD_DIFFTYPE
list of possible types of differences in lyd_difflist
Definition: tree_data.h:312
int lyd_insert_before(struct lyd_node *sibling, struct lyd_node *node)
Insert the node element after the sibling element. If node and siblings are already siblings (just mo...
struct lyd_node * lyd_new_output_leaf(struct lyd_node *parent, const struct lys_module *module, const char *name, const char *val_str)
Create a new leaf or leaflist node in a data tree with a string value that is converted to the actual...
struct lyd_attr * lyd_insert_attr(struct lyd_node *parent, const struct lys_module *mod, const char *name, const char *value)
Insert attribute into the data node.
int lyd_validate_value(struct lys_node *node, const char *value)
Check restrictions applicable to the particular leaf/leaf-list on the given string value.
int lyd_lyb_data_length(const char *data)
Get the length of a printed LYB data tree.
struct lyd_difflist * lyd_diff(struct lyd_node *first, struct lyd_node *second, int options)
Compare two data trees and provide list of differences.
int lyd_schema_sort(struct lyd_node *sibling, int recursive)
Order siblings according to the schema node ordering.
struct lyd_node * lyd_parse_xml(struct ly_ctx *ctx, struct lyxml_elem **root, int options,...)
Parse (and validate) XML tree.
int lyd_print_mem(char **strp, const struct lyd_node *root, LYD_FORMAT format, int options)
Print data tree in the specified format.
int lyd_change_leaf(struct lyd_node_leaf_list *leaf, const char *val_str)
Change value of a leaf node.
int lyd_print_fd(int fd, const struct lyd_node *root, LYD_FORMAT format, int options)
Print data tree in the specified format.
struct lyd_node * lyd_parse_fd(struct ly_ctx *ctx, int fd, LYD_FORMAT format, int options,...)
Read (and validate) data from the given file descriptor.
LYD_ANYDATA_VALUETYPE
List of possible value types stored in lyd_node_anydata.
Definition: tree_data.h:50
int lyd_print_clb(ssize_t(*writeclb)(void *arg, const void *buf, size_t count), void *arg, const struct lyd_node *root, LYD_FORMAT format, int options)
Print data tree in the specified format.
struct ly_set * lyd_find_instance(const struct lyd_node *data, const struct lys_node *schema)
Search in the given data for instances of the provided schema node.
int lyd_unlink(struct lyd_node *node)
Unlink the specified data subtree. All referenced namespaces are copied.
struct lyd_node * lyd_new_yangdata(const struct lys_module *module, const char *name_template, const char *name)
Create a new yang-data template in a data tree. It creates container, which name is in third paramete...
struct lyd_node * lyd_first_sibling(struct lyd_node *node)
Get the first sibling of the given node.
struct lyd_node * lyd_new_anydata(struct lyd_node *parent, const struct lys_module *module, const char *name, void *value, LYD_ANYDATA_VALUETYPE value_type)
Create a new anydata or anyxml node in a data tree.
int lyd_validate(struct lyd_node **node, int options, void *var_arg,...)
Validate node data subtree.
LYD_FORMAT
Data input/output formats supported by libyang parser and printer functions.
Definition: tree_data.h:40
double lyd_dec64_to_double(const struct lyd_node *node)
Get the double value of a decimal64 leaf/leaf-list.
int lyd_find_sibling(const struct lyd_node *siblings, const struct lyd_node *target, struct lyd_node **match)
Search in the given siblings for the target instance. If cache is enabled and the siblings are NOT to...
struct lyd_node * lyd_parse_mem(struct ly_ctx *ctx, const char *data, LYD_FORMAT format, int options,...)
Parse (and validate) data from memory.
const struct lys_type * lyd_leaf_type(const struct lyd_node_leaf_list *leaf)
Get the type structure of a leaf.
unsigned int lyd_list_pos(const struct lyd_node *node)
Learn the relative instance position of a list or leaf-list within other instances of the same schema...
int lyd_insert(struct lyd_node *parent, struct lyd_node *node)
Insert the node element as child to the parent element. The node is inserted as a last child of the p...
struct lyd_node * lyd_new_leaf(struct lyd_node *parent, const struct lys_module *module, const char *name, const char *val_str)
Create a new leaf or leaflist node in a data tree with a string value that is converted to the actual...
int lyd_validate_modules(struct lyd_node **node, const struct lys_module **modules, int mod_count, int options,...)
Validate node data tree but only subtrees that belong to the schema found in modules....
struct lys_module * lyd_node_module(const struct lyd_node *node)
Return main module of the data tree node.
void lyd_free_diff(struct lyd_difflist *diff)
Free the result of lyd_diff(). It frees the structure of the lyd_diff() result, not the referenced no...
int lyd_insert_after(struct lyd_node *sibling, struct lyd_node *node)
Insert the node element after the sibling element. If node and siblings are already siblings (just mo...
int lyd_merge(struct lyd_node *target, const struct lyd_node *source, int options)
Merge a (sub)tree into a data tree.
struct lyd_node * lyd_dup_withsiblings(const struct lyd_node *node, int options)
Create a copy of the specified data tree and all its siblings (preceding as well as following)....
struct lyd_node * lyd_dup_to_ctx(const struct lyd_node *node, int options, struct ly_ctx *ctx)
Create a copy of the specified data tree node in the different context. All the schema references and...
int lyd_print_file(FILE *f, const struct lyd_node *root, LYD_FORMAT format, int options)
Print data tree in the specified format.
void lyd_free_attr(struct ly_ctx *ctx, struct lyd_node *parent, struct lyd_attr *attr, int recursive)
Destroy data attribute.
int lyd_find_sibling_val(const struct lyd_node *siblings, const struct lys_node *schema, const char *key_or_value, struct lyd_node **match)
Search in the given siblings for the schema instance. If cache is enabled and the siblings are NOT to...
int lyd_find_sibling_set(const struct lyd_node *siblings, const struct lyd_node *target, struct ly_set **set)
Search in the given siblings for all target instances. If cache is enabled and the siblings are NOT t...
void lyd_free_val_diff(struct lyd_difflist *diff)
Free special diff that was returned by lyd_validate() or lyd_validate_modules().
struct lyd_node * lyd_new_output(struct lyd_node *parent, const struct lys_module *module, const char *name)
Create a new container node in a data tree. Ignore RPC/action input nodes and instead use RPC/action ...
int lyd_wd_default(struct lyd_node_leaf_list *node)
Get know if the node contain (despite implicit or explicit) default value.
void lyd_free_withsiblings(struct lyd_node *node)
Free (and unlink) the specified data tree and all its siblings (preceding as well as following).
@ LYD_DIFF_MOVEDAFTER2
Definition: tree_data.h:340
@ LYD_DIFF_CHANGED
Definition: tree_data.h:322
@ LYD_DIFF_CREATED
Definition: tree_data.h:331
@ LYD_DIFF_END
Definition: tree_data.h:313
@ LYD_DIFF_DELETED
Definition: tree_data.h:314
@ LYD_DIFF_MOVEDAFTER1
Definition: tree_data.h:324
@ LYD_ANYDATA_DATATREE
Definition: tree_data.h:78
@ LYD_ANYDATA_SXML
Definition: tree_data.h:67
@ LYD_ANYDATA_JSON
Definition: tree_data.h:59
@ LYD_ANYDATA_JSOND
Definition: tree_data.h:63
@ LYD_ANYDATA_XML
Definition: tree_data.h:74
@ LYD_ANYDATA_LYB
Definition: tree_data.h:82
@ LYD_ANYDATA_SXMLD
Definition: tree_data.h:70
@ LYD_ANYDATA_CONSTSTRING
Definition: tree_data.h:51
@ LYD_ANYDATA_LYBD
Definition: tree_data.h:85
@ LYD_ANYDATA_STRING
Definition: tree_data.h:54
@ LYD_LYB
Definition: tree_data.h:44
@ LYD_XML
Definition: tree_data.h:42
@ LYD_UNKNOWN
Definition: tree_data.h:41
@ LYD_JSON
Definition: tree_data.h:43
Attribute structure.
Definition: tree_data.h:128
Structure for the result of lyd_diff(), describing differences between two data trees.
Definition: tree_data.h:355
Generic structure for a data node, directly applicable to the data nodes defined as LYS_CONTAINER,...
Definition: tree_data.h:176
Structure for data nodes defined as LYS_ANYDATA or LYS_ANYXML.
Definition: tree_data.h:278
Structure for data nodes defined as LYS_LEAF or LYS_LEAFLIST.
Definition: tree_data.h:217
Anydata value union.
Definition: tree_data.h:262
node's value representation
Definition: tree_data.h:94
Complex extension instance structure.
Definition: tree_schema.h:498
union ly_set_set set
Definition: libyang.h:1711
Structure to hold a set of (not necessary somehow connected) lyd_node or lys_node objects....
Definition: libyang.h:1708
LY_DATA_TYPE
YANG built-in types.
Definition: tree_schema.h:784
Structure to hold information about identity, see RFC 6020 sec. 7.16
Definition: tree_schema.h:2080
Main schema node structure representing YANG module.
Definition: tree_schema.h:666
Common structure representing single YANG data statement describing.
Definition: tree_schema.h:1209
YANG type structure providing information from the schema.
Definition: tree_schema.h:973
Single bit value specification for lys_type_info_bits.
Definition: tree_schema.h:820
Single enumeration value specification for lys_type_info_enums.
Definition: tree_schema.h:860
Structure describing an element in an XML tree.
Definition: xml.h:92
The main libyang public header.
#define _PACKED
Compiler flag for packed data types.
Definition: libyang.h:38
libyang representation of data model trees.
Public API of libyang XML parser.