draft-ietf-netmod-yang-json-07.txt | draft-ietf-netmod-yang-json-08.txt | |||
---|---|---|---|---|
NETMOD Working Group L. Lhotka | NETMOD Working Group L. Lhotka | |||
Internet-Draft CZ.NIC | Internet-Draft CZ.NIC | |||
Intended status: Standards Track January 28, 2016 | Intended status: Standards Track February 24, 2016 | |||
Expires: July 31, 2016 | Expires: August 27, 2016 | |||
JSON Encoding of Data Modeled with YANG | JSON Encoding of Data Modeled with YANG | |||
draft-ietf-netmod-yang-json-07 | draft-ietf-netmod-yang-json-08 | |||
Abstract | Abstract | |||
This document defines encoding rules for representing configuration, | This document defines encoding rules for representing configuration, | |||
state data, RPC operation or action input and output parameters, and | state data, parameters of RPC operations or actions, and | |||
notifications defined using YANG as JavaScript Object Notation (JSON) | notifications defined using YANG as JavaScript Object Notation (JSON) | |||
text. | text. | |||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on July 31, 2016. | This Internet-Draft will expire on August 27, 2016. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Terminology and Notation . . . . . . . . . . . . . . . . . . 3 | 2. Terminology and Notation . . . . . . . . . . . . . . . . . . 3 | |||
3. Properties of the JSON Encoding . . . . . . . . . . . . . . . 4 | 3. Properties of the JSON Encoding . . . . . . . . . . . . . . . 4 | |||
4. Names and Namespaces . . . . . . . . . . . . . . . . . . . . 4 | 4. Names and Namespaces . . . . . . . . . . . . . . . . . . . . 4 | |||
5. Encoding of YANG Data Node Instances . . . . . . . . . . . . 6 | 5. Encoding of YANG Data Node Instances . . . . . . . . . . . . 6 | |||
5.1. The "leaf" Data Node . . . . . . . . . . . . . . . . . . 7 | 5.1. The "leaf" Data Node . . . . . . . . . . . . . . . . . . 7 | |||
5.2. The "container" Data Node . . . . . . . . . . . . . . . . 7 | 5.2. The "container" Data Node . . . . . . . . . . . . . . . . 7 | |||
5.3. The "leaf-list" Data Node . . . . . . . . . . . . . . . . 7 | 5.3. The "leaf-list" Data Node . . . . . . . . . . . . . . . . 7 | |||
5.4. The "list" Data Node . . . . . . . . . . . . . . . . . . 8 | 5.4. The "list" Data Node . . . . . . . . . . . . . . . . . . 8 | |||
5.5. The "anydata" Data Node . . . . . . . . . . . . . . . . . 9 | 5.5. The "anydata" Data Node . . . . . . . . . . . . . . . . . 9 | |||
5.6. The "anyxml" Data Node . . . . . . . . . . . . . . . . . 10 | 5.6. The "anyxml" Data Node . . . . . . . . . . . . . . . . . 10 | |||
skipping to change at page 2, line 39 | skipping to change at page 2, line 39 | |||
6.10. The "union" Type . . . . . . . . . . . . . . . . . . . . 13 | 6.10. The "union" Type . . . . . . . . . . . . . . . . . . . . 13 | |||
6.11. The "instance-identifier" Type . . . . . . . . . . . . . 14 | 6.11. The "instance-identifier" Type . . . . . . . . . . . . . 14 | |||
7. I-JSON Compliance . . . . . . . . . . . . . . . . . . . . . . 14 | 7. I-JSON Compliance . . . . . . . . . . . . . . . . . . . . . . 14 | |||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 15 | |||
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 15 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 | |||
10.1. Normative References . . . . . . . . . . . . . . . . . . 15 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 15 | |||
10.2. Informative References . . . . . . . . . . . . . . . . . 16 | 10.2. Informative References . . . . . . . . . . . . . . . . . 16 | |||
Appendix A. A Complete Example . . . . . . . . . . . . . . . . . 16 | Appendix A. A Complete Example . . . . . . . . . . . . . . . . . 16 | |||
Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 18 | Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 18 | |||
B.1. Changes Between Revisions -05 and -06 . . . . . . . . . . 18 | B.1. Changes Between Revisions -07 and -08 . . . . . . . . . . 18 | |||
B.2. Changes Between Revisions -05 and -06 . . . . . . . . . . 19 | B.2. Changes Between Revisions -06 and -07 . . . . . . . . . . 19 | |||
B.3. Changes Between Revisions -04 and -05 . . . . . . . . . . 19 | B.3. Changes Between Revisions -05 and -06 . . . . . . . . . . 19 | |||
B.4. Changes Between Revisions -03 and -04 . . . . . . . . . . 19 | B.4. Changes Between Revisions -04 and -05 . . . . . . . . . . 19 | |||
B.5. Changes Between Revisions -02 and -03 . . . . . . . . . . 19 | B.5. Changes Between Revisions -03 and -04 . . . . . . . . . . 19 | |||
B.6. Changes Between Revisions -01 and -02 . . . . . . . . . . 19 | B.6. Changes Between Revisions -02 and -03 . . . . . . . . . . 19 | |||
B.7. Changes Between Revisions -00 and -01 . . . . . . . . . . 19 | B.7. Changes Between Revisions -01 and -02 . . . . . . . . . . 19 | |||
B.8. Changes Between Revisions -00 and -01 . . . . . . . . . . 20 | ||||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 20 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
1. Introduction | 1. Introduction | |||
The NETCONF protocol [RFC6241] uses XML [W3C.REC-xml-20081126] for | The NETCONF protocol [RFC6241] uses XML [W3C.REC-xml-20081126] for | |||
encoding data in its Content Layer. Other management protocols might | encoding data in its Content Layer. Other management protocols might | |||
want to use other encodings while still benefiting from using YANG | want to use other encodings while still benefiting from using YANG | |||
[I-D.ietf-netmod-rfc6020bis] as the data modeling language. | [I-D.ietf-netmod-rfc6020bis] as the data modeling language. | |||
For example, the RESTCONF protocol [I-D.ietf-netconf-restconf] | For example, the RESTCONF protocol [I-D.ietf-netconf-restconf] | |||
supports two encodings: XML (media type "application/yang.data+xml") | supports two encodings: XML (media type "application/yang.data+xml") | |||
and JSON (media type "application/yang.data+json"). | and JSON (media type "application/yang.data+json"). | |||
The specification of YANG 1.1 data modelling language | The specification of YANG 1.1 data modelling language | |||
[I-D.ietf-netmod-rfc6020bis] defines only XML encoding for data | [I-D.ietf-netmod-rfc6020bis] defines only XML encoding of data trees, | |||
instances, i.e., contents of configuration datastores, state data, | i.e., contents of configuration datastores, state data, input/output | |||
RPC operation or action input and output parameters, and event | parameters of RPC operations or actions, and event notifications. | |||
notifications. The aim of this document is to define rules for | The aim of this document is to define rules for encoding the same | |||
encoding the same data as JavaScript Object Notation (JSON) | data as JavaScript Object Notation (JSON) text [RFC7159]. | |||
text [RFC7159]. | ||||
2. Terminology and Notation | 2. Terminology and Notation | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [RFC2119]. | document are to be interpreted as described in [RFC2119]. | |||
The following terms are defined in [I-D.ietf-netmod-rfc6020bis]: | The following terms are defined in [I-D.ietf-netmod-rfc6020bis]: | |||
o action, | o action, | |||
skipping to change at page 4, line 17 | skipping to change at page 4, line 21 | |||
3. Properties of the JSON Encoding | 3. Properties of the JSON Encoding | |||
This document defines JSON encoding for YANG data trees and their | This document defines JSON encoding for YANG data trees and their | |||
subtrees. It is always assumed that the top-level structure in JSON- | subtrees. It is always assumed that the top-level structure in JSON- | |||
encoded data is an object. | encoded data is an object. | |||
Instances of YANG data nodes (leafs, containers, leaf-lists, lists, | Instances of YANG data nodes (leafs, containers, leaf-lists, lists, | |||
anydata and anyxml nodes) are encoded as members of a JSON object, | anydata and anyxml nodes) are encoded as members of a JSON object, | |||
i.e., name/value pairs. Section 4 defines how the name part is | i.e., name/value pairs. Section 4 defines how the name part is | |||
formed, and the following sections deal with the value part. | formed, and the following sections deal with the value part. The | |||
encoding rules are identical for all types of data trees, i.e., | ||||
configuration and state data, parameters of RPC operations and | ||||
actions, and notifications. | ||||
Unlike XML element content, JSON values carry partial type | Unlike XML element content, JSON values carry partial type | |||
information (number, string, boolean). The JSON encoding is defined | information (number, string, boolean). The JSON encoding is defined | |||
so that this information is never in conflict with the data type of | so that this information is never in conflict with the data type of | |||
the corresponding YANG leaf or leaf-list. | the corresponding YANG leaf or leaf-list. | |||
With the exception of anyxml and schema-less anydata nodes, it is | With the exception of anyxml and schema-less anydata nodes, it is | |||
possible to map a JSON-encoded data tree to XML encoding as defined | possible to map a JSON-encoded data tree to XML encoding as defined | |||
in [I-D.ietf-netmod-rfc6020bis], and vice versa. However, such | in [I-D.ietf-netmod-rfc6020bis], and vice versa. However, such | |||
conversions require the YANG data model to be available. | conversions require the YANG data model to be available. | |||
In order to achieve maximum interoperability while allowing | In order to achieve maximum interoperability while allowing | |||
implementations to use a variety of existing JSON parsers, the JSON | implementations to use a variety of existing JSON parsers, the JSON | |||
encoding rules follow, as much as possible, the constraints of the | encoding rules follow, as much as possible, the constraints of the | |||
I-JSON restricted profile [RFC7493]. Section 7 discusses I-JSON | I-JSON restricted profile [RFC7493]. Section 7 discusses I-JSON | |||
conformance in more detail. | conformance in more detail. | |||
4. Names and Namespaces | 4. Names and Namespaces | |||
An object member name MUST be in one of the following forms: | A JSON object member name MUST be in one of the following forms: | |||
o simple - identical to the identifier of the corresponding YANG | o simple - identical to the identifier of the corresponding YANG | |||
data node; | data node; | |||
o namespace-qualified - the data node identifier is prefixed with | o namespace-qualified - the data node identifier is prefixed with | |||
the name of the module in which the data node is defined, | the name of the module in which the data node is defined, | |||
separated from the data node identifier by the colon character | separated from the data node identifier by the colon character | |||
(":"). | (":"). | |||
The name of a module determines the namespace of all data node names | The name of a module determines the namespace of all data node names | |||
skipping to change at page 5, line 20 | skipping to change at page 5, line 27 | |||
Figure 1: ABNF production for a JSON member name. | Figure 1: ABNF production for a JSON member name. | |||
A namespace-qualified member name MUST be used for all members of a | A namespace-qualified member name MUST be used for all members of a | |||
top-level JSON object, and then also whenever the namespaces of the | top-level JSON object, and then also whenever the namespaces of the | |||
data node and its parent node are different. In all other cases, the | data node and its parent node are different. In all other cases, the | |||
simple form of the member name MUST be used. | simple form of the member name MUST be used. | |||
For example, consider the following YANG module: | For example, consider the following YANG module: | |||
module foomod { | module example-foomod { | |||
namespace "http://example.com/foomod"; | namespace "http://example.com/foomod"; | |||
prefix "foo"; | prefix "foo"; | |||
container top { | container top { | |||
leaf foo { | leaf foo { | |||
type uint8; | type uint8; | |||
} | } | |||
} | } | |||
} | } | |||
If the data model consists only of this module, then the following is | If the data model consists only of this module, then the following is | |||
a valid JSON-encoded configuration: | a valid JSON-encoded configuration: | |||
{ | { | |||
"foomod:top": { | "example-foomod:top": { | |||
"foo": 54 | "foo": 54 | |||
} | } | |||
} | } | |||
Note that the member of the top-level object uses the namespace- | Note that the member of the top-level object uses the namespace- | |||
qualified name but the "foo" leaf doesn't because it is defined in | qualified name but the "foo" leaf doesn't because it is defined in | |||
the same module as its parent container "top". | the same module as its parent container "top". | |||
Now, assume the container "top" is augmented from another module, | Now, assume the container "top" is augmented from another module, | |||
"barmod": | "example-barmod": | |||
module barmod { | module example-barmod { | |||
namespace "http://example.com/barmod"; | namespace "http://example.com/barmod"; | |||
prefix "bar"; | prefix "bar"; | |||
import foomod { | import example-foomod { | |||
prefix "foo"; | prefix "foo"; | |||
} | } | |||
augment "/foo:top" { | augment "/foo:top" { | |||
leaf bar { | leaf bar { | |||
type boolean; | type boolean; | |||
} | } | |||
} | } | |||
} | } | |||
A valid JSON-encoded configuration containing both leafs may then | A valid JSON-encoded configuration containing both leafs may then | |||
look like this: | look like this: | |||
{ | { | |||
"foomod:top": { | "example-foomod:top": { | |||
"foo": 54, | "foo": 54, | |||
"barmod:bar": true | "example-barmod:bar": true | |||
} | } | |||
} | } | |||
The name of the "bar" leaf is prefixed with the namespace identifier | The name of the "bar" leaf is prefixed with the namespace identifier | |||
because its parent is defined in a different module. | because its parent is defined in a different module. | |||
Explicit namespace identifiers are sometimes needed when encoding | Explicit namespace identifiers are sometimes needed when encoding | |||
values of the "identityref" and "instances-identifier" types. The | values of the "identityref" and "instances-identifier" types. The | |||
same form of namespace-qualified name as defined above is then used. | same form of namespace-qualified name as defined above is then used. | |||
See Sections 6.8 and 6.11 for details. | See Sections 6.8 and 6.11 for details. | |||
skipping to change at page 12, line 20 | skipping to change at page 12, line 20 | |||
6.8. The "identityref" Type | 6.8. The "identityref" Type | |||
An "identityref" value is represented as a string - the name of an | An "identityref" value is represented as a string - the name of an | |||
identity. If the identity is defined in another module than the leaf | identity. If the identity is defined in another module than the leaf | |||
node containing the identityref value, the namespace-qualified form | node containing the identityref value, the namespace-qualified form | |||
(Section 4) MUST be used. Otherwise, both the simple and namespace- | (Section 4) MUST be used. Otherwise, both the simple and namespace- | |||
qualified forms are permitted. | qualified forms are permitted. | |||
For example, consider the following schematic module: | For example, consider the following schematic module: | |||
module exmod { | module example-mod { | |||
... | ... | |||
import ietf-interfaces { | import ietf-interfaces { | |||
prefix if; | prefix if; | |||
} | } | |||
import iana-if-type { | import iana-if-type { | |||
prefix ianaift; | prefix ianaift; | |||
} | } | |||
... | ... | |||
leaf type { | leaf type { | |||
type identityref { | type identityref { | |||
skipping to change at page 15, line 36 | skipping to change at page 15, line 36 | |||
The author wishes to thank Andy Bierman, Martin Bjorklund, Dean | The author wishes to thank Andy Bierman, Martin Bjorklund, Dean | |||
Bogdanovic, Balazs Lengyel, Juergen Schoenwaelder and Phil Shafer for | Bogdanovic, Balazs Lengyel, Juergen Schoenwaelder and Phil Shafer for | |||
their helpful comments and suggestions. | their helpful comments and suggestions. | |||
10. References | 10. References | |||
10.1. Normative References | 10.1. Normative References | |||
[I-D.ietf-netmod-rfc6020bis] | [I-D.ietf-netmod-rfc6020bis] | |||
Bjorklund, M., "The YANG 1.1 Data Modeling Language", | Bjorklund, M., "The YANG 1.1 Data Modeling Language", | |||
draft-ietf-netmod-rfc6020bis-09 (work in progress), | draft-ietf-netmod-rfc6020bis-11 (work in progress), | |||
December 2015. | February 2016. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<http://www.rfc-editor.org/info/rfc2119>. | <http://www.rfc-editor.org/info/rfc2119>. | |||
[RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax | |||
Specifications: ABNF", STD 68, RFC 5234, | Specifications: ABNF", STD 68, RFC 5234, | |||
DOI 10.17487/RFC5234, January 2008, | DOI 10.17487/RFC5234, January 2008, | |||
<http://www.rfc-editor.org/info/rfc5234>. | <http://www.rfc-editor.org/info/rfc5234>. | |||
skipping to change at page 16, line 22 | skipping to change at page 16, line 22 | |||
10.2. Informative References | 10.2. Informative References | |||
[I-D.ietf-netconf-restconf] | [I-D.ietf-netconf-restconf] | |||
Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF | |||
Protocol", draft-ietf-netconf-restconf-09 (work in | Protocol", draft-ietf-netconf-restconf-09 (work in | |||
progress), December 2015. | progress), December 2015. | |||
[I-D.ietf-netmod-yang-metadata] | [I-D.ietf-netmod-yang-metadata] | |||
Lhotka, L., "Defining and Using Metadata with YANG", | Lhotka, L., "Defining and Using Metadata with YANG", | |||
draft-ietf-netmod-yang-metadata-02 (work in progress), | draft-ietf-netmod-yang-metadata-03 (work in progress), | |||
September 2015. | January 2016. | |||
[RFC7223] Bjorklund, M., "A YANG Data Model for Interface | [RFC7223] Bjorklund, M., "A YANG Data Model for Interface | |||
Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, | Management", RFC 7223, DOI 10.17487/RFC7223, May 2014, | |||
<http://www.rfc-editor.org/info/rfc7223>. | <http://www.rfc-editor.org/info/rfc7223>. | |||
[W3C.REC-xml-20081126] | [W3C.REC-xml-20081126] | |||
Bray, T., Paoli, J., Sperberg-McQueen, M., Maler, E., and | Bray, T., Paoli, J., Sperberg-McQueen, M., Maler, E., and | |||
F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth | F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth | |||
Edition)", World Wide Web Consortium Recommendation REC- | Edition)", World Wide Web Consortium Recommendation REC- | |||
xml-20081126, November 2008, | xml-20081126, November 2008, | |||
<http://www.w3.org/TR/2008/REC-xml-20081126>. | <http://www.w3.org/TR/2008/REC-xml-20081126>. | |||
Appendix A. A Complete Example | Appendix A. A Complete Example | |||
The JSON document shown below represents the same data as the reply | The JSON document shown below represents the same data as the reply | |||
to the NETCONF <get> request appearing in Appendix D of [RFC7223]. | to the NETCONF <get> request appearing in Appendix D of [RFC7223]. | |||
The data model is a combination of two YANG modules: "ietf- | The data model is a combination of two YANG modules: "ietf- | |||
interfaces" and "ex-vlan" (the latter is an example module from | interfaces" and "ex-vlan" (the latter is an example module from | |||
Appendix C of [RFC7223]). The "if-mib" feature defined in the "ietf- | Appendix C of [RFC7223]). The "if-mib" feature defined in the "ietf- | |||
interfaces" module is considered to be active. | interfaces" module is supported. | |||
{ | { | |||
"ietf-interfaces:interfaces": { | "ietf-interfaces:interfaces": { | |||
"interface": [ | "interface": [ | |||
{ | { | |||
"name": "eth0", | "name": "eth0", | |||
"type": "iana-if-type:ethernetCsmacd", | "type": "iana-if-type:ethernetCsmacd", | |||
"enabled": false | "enabled": false | |||
}, | }, | |||
{ | { | |||
skipping to change at page 18, line 45 | skipping to change at page 18, line 45 | |||
} | } | |||
} | } | |||
] | ] | |||
} | } | |||
} | } | |||
Appendix B. Change Log | Appendix B. Change Log | |||
RFC Editor: Remove this section upon publication as an RFC. | RFC Editor: Remove this section upon publication as an RFC. | |||
B.1. Changes Between Revisions -05 and -06 | B.1. Changes Between Revisions -07 and -08 | |||
o Changed the names of example modules so that they start with | ||||
"example-". | ||||
B.2. Changes Between Revisions -06 and -07 | ||||
o General permit on object members whose names start with "@". | o General permit on object members whose names start with "@". | |||
B.2. Changes Between Revisions -05 and -06 | B.3. Changes Between Revisions -05 and -06 | |||
o More text and a new example about resolving union-type values. | o More text and a new example about resolving union-type values. | |||
B.3. Changes Between Revisions -04 and -05 | B.4. Changes Between Revisions -04 and -05 | |||
o Removed section "Validation of JSON-encoded Instance Data" and | o Removed section "Validation of JSON-encoded Instance Data" and | |||
other text about XML-JSON mapping. | other text about XML-JSON mapping. | |||
o Added section "Properties of the JSON Encoding". | o Added section "Properties of the JSON Encoding". | |||
B.4. Changes Between Revisions -03 and -04 | B.5. Changes Between Revisions -03 and -04 | |||
o I-D.ietf-netmod-rfc6020bis is used as a normative reference | o I-D.ietf-netmod-rfc6020bis is used as a normative reference | |||
instead of RFC 6020. | instead of RFC 6020. | |||
o Removed noncharacters as an I-JSON issue because it doesn't exist | o Removed noncharacters as an I-JSON issue because it doesn't exist | |||
in YANG 1.1. | in YANG 1.1. | |||
o Section about anydata encoding was added. | o Section about anydata encoding was added. | |||
o Require I-JSON for anyxml encoding. | o Require I-JSON for anyxml encoding. | |||
o Use ABNF for defining qualified name. | o Use ABNF for defining qualified name. | |||
B.5. Changes Between Revisions -02 and -03 | B.6. Changes Between Revisions -02 and -03 | |||
o Namespace encoding is defined without using RFC 2119 keywords. | o Namespace encoding is defined without using RFC 2119 keywords. | |||
o Specification for anyxml nodes was extended and clarified. | o Specification for anyxml nodes was extended and clarified. | |||
o Text about ordering of list entries was corrected. | o Text about ordering of list entries was corrected. | |||
B.6. Changes Between Revisions -01 and -02 | B.7. Changes Between Revisions -01 and -02 | |||
o Encoding of namespaces in instance-identifiers was changed. | o Encoding of namespaces in instance-identifiers was changed. | |||
o Text specifying the order of array elements in leaf-list and list | o Text specifying the order of array elements in leaf-list and list | |||
instances was added. | instances was added. | |||
B.7. Changes Between Revisions -00 and -01 | B.8. Changes Between Revisions -00 and -01 | |||
o Metadata encoding was moved to a separate I-D, draft-lhotka- | o Metadata encoding was moved to a separate I-D, draft-lhotka- | |||
netmod-yang-metadata. | netmod-yang-metadata. | |||
o JSON encoding is now defined directly rather than via XML-JSON | o JSON encoding is now defined directly rather than via XML-JSON | |||
mapping. | mapping. | |||
o The rules for namespace encoding has changed. This affect both | o The rules for namespace encoding has changed. This affect both | |||
node instance names and instance-identifiers. | node instance names and instance-identifiers. | |||
End of changes. 27 change blocks. | ||||
41 lines changed or deleted | 49 lines changed or added | |||
This html diff was produced by rfcdiff 1.42. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |