We know Netconf uses yang as data modeling language. Also it comprises of XML. Why XML itself is not used as modeling language?. What stops XML as a data modeling language?.
Why netconf is not using XML as data modeling language?
344 Views Asked by JavaUser AtThere are 2 best solutions below
Bhuvan
On
YANG is a data modeling language SPECIFICALLY defined for Network management (to model device data and operations). Whereas, XML is a general-purpose one. Refer to section 2.6 in RFC 3535 to understand the drawback of XML based Network management. Following is the list of Yang capabilities which suit Network management.
- Filtering capabilities
- Constraints to do automatic data validation
- Syntax to define RPCs
- Data types such as Leaf, Leaflist, etc which very well model a device data.
I do not agree to Predi response that "Note that NETCONF protocol related RFCs do not mandate any specific data model". IMO, Netconf uses one and only one data modeling language, that is Yang. What I understood from the RFC is that device OEM can either use a standard Yang based data-model or write a proprietary Yang based data-model. In the end, both the parties (device OEM and NMS developer) should agree to a common Yang based data-model.
Related Questions in XML
- Postgres && statement Error in Mybatis Mapper?
- Sorting items after building an XML feed?
- C# XML ModelBinding - ASP.NET Core 8 Web API - required field not found
- How can I create an automatic table of contents in docx without the text being bold?
- Odoo 16 Make Fields Readonly Using XPath
- Using similar tags for different objects in XML
- Android Studio problem like gradle sync project failed and plugin error, version 2023.2.1 Iguana
- error: cannot find symbol View root = inflater.inflate(R.layout.toolbar, parent, false);
- Android camera application restriction to 12 mp
- Azure Data Factory Copy Activity Only Importing First Row of XML file
- I am not able to remove space below the navigation view icon in android studio. What;s wrong with code?
- Field can be converted to a local variable ,convert field to local variable in onCreate method
- Deserialize XML with optional different name
- Retrieve tags from xml using python
- Getting attribute from xml and printing it error
Related Questions in IETF-NETMOD-YANG
- Can you have a custom attribute in yang schema?
- Is any function in yang model or xpath to get a current date time
- leafref require-instance allows to carry non existing values
- hosting heterogeneous yang schemas at arbitrary locations
- deleting a leaf with default value (yang)
- Yang parsing in JAVA
- How to refine the mandatory property of nodes from a grouping in YANG language?
- how is this yang notification valid?
- Unable to access Yang capabilities via Python ncclient
- YANG and Choice - what does the XML look like?
- How to augment list from one module to another and add leafs YANG
- leafref inside grouping to grouping
- How to validate that only one value can be changed among these in YANG model
- Can we disallow delete of entire datastore in Yang Model for a particular value of a leaf node?
- put restrictions on Pattern for passwords in yang model
Related Questions in IETF-NETCONF
- Lighty netconf implementation using spring boot application
- How to fetch the Leaf Node value from lyd_node* received from server in Netopeer2 Client?
- How to model state resulting from candidate configuration?
- Can we disallow delete of entire datastore in Yang Model for a particular value of a leaf node?
- RFC 6241 interpretation related to file:// URI
- Custom yang module usage (ConfD_basic 7.8.3)
- ncclient Filters Causing RPC reply to be empty
- bad arg and connection errors using Netconf-Yang on IOS-XE
- Why netconf is not using XML as data modeling language?
- Python Yang on Cisco Routers
- RPC Request for get-schema of bbf(broadband forum) yangs
- usage of yang model ietf-routing
- Modifying a config in Opendaylight
- Unable to access Yang capabilities via Python ncclient
- leaf name and type name can be same in yang
Related Questions in NETCONF
- How to fetch the Leaf Node value from lyd_node* received from server in Netopeer2 Client?
- Python3 NCClient: enabling nacm throws unknown object error
- Ansible NETCONF Configuration Not Committing Changes from Candidate to Running Datastore
- connect to netconf server using python
- How to remove items from lxml tree if I have a given set of elements I want to keep?
- ansible proxy host to remote host firewall to netconf port 830 not working
- OpenDaylight Netconf notification fail for step 4 (Create the http Stream for the events)
- RFC 6241 interpretation related to file:// URI
- YANG , Telemetry sensor path
- How to decode the Netconf messages captured by Wireshark?
- netconf call home using ipv6
- How to set log level to trace for Confd logs such as netconfTraceLog, netconfLog, etc?
- OpenDaylight TestTool: NETCONF notification
- Custom yang module usage (ConfD_basic 7.8.3)
- ncclient Filters Causing RPC reply to be empty
Related Questions in YANG
- 415 Unsupported Media Type error when sending a PUT request to a RESTCONF API via Http4s
- How do you model an array in YANG?
- How can I ensure there are no "gaps" in my YANG list?
- Python3 NCClient: enabling nacm throws unknown object error
- Can you restrict a string to a set of permitted strings in YANG?
- put restrictions on Pattern for passwords in yang model
- Can we disallow delete of entire datastore in Yang Model for a particular value of a leaf node?
- How to validate that only one value can be changed among these in YANG model
- How to store a keyed list with YANG?
- ODL-yang-parser Could not deserialize ATN with version 3 (expected 4)
- How to use + operator performs addition into "default" Statement
- Create a list from a container grouping defined in another submodule
- pip install libyang fails with exit code 2
- Opendaylight ODL java JSON XML binding problem
- NoClassDefFoundError in org.opendaylight.yangtools.yang.parser.rfc7950.reactor.ServiceLoaderState$XPath
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Note that NETCONF protocol related RFCs do not mandate any specific data model.
You should also note that YANG has an XML based format, called YIN, so technically it may be viewed as an XML based data modeling language as well.
It is however true that YANG was initially designed with NETCONF in mind and is currently the preferred way to model data exchanged by peers in a NETCONF session.
Why not use existing XML based data models, such as XML Schema (XSD) and RelaxNG?
One of the arguments back then was readability. Readability by humans is a high priority goal for YANG - you should be able to implement a module by hardcoding everything, some modules actually require you to do that via normative text in descriptions of nodes. XML based data models are not very readable except for machines. I'll let you be the judge on whether YANG is more readable than XML, since that is completely subjective (you may test this by reading a module that is both in YANG and YIN format, side by side).
It is also much easier to achieve maximum interoperability (in other words, standardization) between peers with a more specific language, which YANG is. Imagine the mayhem of everyone using an abstract XML language, such as XSD. Everything is just elements and attributes as far as XSD is concerned - you cannot immediately tell whether a definition represents a notification, rpc, action or just plain data nodes. You'd have to rely on comments for such things. Of course someone else might use processing instructions for this. Or any other XML construct...