Rework aggregate javadocs
[yangtools.git] / docs / src / main / asciidoc / yang-1-1.adoc
1 = YANG Tools support for YANG 1.1
2 Tony Tkacik <ttkacik@cisco.com>
3 :toc:
4 :rfc6020: https://tools.ietf.org/html/rfc6020
5 :rfc6020bis: https://tools.ietf.org/html/draft-ietf-netmod-rfc6020bis
6
7 == Introduction
8
9 === Significant changes
10
11 .Summary of Changes from draft
12 -  Changed the YANG version from "1" to "1.1".
13 -  Made the `yang-version` statement mandatory.
14 -  Made noncharacters illegal in the built-in type `string`.
15 -  Defined the legal characters in YANG modules.
16 -  Changed the rules for the interpretation of escaped characters in
17   double quoted strings.  This is an backwards incompatible change
18   from YANG version 1.  A module that uses a character sequence that
19   is now illegal must change the string to match the new rules.
20 -  An unquoted string cannot contain any single or double quote
21   characters.  This is an backwards incompatible change from YANG
22   version 1.
23 -  Extended the `if-feature` syntax to be a boolean expression over
24   feature names.
25 -  Allow `if-feature` in `bit`, `enum`, and `identity`.
26 -  Allow `if-feature` in `refine`.
27 -  Made `when` and `if-feature` illegal on list keys.
28 -  Allow `choice` as a shorthand case statement.
29 -  Added a new substatement `modifier` to pattern.
30 -  Allow `must` in `input`, `output`, and `notification`.
31 -  Allow `require-instance` in leafref.
32 -  Allow `augment` to add conditionally mandatory nodes.
33 -  Added a set of new XPath functions.
34 -  Clarified the XPath context's tree.
35 -  Defined the string value of an identityref in XPath expressions.
36 -  Clarified what unprefixed names mean in leafrefs in typedefs.
37 -  Allow identities to be derived from multiple base identities.
38 -  Allow enumerations and bits to be subtyped.
39 -  Allow leaf-lists to have default values.
40 -  Allow non-unique values in non-configuration leaf-lists.
41 -  Use [RFC7405] syntax for case-sensitive strings in the grammar.
42 -  Changed the module advertisement mechanism.
43 -  Changed the scoping rules for definitions in submodules.  A
44    submodule can now reference all definitions in all submodules that
45    belong to the same module, without using the `include` statement.
46 -  Added a new statement `action` that is used to define operations
47    tied to data nodes.
48 -  Allow notifications to be tied to data nodes.
49 -  Added a new data definition statement `anydata`.
50 -  Allow types `empty` and `leafref` in unions.
51 -  Allow type `empty` in a `key`.