libyang 1.0.184
YANG data modeling language library
Loading...
Searching...
No Matches
tree_data.h
Go to the documentation of this file.
1
14
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
35
46
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
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
162
176struct lyd_node {
177 struct lys_node *schema;
178 uint8_t validity;
179 uint8_t dflt:1;
180 uint8_t when_status:3;
182
183 struct lyd_attr *attr;
184 struct lyd_node *next;
185 struct lyd_node *prev;
189 struct lyd_node *parent;
190
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;
224
225 struct lyd_attr *attr;
226 struct lyd_node *next;
227 struct lyd_node *prev;
231 struct lyd_node *parent;
232
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;
285
286 struct lyd_attr *attr;
287 struct lyd_node *next;
288 struct lyd_node *prev;
292 struct lyd_node *parent;
293
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
351
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
437
445char *lyd_path(const struct lyd_node *node);
446
477
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
515
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
541
543
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
846
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
862
864
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
916
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
927
929
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
1523
1524#ifdef __cplusplus
1525}
1526#endif
1527
1528#endif /* LY_TREE_DATA_H_ */
libyang context handler.
struct lyd_node * prev
Definition tree_data.h:185
uint32_t hash
Definition tree_data.h:196
uint8_t when_status
Definition tree_data.h:180
struct lys_ident * ident
Definition tree_data.h:101
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 lyd_node ** first
Definition tree_data.h:357
void * priv
Definition tree_data.h:192
uint8_t dflt
Definition tree_data.h:179
const char * binary
Definition tree_data.h:95
struct lys_type_bit ** bit
Definition tree_data.h:96
lyd_anydata_value value
Definition tree_data.h:306
struct hash_table * ht
Definition tree_data.h:197
struct lyd_node * next
Definition tree_data.h:184
struct lyd_node * parent
Definition tree_data.h:189
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 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....
void * lyd_set_private(const struct lyd_node *node, void *priv)
Set a schema private pointer to a user pointer.
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
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
Anydata value union.
Definition tree_data.h:262
node's value representation
Definition tree_data.h:94
Complex extension instance structure.
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.
Structure to hold information about identity, see RFC 6020 sec. 7.16.
Main schema node structure representing YANG module.
Common structure representing single YANG data statement describing.
YANG type structure providing information from the schema.
Single bit value specification for lys_type_info_bits.
Single enumeration value specification for lys_type_info_enums.
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
Attribute structure.
Definition tree_data.h:128
lyd_val value
Definition tree_data.h:134
const char * value_str
Definition tree_data.h:133
uint8_t value_flags
Definition tree_data.h:136
struct lys_ext_instance_complex * annotation
Definition tree_data.h:131
const char * name
Definition tree_data.h:132
struct lyd_node * parent
Definition tree_data.h:129
struct lyd_attr * next
Definition tree_data.h:130
Structure for data nodes defined as LYS_LEAF or LYS_LEAFLIST.
Definition tree_data.h:217
struct lyd_node * prev
Definition tree_data.h:227
const char * value_str
Definition tree_data.h:244
struct lys_node * schema
Definition tree_data.h:218
struct lyd_attr * attr
Definition tree_data.h:225
struct lyd_node * next
Definition tree_data.h:226
struct lyd_node * parent
Definition tree_data.h:231
libyang representation of data model trees.
Public API of libyang XML parser.