diff --git a/tests/data/modules/ietf-netconf-acm.yin b/tests/data/modules/ietf-netconf-acm.yin
new file mode 100644
index 0000000..3257406
--- /dev/null
+++ b/tests/data/modules/ietf-netconf-acm.yin
@@ -0,0 +1,464 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module name="ietf-netconf-acm"
+        xmlns="urn:ietf:params:xml:ns:yang:yin:1"
+        xmlns:nacm="urn:ietf:params:xml:ns:yang:ietf-netconf-acm"
+        xmlns:yang="urn:ietf:params:xml:ns:yang:ietf-yang-types">
+  <namespace uri="urn:ietf:params:xml:ns:yang:ietf-netconf-acm"/>
+  <prefix value="nacm"/>
+  <import module="ietf-yang-types">
+    <prefix value="yang"/>
+  </import>
+  <organization>
+    <text>IETF NETCONF (Network Configuration) Working Group</text>
+  </organization>
+  <contact>
+    <text>WG Web:   &lt;https://datatracker.ietf.org/wg/netconf/&gt;
+WG List:  &lt;mailto:netconf@ietf.org&gt;
+
+Author:   Andy Bierman
+          &lt;mailto:andy@yumaworks.com&gt;
+
+Author:   Martin Bjorklund
+          &lt;mailto:mbj@tail-f.com&gt;</text>
+  </contact>
+  <description>
+    <text>Network Configuration Access Control Model.
+
+Copyright (c) 2012 - 2018 IETF Trust and the persons
+identified as authors of the code.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or
+without modification, is permitted pursuant to, and subject
+to the license terms contained in, the Simplified BSD
+License set forth in Section 4.c of the IETF Trust's
+Legal Provisions Relating to IETF Documents
+(https://trustee.ietf.org/license-info).
+
+This version of this YANG module is part of RFC 8341; see
+the RFC itself for full legal notices.</text>
+  </description>
+  <revision date="2018-02-14">
+    <description>
+      <text>Added support for YANG 1.1 actions and notifications tied to
+data nodes.  Clarified how NACM extensions can be used by
+other data models.</text>
+    </description>
+    <reference>
+      <text>RFC 8341: Network Configuration Access Control Model</text>
+    </reference>
+  </revision>
+  <revision date="2012-02-22">
+    <description>
+      <text>Initial version.</text>
+    </description>
+    <reference>
+      <text>RFC 6536: Network Configuration Protocol (NETCONF)
+          Access Control Model</text>
+    </reference>
+  </revision>
+  <extension name="default-deny-write">
+    <description>
+      <text>Used to indicate that the data model node
+represents a sensitive security system parameter.
+
+If present, the NETCONF server will only allow the designated
+'recovery session' to have write access to the node.  An
+explicit access control rule is required for all other users.
+
+If the NACM module is used, then it must be enabled (i.e.,
+/nacm/enable-nacm object equals 'true'), or this extension
+is ignored.
+
+The 'default-deny-write' extension MAY appear within a data
+definition statement.  It is ignored otherwise.</text>
+    </description>
+  </extension>
+  <extension name="default-deny-all">
+    <description>
+      <text>Used to indicate that the data model node
+controls a very sensitive security system parameter.
+
+If present, the NETCONF server will only allow the designated
+'recovery session' to have read, write, or execute access to
+the node.  An explicit access control rule is required for all
+other users.
+
+If the NACM module is used, then it must be enabled (i.e.,
+/nacm/enable-nacm object equals 'true'), or this extension
+is ignored.
+
+The 'default-deny-all' extension MAY appear within a data
+definition statement, 'rpc' statement, or 'notification'
+statement.  It is ignored otherwise.</text>
+    </description>
+  </extension>
+  <typedef name="user-name-type">
+    <type name="string">
+      <length value="1..max"/>
+    </type>
+    <description>
+      <text>General-purpose username string.</text>
+    </description>
+  </typedef>
+  <typedef name="matchall-string-type">
+    <type name="string">
+      <pattern value="\*"/>
+    </type>
+    <description>
+      <text>The string containing a single asterisk '*' is used
+to conceptually represent all possible values
+for the particular leaf using this data type.</text>
+    </description>
+  </typedef>
+  <typedef name="access-operations-type">
+    <type name="bits">
+      <bit name="create">
+        <description>
+          <text>Any protocol operation that creates a
+new data node.</text>
+        </description>
+      </bit>
+      <bit name="read">
+        <description>
+          <text>Any protocol operation or notification that
+returns the value of a data node.</text>
+        </description>
+      </bit>
+      <bit name="update">
+        <description>
+          <text>Any protocol operation that alters an existing
+data node.</text>
+        </description>
+      </bit>
+      <bit name="delete">
+        <description>
+          <text>Any protocol operation that removes a data node.</text>
+        </description>
+      </bit>
+      <bit name="exec">
+        <description>
+          <text>Execution access to the specified protocol operation.</text>
+        </description>
+      </bit>
+    </type>
+    <description>
+      <text>Access operation.</text>
+    </description>
+  </typedef>
+  <typedef name="group-name-type">
+    <type name="string">
+      <length value="1..max"/>
+      <pattern value="[^\*].*"/>
+    </type>
+    <description>
+      <text>Name of administrative group to which
+users can be assigned.</text>
+    </description>
+  </typedef>
+  <typedef name="action-type">
+    <type name="enumeration">
+      <enum name="permit">
+        <description>
+          <text>Requested action is permitted.</text>
+        </description>
+      </enum>
+      <enum name="deny">
+        <description>
+          <text>Requested action is denied.</text>
+        </description>
+      </enum>
+    </type>
+    <description>
+      <text>Action taken by the server when a particular
+rule matches.</text>
+    </description>
+  </typedef>
+  <typedef name="node-instance-identifier">
+    <type name="yang:xpath1.0"/>
+    <description>
+      <text>Path expression used to represent a special
+data node, action, or notification instance-identifier
+string.
+
+A node-instance-identifier value is an
+unrestricted YANG instance-identifier expression.
+All the same rules as an instance-identifier apply,
+except that predicates for keys are optional.  If a key
+predicate is missing, then the node-instance-identifier
+represents all possible server instances for that key.
+
+This XML Path Language (XPath) expression is evaluated in the
+following context:
+
+   o  The set of namespace declarations are those in scope on
+      the leaf element where this type is used.
+
+   o  The set of variable bindings contains one variable,
+      'USER', which contains the name of the user of the
+      current session.
+
+   o  The function library is the core function library, but
+      note that due to the syntax restrictions of an
+      instance-identifier, no functions are allowed.
+
+   o  The context node is the root node in the data tree.
+
+The accessible tree includes actions and notifications tied
+to data nodes.</text>
+    </description>
+  </typedef>
+  <container name="nacm">
+    <nacm:default-deny-all/>
+    <description>
+      <text>Parameters for NETCONF access control model.</text>
+    </description>
+    <leaf name="enable-nacm">
+      <type name="boolean"/>
+      <default value="true"/>
+      <description>
+        <text>Enables or disables all NETCONF access control
+enforcement.  If 'true', then enforcement
+is enabled.  If 'false', then enforcement
+is disabled.</text>
+      </description>
+    </leaf>
+    <leaf name="read-default">
+      <type name="action-type"/>
+      <default value="permit"/>
+      <description>
+        <text>Controls whether read access is granted if
+no appropriate rule is found for a
+particular read request.</text>
+      </description>
+    </leaf>
+    <leaf name="write-default">
+      <type name="action-type"/>
+      <default value="deny"/>
+      <description>
+        <text>Controls whether create, update, or delete access
+is granted if no appropriate rule is found for a
+particular write request.</text>
+      </description>
+    </leaf>
+    <leaf name="exec-default">
+      <type name="action-type"/>
+      <default value="permit"/>
+      <description>
+        <text>Controls whether exec access is granted if no appropriate
+rule is found for a particular protocol operation request.</text>
+      </description>
+    </leaf>
+    <leaf name="enable-external-groups">
+      <type name="boolean"/>
+      <default value="true"/>
+      <description>
+        <text>Controls whether the server uses the groups reported by the
+NETCONF transport layer when it assigns the user to a set of
+NACM groups.  If this leaf has the value 'false', any group
+names reported by the transport layer are ignored by the
+server.</text>
+      </description>
+    </leaf>
+    <leaf name="denied-operations">
+      <type name="yang:zero-based-counter32"/>
+      <config value="false"/>
+      <mandatory value="true"/>
+      <description>
+        <text>Number of times since the server last restarted that a
+protocol operation request was denied.</text>
+      </description>
+    </leaf>
+    <leaf name="denied-data-writes">
+      <type name="yang:zero-based-counter32"/>
+      <config value="false"/>
+      <mandatory value="true"/>
+      <description>
+        <text>Number of times since the server last restarted that a
+protocol operation request to alter
+a configuration datastore was denied.</text>
+      </description>
+    </leaf>
+    <leaf name="denied-notifications">
+      <type name="yang:zero-based-counter32"/>
+      <config value="false"/>
+      <mandatory value="true"/>
+      <description>
+        <text>Number of times since the server last restarted that
+a notification was dropped for a subscription because
+access to the event type was denied.</text>
+      </description>
+    </leaf>
+    <container name="groups">
+      <description>
+        <text>NETCONF access control groups.</text>
+      </description>
+      <list name="group">
+        <key value="name"/>
+        <description>
+          <text>One NACM group entry.  This list will only contain
+configured entries, not any entries learned from
+any transport protocols.</text>
+        </description>
+        <leaf name="name">
+          <type name="group-name-type"/>
+          <description>
+            <text>Group name associated with this entry.</text>
+          </description>
+        </leaf>
+        <leaf-list name="user-name">
+          <type name="user-name-type"/>
+          <description>
+            <text>Each entry identifies the username of
+a member of the group associated with
+this entry.</text>
+          </description>
+        </leaf-list>
+      </list>
+    </container>
+    <list name="rule-list">
+      <key value="name"/>
+      <ordered-by value="user"/>
+      <description>
+        <text>An ordered collection of access control rules.</text>
+      </description>
+      <leaf name="name">
+        <type name="string">
+          <length value="1..max"/>
+        </type>
+        <description>
+          <text>Arbitrary name assigned to the rule-list.</text>
+        </description>
+      </leaf>
+      <leaf-list name="group">
+        <type name="union">
+          <type name="matchall-string-type"/>
+          <type name="group-name-type"/>
+        </type>
+        <description>
+          <text>List of administrative groups that will be
+assigned the associated access rights
+defined by the 'rule' list.
+
+The string '*' indicates that all groups apply to the
+entry.</text>
+        </description>
+      </leaf-list>
+      <list name="rule">
+        <key value="name"/>
+        <ordered-by value="user"/>
+        <description>
+          <text>One access control rule.
+
+Rules are processed in user-defined order until a match is
+found.  A rule matches if 'module-name', 'rule-type', and
+'access-operations' match the request.  If a rule
+matches, the 'action' leaf determines whether or not
+access is granted.</text>
+        </description>
+        <leaf name="name">
+          <type name="string">
+            <length value="1..max"/>
+          </type>
+          <description>
+            <text>Arbitrary name assigned to the rule.</text>
+          </description>
+        </leaf>
+        <leaf name="module-name">
+          <type name="union">
+            <type name="matchall-string-type"/>
+            <type name="string"/>
+          </type>
+          <default value="*"/>
+          <description>
+            <text>Name of the module associated with this rule.
+
+This leaf matches if it has the value '*' or if the
+object being accessed is defined in the module with the
+specified module name.</text>
+          </description>
+        </leaf>
+        <choice name="rule-type">
+          <description>
+            <text>This choice matches if all leafs present in the rule
+match the request.  If no leafs are present, the
+choice matches all requests.</text>
+          </description>
+          <case name="protocol-operation">
+            <leaf name="rpc-name">
+              <type name="union">
+                <type name="matchall-string-type"/>
+                <type name="string"/>
+              </type>
+              <description>
+                <text>This leaf matches if it has the value '*' or if
+its value equals the requested protocol operation
+name.</text>
+              </description>
+            </leaf>
+          </case>
+          <case name="notification">
+            <leaf name="notification-name">
+              <type name="union">
+                <type name="matchall-string-type"/>
+                <type name="string"/>
+              </type>
+              <description>
+                <text>This leaf matches if it has the value '*' or if its
+value equals the requested notification name.</text>
+              </description>
+            </leaf>
+          </case>
+          <case name="data-node">
+            <leaf name="path">
+              <type name="node-instance-identifier"/>
+              <mandatory value="true"/>
+              <description>
+                <text>Data node instance-identifier associated with the
+data node, action, or notification controlled by
+this rule.
+
+Configuration data or state data
+instance-identifiers start with a top-level
+data node.  A complete instance-identifier is
+required for this type of path value.
+
+The special value '/' refers to all possible
+datastore contents.</text>
+              </description>
+            </leaf>
+          </case>
+        </choice>
+        <leaf name="access-operations">
+          <type name="union">
+            <type name="matchall-string-type"/>
+            <type name="access-operations-type"/>
+          </type>
+          <default value="*"/>
+          <description>
+            <text>Access operations associated with this rule.
+
+This leaf matches if it has the value '*' or if the
+bit corresponding to the requested operation is set.</text>
+          </description>
+        </leaf>
+        <leaf name="action">
+          <type name="action-type"/>
+          <mandatory value="true"/>
+          <description>
+            <text>The access control action associated with the
+rule.  If a rule has been determined to match a
+particular request, then this object is used
+to determine whether to permit or deny the
+request.</text>
+          </description>
+        </leaf>
+        <leaf name="comment">
+          <type name="string"/>
+          <description>
+            <text>A textual description of the access rule.</text>
+          </description>
+        </leaf>
+      </list>
+    </list>
+  </container>
+</module>
diff --git a/tests/data/modules/ietf-netconf-monitoring.yin b/tests/data/modules/ietf-netconf-monitoring.yin
new file mode 100644
index 0000000..1f99694
--- /dev/null
+++ b/tests/data/modules/ietf-netconf-monitoring.yin
@@ -0,0 +1,600 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module name="ietf-netconf-monitoring"
+        xmlns="urn:ietf:params:xml:ns:yang:yin:1"
+        xmlns:ncm="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"
+        xmlns:yang="urn:ietf:params:xml:ns:yang:ietf-yang-types"
+        xmlns:inet="urn:ietf:params:xml:ns:yang:ietf-inet-types">
+  <namespace uri="urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"/>
+  <prefix value="ncm"/>
+  <import module="ietf-yang-types">
+    <prefix value="yang"/>
+  </import>
+  <import module="ietf-inet-types">
+    <prefix value="inet"/>
+  </import>
+  <organization>
+    <text>IETF NETCONF (Network Configuration) Working Group</text>
+  </organization>
+  <contact>
+    <text>WG Web:   &lt;http://tools.ietf.org/wg/netconf/&gt;
+WG List:  &lt;mailto:netconf@ietf.org&gt;
+
+WG Chair: Mehmet Ersue
+          &lt;mailto:mehmet.ersue@nsn.com&gt;
+
+WG Chair: Bert Wijnen
+          &lt;mailto:bertietf@bwijnen.net&gt;
+
+Editor:   Mark Scott
+          &lt;mailto:mark.scott@ericsson.com&gt;
+
+Editor:   Martin Bjorklund
+          &lt;mailto:mbj@tail-f.com&gt;</text>
+  </contact>
+  <description>
+    <text>NETCONF Monitoring Module.
+All elements in this module are read-only.
+
+Copyright (c) 2010 IETF Trust and the persons identified as
+authors of the code. All rights reserved.
+
+Redistribution and use in source and binary forms, with or
+without modification, is permitted pursuant to, and subject
+to the license terms contained in, the Simplified BSD
+License set forth in Section 4.c of the IETF Trust's
+Legal Provisions Relating to IETF Documents
+(http://trustee.ietf.org/license-info).
+
+This version of this YANG module is part of RFC 6022; see
+the RFC itself for full legal notices.</text>
+  </description>
+  <revision date="2010-10-04">
+    <description>
+      <text>Initial revision.</text>
+    </description>
+    <reference>
+      <text>RFC 6022: YANG Module for NETCONF Monitoring</text>
+    </reference>
+  </revision>
+  <typedef name="netconf-datastore-type">
+    <type name="enumeration">
+      <enum name="running"/>
+      <enum name="candidate"/>
+      <enum name="startup"/>
+    </type>
+    <description>
+      <text>Enumeration of possible NETCONF datastore types.</text>
+    </description>
+    <reference>
+      <text>RFC 4741: NETCONF Configuration Protocol</text>
+    </reference>
+  </typedef>
+  <identity name="transport">
+    <description>
+      <text>Base identity for NETCONF transport types.</text>
+    </description>
+  </identity>
+  <identity name="netconf-ssh">
+    <base name="transport"/>
+    <description>
+      <text>NETCONF over Secure Shell (SSH).</text>
+    </description>
+    <reference>
+      <text>RFC 4742: Using the NETCONF Configuration Protocol
+          over Secure SHell (SSH)</text>
+    </reference>
+  </identity>
+  <identity name="netconf-soap-over-beep">
+    <base name="transport"/>
+    <description>
+      <text>NETCONF over Simple Object Access Protocol (SOAP) over
+Blocks Extensible Exchange Protocol (BEEP).</text>
+    </description>
+    <reference>
+      <text>RFC 4743: Using NETCONF over the Simple Object
+          Access Protocol (SOAP)</text>
+    </reference>
+  </identity>
+  <identity name="netconf-soap-over-https">
+    <base name="transport"/>
+    <description>
+      <text>NETCONF over Simple Object Access Protocol (SOAP)
+over Hypertext Transfer Protocol Secure (HTTPS).</text>
+    </description>
+    <reference>
+      <text>RFC 4743: Using NETCONF over the Simple Object
+          Access Protocol (SOAP)</text>
+    </reference>
+  </identity>
+  <identity name="netconf-beep">
+    <base name="transport"/>
+    <description>
+      <text>NETCONF over Blocks Extensible Exchange Protocol (BEEP).</text>
+    </description>
+    <reference>
+      <text>RFC 4744: Using the NETCONF Protocol over the
+          Blocks Extensible Exchange Protocol (BEEP)</text>
+    </reference>
+  </identity>
+  <identity name="netconf-tls">
+    <base name="transport"/>
+    <description>
+      <text>NETCONF over Transport Layer Security (TLS).</text>
+    </description>
+    <reference>
+      <text>RFC 5539: NETCONF over Transport Layer Security (TLS)</text>
+    </reference>
+  </identity>
+  <identity name="schema-format">
+    <description>
+      <text>Base identity for data model schema languages.</text>
+    </description>
+  </identity>
+  <identity name="xsd">
+    <base name="schema-format"/>
+    <description>
+      <text>W3C XML Schema Definition.</text>
+    </description>
+    <reference>
+      <text>W3C REC REC-xmlschema-1-20041028:
+  XML Schema Part 1: Structures</text>
+    </reference>
+  </identity>
+  <identity name="yang">
+    <base name="schema-format"/>
+    <description>
+      <text>The YANG data modeling language for NETCONF.</text>
+    </description>
+    <reference>
+      <text>RFC 6020:  YANG - A Data Modeling Language for the
+           Network Configuration Protocol (NETCONF)</text>
+    </reference>
+  </identity>
+  <identity name="yin">
+    <base name="schema-format"/>
+    <description>
+      <text>The YIN syntax for YANG.</text>
+    </description>
+    <reference>
+      <text>RFC 6020:  YANG - A Data Modeling Language for the
+           Network Configuration Protocol (NETCONF)</text>
+    </reference>
+  </identity>
+  <identity name="rng">
+    <base name="schema-format"/>
+    <description>
+      <text>Regular Language for XML Next Generation (RELAX NG).</text>
+    </description>
+    <reference>
+      <text>ISO/IEC 19757-2:2008: RELAX NG</text>
+    </reference>
+  </identity>
+  <identity name="rnc">
+    <base name="schema-format"/>
+    <description>
+      <text>Relax NG Compact Syntax</text>
+    </description>
+    <reference>
+      <text>ISO/IEC 19757-2:2008: RELAX NG</text>
+    </reference>
+  </identity>
+  <grouping name="common-counters">
+    <description>
+      <text>Counters that exist both per session, and also globally,
+accumulated from all sessions.</text>
+    </description>
+    <leaf name="in-rpcs">
+      <type name="yang:zero-based-counter32"/>
+      <description>
+        <text>Number of correct &lt;rpc&gt; messages received.</text>
+      </description>
+    </leaf>
+    <leaf name="in-bad-rpcs">
+      <type name="yang:zero-based-counter32"/>
+      <description>
+        <text>Number of messages received when an &lt;rpc&gt; message was expected,
+that were not correct &lt;rpc&gt; messages.  This includes XML parse
+errors and errors on the rpc layer.</text>
+      </description>
+    </leaf>
+    <leaf name="out-rpc-errors">
+      <type name="yang:zero-based-counter32"/>
+      <description>
+        <text>Number of &lt;rpc-reply&gt; messages sent that contained an
+&lt;rpc-error&gt; element.</text>
+      </description>
+    </leaf>
+    <leaf name="out-notifications">
+      <type name="yang:zero-based-counter32"/>
+      <description>
+        <text>Number of &lt;notification&gt; messages sent.</text>
+      </description>
+    </leaf>
+  </grouping>
+  <container name="netconf-state">
+    <config value="false"/>
+    <description>
+      <text>The netconf-state container is the root of the monitoring
+data model.</text>
+    </description>
+    <container name="capabilities">
+      <description>
+        <text>Contains the list of NETCONF capabilities supported by the
+server.</text>
+      </description>
+      <leaf-list name="capability">
+        <type name="inet:uri"/>
+        <description>
+          <text>List of NETCONF capabilities supported by the server.</text>
+        </description>
+      </leaf-list>
+    </container>
+    <container name="datastores">
+      <description>
+        <text>Contains the list of NETCONF configuration datastores.</text>
+      </description>
+      <list name="datastore">
+        <key value="name"/>
+        <description>
+          <text>List of NETCONF configuration datastores supported by
+the NETCONF server and related information.</text>
+        </description>
+        <leaf name="name">
+          <type name="netconf-datastore-type"/>
+          <description>
+            <text>Name of the datastore associated with this list entry.</text>
+          </description>
+        </leaf>
+        <container name="locks">
+          <presence value="This container is present only if the datastore&#10;is locked."/>
+          <description>
+            <text>The NETCONF &lt;lock&gt; and &lt;partial-lock&gt; operations allow
+a client to lock specific resources in a datastore.  The
+NETCONF server will prevent changes to the locked
+resources by all sessions except the one that acquired
+the lock(s).
+
+Monitoring information is provided for each datastore
+entry including details such as the session that acquired
+the lock, the type of lock (global or partial) and the
+list of locked resources.  Multiple locks per datastore
+are supported.</text>
+          </description>
+          <grouping name="lock-info">
+            <description>
+              <text>Lock related parameters, common to both global and
+partial locks.</text>
+            </description>
+            <leaf name="locked-by-session">
+              <type name="uint32"/>
+              <mandatory value="true"/>
+              <description>
+                <text>The session ID of the session that has locked
+this resource.  Both a global lock and a partial
+lock MUST contain the NETCONF session-id.
+
+If the lock is held by a session that is not managed
+by the NETCONF server (e.g., a CLI session), a session
+id of 0 (zero) is reported.</text>
+              </description>
+              <reference>
+                <text>RFC 4741: NETCONF Configuration Protocol</text>
+              </reference>
+            </leaf>
+            <leaf name="locked-time">
+              <type name="yang:date-and-time"/>
+              <mandatory value="true"/>
+              <description>
+                <text>The date and time of when the resource was
+locked.</text>
+              </description>
+            </leaf>
+          </grouping>
+          <choice name="lock-type">
+            <description>
+              <text>Indicates if a global lock or a set of partial locks
+are set.</text>
+            </description>
+            <container name="global-lock">
+              <description>
+                <text>Present if the global lock is set.</text>
+              </description>
+              <uses name="lock-info"/>
+            </container>
+            <list name="partial-lock">
+              <key value="lock-id"/>
+              <description>
+                <text>List of partial locks.</text>
+              </description>
+              <reference>
+                <text>RFC 5717: Partial Lock Remote Procedure Call (RPC) for
+          NETCONF</text>
+              </reference>
+              <leaf name="lock-id">
+                <type name="uint32"/>
+                <description>
+                  <text>This is the lock id returned in the &lt;partial-lock&gt;
+response.</text>
+                </description>
+              </leaf>
+              <uses name="lock-info"/>
+              <leaf-list name="select">
+                <type name="yang:xpath1.0"/>
+                <min-elements value="1"/>
+                <description>
+                  <text>The xpath expression that was used to request
+the lock.  The select expression indicates the
+original intended scope of the lock.</text>
+                </description>
+              </leaf-list>
+              <leaf-list name="locked-node">
+                <type name="instance-identifier"/>
+                <description>
+                  <text>The list of instance-identifiers (i.e., the
+locked nodes).
+
+The scope of the partial lock is defined by the list
+of locked nodes.</text>
+                </description>
+              </leaf-list>
+            </list>
+          </choice>
+        </container>
+      </list>
+    </container>
+    <container name="schemas">
+      <description>
+        <text>Contains the list of data model schemas supported by the
+server.</text>
+      </description>
+      <list name="schema">
+        <key value="identifier version format"/>
+        <description>
+          <text>List of data model schemas supported by the server.</text>
+        </description>
+        <leaf name="identifier">
+          <type name="string"/>
+          <description>
+            <text>Identifier to uniquely reference the schema.  The
+identifier is used in the &lt;get-schema&gt; operation and may
+be used for other purposes such as file retrieval.
+
+For modeling languages that support or require a data
+model name (e.g., YANG module name) the identifier MUST
+match that name.  For YANG data models, the identifier is
+the name of the module or submodule.  In other cases, an
+identifier such as a filename MAY be used instead.</text>
+          </description>
+        </leaf>
+        <leaf name="version">
+          <type name="string"/>
+          <description>
+            <text>Version of the schema supported.  Multiple versions MAY be
+supported simultaneously by a NETCONF server.  Each
+version MUST be reported individually in the schema list,
+i.e., with same identifier, possibly different location,
+but different version.
+
+For YANG data models, version is the value of the most
+recent YANG 'revision' statement in the module or
+submodule, or the empty string if no 'revision' statement
+is present.</text>
+          </description>
+        </leaf>
+        <leaf name="format">
+          <type name="identityref">
+            <base name="schema-format"/>
+          </type>
+          <description>
+            <text>The data modeling language the schema is written
+in (currently xsd, yang, yin, rng, or rnc).
+For YANG data models, 'yang' format MUST be supported and
+'yin' format MAY also be provided.</text>
+          </description>
+        </leaf>
+        <leaf name="namespace">
+          <type name="inet:uri"/>
+          <mandatory value="true"/>
+          <description>
+            <text>The XML namespace defined by the data model.
+
+For YANG data models, this is the module's namespace.
+If the list entry describes a submodule, this field
+contains the namespace of the module to which the
+submodule belongs.</text>
+          </description>
+        </leaf>
+        <leaf-list name="location">
+          <type name="union">
+            <type name="enumeration">
+              <enum name="NETCONF"/>
+            </type>
+            <type name="inet:uri"/>
+          </type>
+          <description>
+            <text>One or more locations from which the schema can be
+retrieved.  This list SHOULD contain at least one
+entry per schema.
+
+A schema entry may be located on a remote file system
+(e.g., reference to file system for ftp retrieval) or
+retrieved directly from a server supporting the
+&lt;get-schema&gt; operation (denoted by the value 'NETCONF').</text>
+          </description>
+        </leaf-list>
+      </list>
+    </container>
+    <container name="sessions">
+      <description>
+        <text>The sessions container includes session-specific data for
+NETCONF management sessions.  The session list MUST include
+all currently active NETCONF sessions.</text>
+      </description>
+      <list name="session">
+        <key value="session-id"/>
+        <description>
+          <text>All NETCONF sessions managed by the NETCONF server
+MUST be reported in this list.</text>
+        </description>
+        <leaf name="session-id">
+          <type name="uint32">
+            <range value="1..max"/>
+          </type>
+          <description>
+            <text>Unique identifier for the session.  This value is the
+NETCONF session identifier, as defined in RFC 4741.</text>
+          </description>
+          <reference>
+            <text>RFC 4741: NETCONF Configuration Protocol</text>
+          </reference>
+        </leaf>
+        <leaf name="transport">
+          <type name="identityref">
+            <base name="transport"/>
+          </type>
+          <mandatory value="true"/>
+          <description>
+            <text>Identifies the transport for each session, e.g.,
+'netconf-ssh', 'netconf-soap', etc.</text>
+          </description>
+        </leaf>
+        <leaf name="username">
+          <type name="string"/>
+          <mandatory value="true"/>
+          <description>
+            <text>The username is the client identity that was authenticated
+by the NETCONF transport protocol.  The algorithm used to
+derive the username is NETCONF transport protocol specific
+and in addition specific to the authentication mechanism
+used by the NETCONF transport protocol.</text>
+          </description>
+        </leaf>
+        <leaf name="source-host">
+          <type name="inet:host"/>
+          <description>
+            <text>Host identifier of the NETCONF client.  The value
+returned is implementation specific (e.g., hostname,
+IPv4 address, IPv6 address)</text>
+          </description>
+        </leaf>
+        <leaf name="login-time">
+          <type name="yang:date-and-time"/>
+          <mandatory value="true"/>
+          <description>
+            <text>Time at the server at which the session was established.</text>
+          </description>
+        </leaf>
+        <uses name="common-counters">
+          <description>
+            <text>Per-session counters.  Zero based with following reset
+behaviour:
+  - at start of a session
+  - when max value is reached</text>
+          </description>
+        </uses>
+      </list>
+    </container>
+    <container name="statistics">
+      <description>
+        <text>Statistical data pertaining to the NETCONF server.</text>
+      </description>
+      <leaf name="netconf-start-time">
+        <type name="yang:date-and-time"/>
+        <description>
+          <text>Date and time at which the management subsystem was
+started.</text>
+        </description>
+      </leaf>
+      <leaf name="in-bad-hellos">
+        <type name="yang:zero-based-counter32"/>
+        <description>
+          <text>Number of sessions silently dropped because an
+invalid &lt;hello&gt; message was received.  This includes &lt;hello&gt;
+messages with a 'session-id' attribute, bad namespace, and
+bad capability declarations.</text>
+        </description>
+      </leaf>
+      <leaf name="in-sessions">
+        <type name="yang:zero-based-counter32"/>
+        <description>
+          <text>Number of sessions started.  This counter is incremented
+when a &lt;hello&gt; message with a &lt;session-id&gt; is sent.
+
+'in-sessions' - 'in-bad-hellos' =
+   'number of correctly started netconf sessions'</text>
+        </description>
+      </leaf>
+      <leaf name="dropped-sessions">
+        <type name="yang:zero-based-counter32"/>
+        <description>
+          <text>Number of sessions that were abnormally terminated, e.g.,
+due to idle timeout or transport close.  This counter is not
+incremented when a session is properly closed by a
+&lt;close-session&gt; operation, or killed by a &lt;kill-session&gt;
+operation.</text>
+        </description>
+      </leaf>
+      <uses name="common-counters">
+        <description>
+          <text>Global counters, accumulated from all sessions.
+Zero based with following reset behaviour:
+  - re-initialization of NETCONF server
+  - when max value is reached</text>
+        </description>
+      </uses>
+    </container>
+  </container>
+  <rpc name="get-schema">
+    <description>
+      <text>This operation is used to retrieve a schema from the
+NETCONF server.
+
+Positive Response:
+  The NETCONF server returns the requested schema.
+
+Negative Response:
+  If requested schema does not exist, the &lt;error-tag&gt; is
+  'invalid-value'.
+
+  If more than one schema matches the requested parameters, the
+  &lt;error-tag&gt; is 'operation-failed', and &lt;error-app-tag&gt; is
+  'data-not-unique'.</text>
+    </description>
+    <input>
+      <leaf name="identifier">
+        <type name="string"/>
+        <mandatory value="true"/>
+        <description>
+          <text>Identifier for the schema list entry.</text>
+        </description>
+      </leaf>
+      <leaf name="version">
+        <type name="string"/>
+        <description>
+          <text>Version of the schema requested.  If this parameter is not
+present, and more than one version of the schema exists on
+the server, a 'data-not-unique' error is returned, as
+described above.</text>
+        </description>
+      </leaf>
+      <leaf name="format">
+        <type name="identityref">
+          <base name="schema-format"/>
+        </type>
+        <description>
+          <text>The data modeling language of the schema.  If this
+parameter is not present, and more than one formats of
+the schema exists on the server, a 'data-not-unique' error
+is returned, as described above.</text>
+        </description>
+      </leaf>
+    </input>
+    <output>
+      <anyxml name="data">
+        <description>
+          <text>Contains the schema content.</text>
+        </description>
+      </anyxml>
+    </output>
+  </rpc>
+</module>
diff --git a/tests/data/modules/ietf-netconf-notifications.yin b/tests/data/modules/ietf-netconf-notifications.yin
new file mode 100644
index 0000000..6d9e285
--- /dev/null
+++ b/tests/data/modules/ietf-netconf-notifications.yin
@@ -0,0 +1,353 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module name="ietf-netconf-notifications"
+        xmlns="urn:ietf:params:xml:ns:yang:yin:1"
+        xmlns:ncn="urn:ietf:params:xml:ns:yang:ietf-netconf-notifications"
+        xmlns:inet="urn:ietf:params:xml:ns:yang:ietf-inet-types"
+        xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
+  <namespace uri="urn:ietf:params:xml:ns:yang:ietf-netconf-notifications"/>
+  <prefix value="ncn"/>
+  <import module="ietf-inet-types">
+    <prefix value="inet"/>
+  </import>
+  <import module="ietf-netconf">
+    <prefix value="nc"/>
+  </import>
+  <organization>
+    <text>IETF NETCONF (Network Configuration Protocol) Working Group</text>
+  </organization>
+  <contact>
+    <text>WG Web:   &lt;http://tools.ietf.org/wg/netconf/&gt;
+WG List:  &lt;mailto:netconf@ietf.org&gt;
+
+WG Chair: Bert Wijnen
+          &lt;mailto:bertietf@bwijnen.net&gt;
+
+WG Chair: Mehmet Ersue
+          &lt;mailto:mehmet.ersue@nsn.com&gt;
+
+Editor:   Andy Bierman
+          &lt;mailto:andy@netconfcentral.org&gt;</text>
+  </contact>
+  <description>
+    <text>This module defines a YANG data model for use with the
+NETCONF protocol that allows the NETCONF client to
+receive common NETCONF base event notifications.
+
+Copyright (c) 2012 IETF Trust and the persons identified as
+the document authors.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or
+without modification, is permitted pursuant to, and subject
+to the license terms contained in, the Simplified BSD License
+
+
+
+set forth in Section 4.c of the IETF Trust's Legal Provisions
+Relating to IETF Documents
+(http://trustee.ietf.org/license-info).
+
+This version of this YANG module is part of RFC 6470; see
+the RFC itself for full legal notices.</text>
+  </description>
+  <revision date="2012-02-06">
+    <description>
+      <text>Initial version.</text>
+    </description>
+    <reference>
+      <text>RFC 6470: NETCONF Base Notifications</text>
+    </reference>
+  </revision>
+  <grouping name="common-session-parms">
+    <description>
+      <text>Common session parameters to identify a
+management session.</text>
+    </description>
+    <leaf name="username">
+      <type name="string"/>
+      <mandatory value="true"/>
+      <description>
+        <text>Name of the user for the session.</text>
+      </description>
+    </leaf>
+    <leaf name="session-id">
+      <type name="nc:session-id-or-zero-type"/>
+      <mandatory value="true"/>
+      <description>
+        <text>Identifier of the session.
+A NETCONF session MUST be identified by a non-zero value.
+A non-NETCONF session MAY be identified by the value zero.</text>
+      </description>
+    </leaf>
+    <leaf name="source-host">
+      <type name="inet:ip-address"/>
+      <description>
+        <text>Address of the remote host for the session.</text>
+      </description>
+    </leaf>
+  </grouping>
+  <grouping name="changed-by-parms">
+    <description>
+      <text>Common parameters to identify the source
+of a change event, such as a configuration
+or capability change.</text>
+    </description>
+    <container name="changed-by">
+      <description>
+        <text>Indicates the source of the change.
+If caused by internal action, then the
+empty leaf 'server' will be present.
+If caused by a management session, then
+the name, remote host address, and session ID
+of the session that made the change will be reported.</text>
+      </description>
+      <choice name="server-or-user">
+        <mandatory value="true"/>
+        <leaf name="server">
+          <type name="empty"/>
+          <description>
+            <text>If present, the change was caused
+by the server.</text>
+          </description>
+        </leaf>
+        <case name="by-user">
+          <uses name="common-session-parms"/>
+        </case>
+      </choice>
+    </container>
+  </grouping>
+  <notification name="netconf-config-change">
+    <description>
+      <text>Generated when the NETCONF server detects that the
+&lt;running&gt; or &lt;startup&gt; configuration datastore
+has been changed by a management session.
+The notification summarizes the edits that
+have been detected.
+
+The server MAY choose to also generate this
+notification while loading a datastore during the
+boot process for the device.</text>
+    </description>
+    <uses name="changed-by-parms"/>
+    <leaf name="datastore">
+      <type name="enumeration">
+        <enum name="running">
+          <description>
+            <text>The &lt;running&gt; datastore has changed.</text>
+          </description>
+        </enum>
+        <enum name="startup">
+          <description>
+            <text>The &lt;startup&gt; datastore has changed</text>
+          </description>
+        </enum>
+      </type>
+      <default value="running"/>
+      <description>
+        <text>Indicates which configuration datastore has changed.</text>
+      </description>
+    </leaf>
+    <list name="edit">
+      <description>
+        <text>An edit record SHOULD be present for each distinct
+edit operation that the server has detected on
+the target datastore.  This list MAY be omitted
+if the detailed edit operations are not known.
+The server MAY report entries in this list for
+changes not made by a NETCONF session (e.g., CLI).</text>
+      </description>
+      <leaf name="target">
+        <type name="instance-identifier"/>
+        <description>
+          <text>Topmost node associated with the configuration change.
+A server SHOULD set this object to the node within
+the datastore that is being altered.  A server MAY
+set this object to one of the ancestors of the actual
+node that was changed, or omit this object, if the
+exact node is not known.</text>
+        </description>
+      </leaf>
+      <leaf name="operation">
+        <type name="nc:edit-operation-type"/>
+        <description>
+          <text>Type of edit operation performed.
+A server MUST set this object to the NETCONF edit
+operation performed on the target datastore.</text>
+        </description>
+      </leaf>
+    </list>
+  </notification>
+  <notification name="netconf-capability-change">
+    <description>
+      <text>Generated when the NETCONF server detects that
+the server capabilities have changed.
+Indicates which capabilities have been added, deleted,
+and/or modified.  The manner in which a server
+capability is changed is outside the scope of this
+document.</text>
+    </description>
+    <uses name="changed-by-parms"/>
+    <leaf-list name="added-capability">
+      <type name="inet:uri"/>
+      <description>
+        <text>List of capabilities that have just been added.</text>
+      </description>
+    </leaf-list>
+    <leaf-list name="deleted-capability">
+      <type name="inet:uri"/>
+      <description>
+        <text>List of capabilities that have just been deleted.</text>
+      </description>
+    </leaf-list>
+    <leaf-list name="modified-capability">
+      <type name="inet:uri"/>
+      <description>
+        <text>List of capabilities that have just been modified.
+A capability is considered to be modified if the
+base URI for the capability has not changed, but
+one or more of the parameters encoded at the end of
+the capability URI have changed.
+The new modified value of the complete URI is returned.</text>
+      </description>
+    </leaf-list>
+  </notification>
+  <notification name="netconf-session-start">
+    <description>
+      <text>Generated when a NETCONF server detects that a
+NETCONF session has started.  A server MAY generate
+this event for non-NETCONF management sessions.
+Indicates the identity of the user that started
+the session.</text>
+    </description>
+    <uses name="common-session-parms"/>
+  </notification>
+  <notification name="netconf-session-end">
+    <description>
+      <text>Generated when a NETCONF server detects that a
+NETCONF session has terminated.
+A server MAY optionally generate this event for
+non-NETCONF management sessions.  Indicates the
+identity of the user that owned the session,
+and why the session was terminated.</text>
+    </description>
+    <uses name="common-session-parms"/>
+    <leaf name="killed-by">
+      <when condition="../termination-reason = 'killed'"/>
+      <type name="nc:session-id-type"/>
+      <description>
+        <text>The ID of the session that directly caused this session
+to be abnormally terminated.  If this session was abnormally
+terminated by a non-NETCONF session unknown to the server,
+then this leaf will not be present.</text>
+      </description>
+    </leaf>
+    <leaf name="termination-reason">
+      <type name="enumeration">
+        <enum name="closed">
+          <description>
+            <text>The session was terminated by the client in normal
+fashion, e.g., by the NETCONF &lt;close-session&gt;
+protocol operation.</text>
+          </description>
+        </enum>
+        <enum name="killed">
+          <description>
+            <text>The session was terminated in abnormal
+fashion, e.g., by the NETCONF &lt;kill-session&gt;
+protocol operation.</text>
+          </description>
+        </enum>
+        <enum name="dropped">
+          <description>
+            <text>The session was terminated because the transport layer
+connection was unexpectedly closed.</text>
+          </description>
+        </enum>
+        <enum name="timeout">
+          <description>
+            <text>The session was terminated because of inactivity,
+e.g., waiting for the &lt;hello&gt; message or &lt;rpc&gt;
+messages.</text>
+          </description>
+        </enum>
+        <enum name="bad-hello">
+          <description>
+            <text>The client's &lt;hello&gt; message was invalid.</text>
+          </description>
+        </enum>
+        <enum name="other">
+          <description>
+            <text>The session was terminated for some other reason.</text>
+          </description>
+        </enum>
+      </type>
+      <mandatory value="true"/>
+      <description>
+        <text>Reason the session was terminated.</text>
+      </description>
+    </leaf>
+  </notification>
+  <notification name="netconf-confirmed-commit">
+    <description>
+      <text>Generated when a NETCONF server detects that a
+confirmed-commit event has occurred.  Indicates the event
+and the current state of the confirmed-commit procedure
+in progress.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 8.4</text>
+    </reference>
+    <uses name="common-session-parms">
+      <when condition="confirm-event != 'timeout'"/>
+    </uses>
+    <leaf name="confirm-event">
+      <type name="enumeration">
+        <enum name="start">
+          <description>
+            <text>The confirmed-commit procedure has started.</text>
+          </description>
+        </enum>
+        <enum name="cancel">
+          <description>
+            <text>The confirmed-commit procedure has been canceled,
+e.g., due to the session being terminated, or an
+explicit &lt;cancel-commit&gt; operation.</text>
+          </description>
+        </enum>
+        <enum name="timeout">
+          <description>
+            <text>The confirmed-commit procedure has been canceled
+due to the confirm-timeout interval expiring.
+The common session parameters will not be present
+in this sub-mode.</text>
+          </description>
+        </enum>
+        <enum name="extend">
+          <description>
+            <text>The confirmed-commit timeout has been extended,
+e.g., by a new &lt;confirmed-commit&gt; operation.</text>
+          </description>
+        </enum>
+        <enum name="complete">
+          <description>
+            <text>The confirmed-commit procedure has been completed.</text>
+          </description>
+        </enum>
+      </type>
+      <mandatory value="true"/>
+      <description>
+        <text>Indicates the event that caused the notification.</text>
+      </description>
+    </leaf>
+    <leaf name="timeout">
+      <when condition="../confirm-event = 'start' or ../confirm-event = 'extend'"/>
+      <type name="uint32"/>
+      <units name="seconds"/>
+      <description>
+        <text>The configured timeout value if the event type
+is 'start' or 'extend'.  This value represents
+the approximate number of seconds from the event
+time when the 'timeout' event might occur.</text>
+      </description>
+    </leaf>
+  </notification>
+</module>
diff --git a/tests/data/modules/ietf-netconf-with-defaults.yin b/tests/data/modules/ietf-netconf-with-defaults.yin
new file mode 100644
index 0000000..96521a7
--- /dev/null
+++ b/tests/data/modules/ietf-netconf-with-defaults.yin
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module name="ietf-netconf-with-defaults"
+        xmlns="urn:ietf:params:xml:ns:yang:yin:1"
+        xmlns:ncwd="urn:ietf:params:xml:ns:yang:ietf-netconf-with-defaults"
+        xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0">
+  <namespace uri="urn:ietf:params:xml:ns:yang:ietf-netconf-with-defaults"/>
+  <prefix value="ncwd"/>
+  <import module="ietf-netconf">
+    <prefix value="nc"/>
+  </import>
+  <organization>
+    <text>IETF NETCONF (Network Configuration Protocol) Working Group</text>
+  </organization>
+  <contact>
+    <text>WG Web:   &lt;http://tools.ietf.org/wg/netconf/&gt;
+
+WG List:  &lt;netconf@ietf.org&gt;
+
+WG Chair: Bert Wijnen
+          &lt;bertietf@bwijnen.net&gt;
+
+WG Chair: Mehmet Ersue
+          &lt;mehmet.ersue@nsn.com&gt;
+
+Editor: Andy Bierman
+        &lt;andy.bierman@brocade.com&gt;
+
+Editor: Balazs Lengyel
+        &lt;balazs.lengyel@ericsson.com&gt;</text>
+  </contact>
+  <description>
+    <text>This module defines an extension to the NETCONF protocol
+that allows the NETCONF client to control how default
+values are handled by the server in particular NETCONF
+operations.
+
+Copyright (c) 2011 IETF Trust and the persons identified as
+the document authors.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or
+without modification, is permitted pursuant to, and subject
+to the license terms contained in, the Simplified BSD License
+set forth in Section 4.c of the IETF Trust's Legal Provisions
+Relating to IETF Documents
+(http://trustee.ietf.org/license-info).
+
+This version of this YANG module is part of RFC 6243; see
+the RFC itself for full legal notices.</text>
+  </description>
+  <revision date="2011-06-01">
+    <description>
+      <text>Initial version.</text>
+    </description>
+    <reference>
+      <text>RFC 6243: With-defaults Capability for NETCONF</text>
+    </reference>
+  </revision>
+  <typedef name="with-defaults-mode">
+    <description>
+      <text>Possible modes to report default data.</text>
+    </description>
+    <reference>
+      <text>RFC 6243; Section 3.</text>
+    </reference>
+    <type name="enumeration">
+      <enum name="report-all">
+        <description>
+          <text>All default data is reported.</text>
+        </description>
+        <reference>
+          <text>RFC 6243; Section 3.1</text>
+        </reference>
+      </enum>
+      <enum name="report-all-tagged">
+        <description>
+          <text>All default data is reported.
+Any nodes considered to be default data
+will contain a 'default' XML attribute,
+set to 'true' or '1'.</text>
+        </description>
+        <reference>
+          <text>RFC 6243; Section 3.4</text>
+        </reference>
+      </enum>
+      <enum name="trim">
+        <description>
+          <text>Values are not reported if they contain the default.</text>
+        </description>
+        <reference>
+          <text>RFC 6243; Section 3.2</text>
+        </reference>
+      </enum>
+      <enum name="explicit">
+        <description>
+          <text>Report values that contain the definition of
+explicitly set data.</text>
+        </description>
+        <reference>
+          <text>RFC 6243; Section 3.3</text>
+        </reference>
+      </enum>
+    </type>
+  </typedef>
+  <grouping name="with-defaults-parameters">
+    <description>
+      <text>Contains the &lt;with-defaults&gt; parameter for control
+of defaults in NETCONF retrieval operations.</text>
+    </description>
+    <leaf name="with-defaults">
+      <description>
+        <text>The explicit defaults processing mode requested.</text>
+      </description>
+      <reference>
+        <text>RFC 6243; Section 4.5.1</text>
+      </reference>
+      <type name="with-defaults-mode"/>
+    </leaf>
+  </grouping>
+  <augment target-node="/nc:get-config/nc:input">
+    <description>
+      <text>Adds the &lt;with-defaults&gt; parameter to the
+input of the NETCONF &lt;get-config&gt; operation.</text>
+    </description>
+    <reference>
+      <text>RFC 6243; Section 4.5.1</text>
+    </reference>
+    <uses name="with-defaults-parameters"/>
+  </augment>
+  <augment target-node="/nc:get/nc:input">
+    <description>
+      <text>Adds the &lt;with-defaults&gt; parameter to
+the input of the NETCONF &lt;get&gt; operation.</text>
+    </description>
+    <reference>
+      <text>RFC 6243; Section 4.5.1</text>
+    </reference>
+    <uses name="with-defaults-parameters"/>
+  </augment>
+  <augment target-node="/nc:copy-config/nc:input">
+    <description>
+      <text>Adds the &lt;with-defaults&gt; parameter to
+the input of the NETCONF &lt;copy-config&gt; operation.</text>
+    </description>
+    <reference>
+      <text>RFC 6243; Section 4.5.1</text>
+    </reference>
+    <uses name="with-defaults-parameters"/>
+  </augment>
+</module>
diff --git a/tests/data/modules/ietf-netconf.yin b/tests/data/modules/ietf-netconf.yin
new file mode 100644
index 0000000..bb7ae31
--- /dev/null
+++ b/tests/data/modules/ietf-netconf.yin
@@ -0,0 +1,1032 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module name="ietf-netconf"
+        xmlns="urn:ietf:params:xml:ns:yang:yin:1"
+        xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"
+        xmlns:inet="urn:ietf:params:xml:ns:yang:ietf-inet-types"
+        xmlns:nacm="urn:ietf:params:xml:ns:yang:ietf-netconf-acm">
+  <namespace uri="urn:ietf:params:xml:ns:netconf:base:1.0"/>
+  <prefix value="nc"/>
+  <import module="ietf-inet-types">
+    <prefix value="inet"/>
+  </import>
+  <import module="ietf-netconf-acm">
+    <prefix value="nacm"/>
+  </import>
+  <organization>
+    <text>IETF NETCONF (Network Configuration) Working Group</text>
+  </organization>
+  <contact>
+    <text>WG Web:   &lt;http://tools.ietf.org/wg/netconf/&gt;
+WG List:  &lt;netconf@ietf.org&gt;
+
+WG Chair: Bert Wijnen
+          &lt;bertietf@bwijnen.net&gt;
+
+WG Chair: Mehmet Ersue
+          &lt;mehmet.ersue@nsn.com&gt;
+
+Editor:   Martin Bjorklund
+          &lt;mbj@tail-f.com&gt;
+
+Editor:   Juergen Schoenwaelder
+          &lt;j.schoenwaelder@jacobs-university.de&gt;
+
+Editor:   Andy Bierman
+          &lt;andy.bierman@brocade.com&gt;</text>
+  </contact>
+  <description>
+    <text>NETCONF Protocol Data Types and Protocol Operations.
+
+Copyright (c) 2011 IETF Trust and the persons identified as
+the document authors.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or
+without modification, is permitted pursuant to, and subject
+to the license terms contained in, the Simplified BSD License
+set forth in Section 4.c of the IETF Trust's Legal Provisions
+Relating to IETF Documents
+(http://trustee.ietf.org/license-info).
+
+This version of this YANG module is part of RFC 6241; see
+the RFC itself for full legal notices.</text>
+  </description>
+  <revision date="2011-06-01">
+    <description>
+      <text>Initial revision;
+2013-09-29: Updated to include NACM attributes, 
+as specified in RFC 6536: sec 3.2.5 and 3.2.8</text>
+    </description>
+    <reference>
+      <text>RFC 6241: Network Configuration Protocol</text>
+    </reference>
+  </revision>
+  <extension name="get-filter-element-attributes">
+    <description>
+      <text>If this extension is present within an 'anyxml'
+statement named 'filter', which must be conceptually
+defined within the RPC input section for the &lt;get&gt;
+and &lt;get-config&gt; protocol operations, then the
+following unqualified XML attribute is supported
+within the &lt;filter&gt; element, within a &lt;get&gt; or
+&lt;get-config&gt; protocol operation:
+
+  type : optional attribute with allowed
+         value strings 'subtree' and 'xpath'.
+         If missing, the default value is 'subtree'.
+
+If the 'xpath' feature is supported, then the
+following unqualified XML attribute is
+also supported:
+
+  select: optional attribute containing a
+          string representing an XPath expression.
+          The 'type' attribute must be equal to 'xpath'
+          if this attribute is present.</text>
+    </description>
+  </extension>
+  <feature name="writable-running">
+    <description>
+      <text>NETCONF :writable-running capability;
+If the server advertises the :writable-running
+capability for a session, then this feature must
+also be enabled for that session.  Otherwise,
+this feature must not be enabled.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 8.2</text>
+    </reference>
+  </feature>
+  <feature name="candidate">
+    <description>
+      <text>NETCONF :candidate capability;
+If the server advertises the :candidate
+capability for a session, then this feature must
+also be enabled for that session.  Otherwise,
+this feature must not be enabled.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 8.3</text>
+    </reference>
+  </feature>
+  <feature name="confirmed-commit">
+    <if-feature name="candidate"/>
+    <description>
+      <text>NETCONF :confirmed-commit:1.1 capability;
+If the server advertises the :confirmed-commit:1.1
+capability for a session, then this feature must
+also be enabled for that session.  Otherwise,
+this feature must not be enabled.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 8.4</text>
+    </reference>
+  </feature>
+  <feature name="rollback-on-error">
+    <description>
+      <text>NETCONF :rollback-on-error capability;
+If the server advertises the :rollback-on-error
+capability for a session, then this feature must
+also be enabled for that session.  Otherwise,
+this feature must not be enabled.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 8.5</text>
+    </reference>
+  </feature>
+  <feature name="validate">
+    <description>
+      <text>NETCONF :validate:1.1 capability;
+If the server advertises the :validate:1.1
+capability for a session, then this feature must
+also be enabled for that session.  Otherwise,
+this feature must not be enabled.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 8.6</text>
+    </reference>
+  </feature>
+  <feature name="startup">
+    <description>
+      <text>NETCONF :startup capability;
+If the server advertises the :startup
+capability for a session, then this feature must
+also be enabled for that session.  Otherwise,
+this feature must not be enabled.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 8.7</text>
+    </reference>
+  </feature>
+  <feature name="url">
+    <description>
+      <text>NETCONF :url capability;
+If the server advertises the :url
+capability for a session, then this feature must
+also be enabled for that session.  Otherwise,
+this feature must not be enabled.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 8.8</text>
+    </reference>
+  </feature>
+  <feature name="xpath">
+    <description>
+      <text>NETCONF :xpath capability;
+If the server advertises the :xpath
+capability for a session, then this feature must
+also be enabled for that session.  Otherwise,
+this feature must not be enabled.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 8.9</text>
+    </reference>
+  </feature>
+  <typedef name="session-id-type">
+    <type name="uint32">
+      <range value="1..max"/>
+    </type>
+    <description>
+      <text>NETCONF Session Id</text>
+    </description>
+  </typedef>
+  <typedef name="session-id-or-zero-type">
+    <type name="uint32"/>
+    <description>
+      <text>NETCONF Session Id or Zero to indicate none</text>
+    </description>
+  </typedef>
+  <typedef name="error-tag-type">
+    <type name="enumeration">
+      <enum name="in-use">
+        <description>
+          <text>The request requires a resource that
+already is in use.</text>
+        </description>
+      </enum>
+      <enum name="invalid-value">
+        <description>
+          <text>The request specifies an unacceptable value for one
+or more parameters.</text>
+        </description>
+      </enum>
+      <enum name="too-big">
+        <description>
+          <text>The request or response (that would be generated) is
+too large for the implementation to handle.</text>
+        </description>
+      </enum>
+      <enum name="missing-attribute">
+        <description>
+          <text>An expected attribute is missing.</text>
+        </description>
+      </enum>
+      <enum name="bad-attribute">
+        <description>
+          <text>An attribute value is not correct; e.g., wrong type,
+out of range, pattern mismatch.</text>
+        </description>
+      </enum>
+      <enum name="unknown-attribute">
+        <description>
+          <text>An unexpected attribute is present.</text>
+        </description>
+      </enum>
+      <enum name="missing-element">
+        <description>
+          <text>An expected element is missing.</text>
+        </description>
+      </enum>
+      <enum name="bad-element">
+        <description>
+          <text>An element value is not correct; e.g., wrong type,
+out of range, pattern mismatch.</text>
+        </description>
+      </enum>
+      <enum name="unknown-element">
+        <description>
+          <text>An unexpected element is present.</text>
+        </description>
+      </enum>
+      <enum name="unknown-namespace">
+        <description>
+          <text>An unexpected namespace is present.</text>
+        </description>
+      </enum>
+      <enum name="access-denied">
+        <description>
+          <text>Access to the requested protocol operation or
+data model is denied because authorization failed.</text>
+        </description>
+      </enum>
+      <enum name="lock-denied">
+        <description>
+          <text>Access to the requested lock is denied because the
+lock is currently held by another entity.</text>
+        </description>
+      </enum>
+      <enum name="resource-denied">
+        <description>
+          <text>Request could not be completed because of
+insufficient resources.</text>
+        </description>
+      </enum>
+      <enum name="rollback-failed">
+        <description>
+          <text>Request to roll back some configuration change (via
+rollback-on-error or &lt;discard-changes&gt; operations)
+was not completed for some reason.</text>
+        </description>
+      </enum>
+      <enum name="data-exists">
+        <description>
+          <text>Request could not be completed because the relevant
+data model content already exists.  For example,
+a 'create' operation was attempted on data that
+already exists.</text>
+        </description>
+      </enum>
+      <enum name="data-missing">
+        <description>
+          <text>Request could not be completed because the relevant
+data model content does not exist.  For example,
+a 'delete' operation was attempted on
+data that does not exist.</text>
+        </description>
+      </enum>
+      <enum name="operation-not-supported">
+        <description>
+          <text>Request could not be completed because the requested
+operation is not supported by this implementation.</text>
+        </description>
+      </enum>
+      <enum name="operation-failed">
+        <description>
+          <text>Request could not be completed because the requested
+operation failed for some reason not covered by
+any other error condition.</text>
+        </description>
+      </enum>
+      <enum name="partial-operation">
+        <description>
+          <text>This error-tag is obsolete, and SHOULD NOT be sent
+by servers conforming to this document.</text>
+        </description>
+      </enum>
+      <enum name="malformed-message">
+        <description>
+          <text>A message could not be handled because it failed to
+be parsed correctly.  For example, the message is not
+well-formed XML or it uses an invalid character set.</text>
+        </description>
+      </enum>
+    </type>
+    <description>
+      <text>NETCONF Error Tag</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Appendix A</text>
+    </reference>
+  </typedef>
+  <typedef name="error-severity-type">
+    <type name="enumeration">
+      <enum name="error">
+        <description>
+          <text>Error severity</text>
+        </description>
+      </enum>
+      <enum name="warning">
+        <description>
+          <text>Warning severity</text>
+        </description>
+      </enum>
+    </type>
+    <description>
+      <text>NETCONF Error Severity</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 4.3</text>
+    </reference>
+  </typedef>
+  <typedef name="edit-operation-type">
+    <type name="enumeration">
+      <enum name="merge">
+        <description>
+          <text>The configuration data identified by the
+element containing this attribute is merged
+with the configuration at the corresponding
+level in the configuration datastore identified
+by the target parameter.</text>
+        </description>
+      </enum>
+      <enum name="replace">
+        <description>
+          <text>The configuration data identified by the element
+containing this attribute replaces any related
+configuration in the configuration datastore
+identified by the target parameter.  If no such
+configuration data exists in the configuration
+datastore, it is created.  Unlike a
+&lt;copy-config&gt; operation, which replaces the
+entire target configuration, only the configuration
+actually present in the config parameter is affected.</text>
+        </description>
+      </enum>
+      <enum name="create">
+        <description>
+          <text>The configuration data identified by the element
+containing this attribute is added to the
+configuration if and only if the configuration
+data does not already exist in the configuration
+datastore.  If the configuration data exists, an
+&lt;rpc-error&gt; element is returned with an
+&lt;error-tag&gt; value of 'data-exists'.</text>
+        </description>
+      </enum>
+      <enum name="delete">
+        <description>
+          <text>The configuration data identified by the element
+containing this attribute is deleted from the
+configuration if and only if the configuration
+data currently exists in the configuration
+datastore.  If the configuration data does not
+exist, an &lt;rpc-error&gt; element is returned with
+an &lt;error-tag&gt; value of 'data-missing'.</text>
+        </description>
+      </enum>
+      <enum name="remove">
+        <description>
+          <text>The configuration data identified by the element
+containing this attribute is deleted from the
+configuration if the configuration
+data currently exists in the configuration
+datastore.  If the configuration data does not
+exist, the 'remove' operation is silently ignored
+by the server.</text>
+        </description>
+      </enum>
+    </type>
+    <default value="merge"/>
+    <description>
+      <text>NETCONF 'operation' attribute values</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 7.2</text>
+    </reference>
+  </typedef>
+  <rpc name="get-config">
+    <description>
+      <text>Retrieve all or part of a specified configuration.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 7.1</text>
+    </reference>
+    <input>
+      <container name="source">
+        <description>
+          <text>Particular configuration to retrieve.</text>
+        </description>
+        <choice name="config-source">
+          <mandatory value="true"/>
+          <description>
+            <text>The configuration to retrieve.</text>
+          </description>
+          <leaf name="candidate">
+            <if-feature name="candidate"/>
+            <type name="empty"/>
+            <description>
+              <text>The candidate configuration is the config source.</text>
+            </description>
+          </leaf>
+          <leaf name="running">
+            <type name="empty"/>
+            <description>
+              <text>The running configuration is the config source.</text>
+            </description>
+          </leaf>
+          <leaf name="startup">
+            <if-feature name="startup"/>
+            <type name="empty"/>
+            <description>
+              <text>The startup configuration is the config source.
+This is optional-to-implement on the server because
+not all servers will support filtering for this
+datastore.</text>
+            </description>
+          </leaf>
+        </choice>
+      </container>
+      <anyxml name="filter">
+        <description>
+          <text>Subtree or XPath filter to use.</text>
+        </description>
+        <nc:get-filter-element-attributes/>
+      </anyxml>
+    </input>
+    <output>
+      <anyxml name="data">
+        <description>
+          <text>Copy of the source datastore subset that matched
+the filter criteria (if any).  An empty data container
+indicates that the request did not produce any results.</text>
+        </description>
+      </anyxml>
+    </output>
+  </rpc>
+  <rpc name="edit-config">
+    <description>
+      <text>The &lt;edit-config&gt; operation loads all or part of a specified
+configuration to the specified target configuration.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 7.2</text>
+    </reference>
+    <input>
+      <container name="target">
+        <description>
+          <text>Particular configuration to edit.</text>
+        </description>
+        <choice name="config-target">
+          <mandatory value="true"/>
+          <description>
+            <text>The configuration target.</text>
+          </description>
+          <leaf name="candidate">
+            <if-feature name="candidate"/>
+            <type name="empty"/>
+            <description>
+              <text>The candidate configuration is the config target.</text>
+            </description>
+          </leaf>
+          <leaf name="running">
+            <if-feature name="writable-running"/>
+            <type name="empty"/>
+            <description>
+              <text>The running configuration is the config source.</text>
+            </description>
+          </leaf>
+        </choice>
+      </container>
+      <leaf name="default-operation">
+        <type name="enumeration">
+          <enum name="merge">
+            <description>
+              <text>The default operation is merge.</text>
+            </description>
+          </enum>
+          <enum name="replace">
+            <description>
+              <text>The default operation is replace.</text>
+            </description>
+          </enum>
+          <enum name="none">
+            <description>
+              <text>There is no default operation.</text>
+            </description>
+          </enum>
+        </type>
+        <default value="merge"/>
+        <description>
+          <text>The default operation to use.</text>
+        </description>
+      </leaf>
+      <leaf name="test-option">
+        <if-feature name="validate"/>
+        <type name="enumeration">
+          <enum name="test-then-set">
+            <description>
+              <text>The server will test and then set if no errors.</text>
+            </description>
+          </enum>
+          <enum name="set">
+            <description>
+              <text>The server will set without a test first.</text>
+            </description>
+          </enum>
+          <enum name="test-only">
+            <description>
+              <text>The server will only test and not set, even
+if there are no errors.</text>
+            </description>
+          </enum>
+        </type>
+        <default value="test-then-set"/>
+        <description>
+          <text>The test option to use.</text>
+        </description>
+      </leaf>
+      <leaf name="error-option">
+        <type name="enumeration">
+          <enum name="stop-on-error">
+            <description>
+              <text>The server will stop on errors.</text>
+            </description>
+          </enum>
+          <enum name="continue-on-error">
+            <description>
+              <text>The server may continue on errors.</text>
+            </description>
+          </enum>
+          <enum name="rollback-on-error">
+            <description>
+              <text>The server will roll back on errors.
+This value can only be used if the 'rollback-on-error'
+feature is supported.</text>
+            </description>
+          </enum>
+        </type>
+        <default value="stop-on-error"/>
+        <description>
+          <text>The error option to use.</text>
+        </description>
+      </leaf>
+      <choice name="edit-content">
+        <mandatory value="true"/>
+        <description>
+          <text>The content for the edit operation.</text>
+        </description>
+        <anyxml name="config">
+          <description>
+            <text>Inline Config content.</text>
+          </description>
+        </anyxml>
+        <leaf name="url">
+          <if-feature name="url"/>
+          <type name="inet:uri"/>
+          <description>
+            <text>URL-based config content.</text>
+          </description>
+        </leaf>
+      </choice>
+    </input>
+  </rpc>
+  <rpc name="copy-config">
+    <description>
+      <text>Create or replace an entire configuration datastore with the
+contents of another complete configuration datastore.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 7.3</text>
+    </reference>
+    <input>
+      <container name="target">
+        <description>
+          <text>Particular configuration to copy to.</text>
+        </description>
+        <choice name="config-target">
+          <mandatory value="true"/>
+          <description>
+            <text>The configuration target of the copy operation.</text>
+          </description>
+          <leaf name="candidate">
+            <if-feature name="candidate"/>
+            <type name="empty"/>
+            <description>
+              <text>The candidate configuration is the config target.</text>
+            </description>
+          </leaf>
+          <leaf name="running">
+            <if-feature name="writable-running"/>
+            <type name="empty"/>
+            <description>
+              <text>The running configuration is the config target.
+This is optional-to-implement on the server.</text>
+            </description>
+          </leaf>
+          <leaf name="startup">
+            <if-feature name="startup"/>
+            <type name="empty"/>
+            <description>
+              <text>The startup configuration is the config target.</text>
+            </description>
+          </leaf>
+          <leaf name="url">
+            <if-feature name="url"/>
+            <type name="inet:uri"/>
+            <description>
+              <text>The URL-based configuration is the config target.</text>
+            </description>
+          </leaf>
+        </choice>
+      </container>
+      <container name="source">
+        <description>
+          <text>Particular configuration to copy from.</text>
+        </description>
+        <choice name="config-source">
+          <mandatory value="true"/>
+          <description>
+            <text>The configuration source for the copy operation.</text>
+          </description>
+          <leaf name="candidate">
+            <if-feature name="candidate"/>
+            <type name="empty"/>
+            <description>
+              <text>The candidate configuration is the config source.</text>
+            </description>
+          </leaf>
+          <leaf name="running">
+            <type name="empty"/>
+            <description>
+              <text>The running configuration is the config source.</text>
+            </description>
+          </leaf>
+          <leaf name="startup">
+            <if-feature name="startup"/>
+            <type name="empty"/>
+            <description>
+              <text>The startup configuration is the config source.</text>
+            </description>
+          </leaf>
+          <leaf name="url">
+            <if-feature name="url"/>
+            <type name="inet:uri"/>
+            <description>
+              <text>The URL-based configuration is the config source.</text>
+            </description>
+          </leaf>
+          <anyxml name="config">
+            <description>
+              <text>Inline Config content: &lt;config&gt; element.  Represents
+an entire configuration datastore, not
+a subset of the running datastore.</text>
+            </description>
+          </anyxml>
+        </choice>
+      </container>
+    </input>
+  </rpc>
+  <rpc name="delete-config">
+    <nacm:default-deny-all/>
+    <description>
+      <text>Delete a configuration datastore.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 7.4</text>
+    </reference>
+    <input>
+      <container name="target">
+        <description>
+          <text>Particular configuration to delete.</text>
+        </description>
+        <choice name="config-target">
+          <mandatory value="true"/>
+          <description>
+            <text>The configuration target to delete.</text>
+          </description>
+          <leaf name="startup">
+            <if-feature name="startup"/>
+            <type name="empty"/>
+            <description>
+              <text>The startup configuration is the config target.</text>
+            </description>
+          </leaf>
+          <leaf name="url">
+            <if-feature name="url"/>
+            <type name="inet:uri"/>
+            <description>
+              <text>The URL-based configuration is the config target.</text>
+            </description>
+          </leaf>
+        </choice>
+      </container>
+    </input>
+  </rpc>
+  <rpc name="lock">
+    <description>
+      <text>The lock operation allows the client to lock the configuration
+system of a device.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 7.5</text>
+    </reference>
+    <input>
+      <container name="target">
+        <description>
+          <text>Particular configuration to lock.</text>
+        </description>
+        <choice name="config-target">
+          <mandatory value="true"/>
+          <description>
+            <text>The configuration target to lock.</text>
+          </description>
+          <leaf name="candidate">
+            <if-feature name="candidate"/>
+            <type name="empty"/>
+            <description>
+              <text>The candidate configuration is the config target.</text>
+            </description>
+          </leaf>
+          <leaf name="running">
+            <type name="empty"/>
+            <description>
+              <text>The running configuration is the config target.</text>
+            </description>
+          </leaf>
+          <leaf name="startup">
+            <if-feature name="startup"/>
+            <type name="empty"/>
+            <description>
+              <text>The startup configuration is the config target.</text>
+            </description>
+          </leaf>
+        </choice>
+      </container>
+    </input>
+  </rpc>
+  <rpc name="unlock">
+    <description>
+      <text>The unlock operation is used to release a configuration lock,
+previously obtained with the 'lock' operation.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 7.6</text>
+    </reference>
+    <input>
+      <container name="target">
+        <description>
+          <text>Particular configuration to unlock.</text>
+        </description>
+        <choice name="config-target">
+          <mandatory value="true"/>
+          <description>
+            <text>The configuration target to unlock.</text>
+          </description>
+          <leaf name="candidate">
+            <if-feature name="candidate"/>
+            <type name="empty"/>
+            <description>
+              <text>The candidate configuration is the config target.</text>
+            </description>
+          </leaf>
+          <leaf name="running">
+            <type name="empty"/>
+            <description>
+              <text>The running configuration is the config target.</text>
+            </description>
+          </leaf>
+          <leaf name="startup">
+            <if-feature name="startup"/>
+            <type name="empty"/>
+            <description>
+              <text>The startup configuration is the config target.</text>
+            </description>
+          </leaf>
+        </choice>
+      </container>
+    </input>
+  </rpc>
+  <rpc name="get">
+    <description>
+      <text>Retrieve running configuration and device state information.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 7.7</text>
+    </reference>
+    <input>
+      <anyxml name="filter">
+        <description>
+          <text>This parameter specifies the portion of the system
+configuration and state data to retrieve.</text>
+        </description>
+        <nc:get-filter-element-attributes/>
+      </anyxml>
+    </input>
+    <output>
+      <anyxml name="data">
+        <description>
+          <text>Copy of the running datastore subset and/or state
+data that matched the filter criteria (if any).
+An empty data container indicates that the request did not
+produce any results.</text>
+        </description>
+      </anyxml>
+    </output>
+  </rpc>
+  <rpc name="close-session">
+    <description>
+      <text>Request graceful termination of a NETCONF session.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 7.8</text>
+    </reference>
+  </rpc>
+  <rpc name="kill-session">
+    <nacm:default-deny-all/>
+    <description>
+      <text>Force the termination of a NETCONF session.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 7.9</text>
+    </reference>
+    <input>
+      <leaf name="session-id">
+        <type name="session-id-type"/>
+        <mandatory value="true"/>
+        <description>
+          <text>Particular session to kill.</text>
+        </description>
+      </leaf>
+    </input>
+  </rpc>
+  <rpc name="commit">
+    <if-feature name="candidate"/>
+    <description>
+      <text>Commit the candidate configuration as the device's new
+current configuration.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 8.3.4.1</text>
+    </reference>
+    <input>
+      <leaf name="confirmed">
+        <if-feature name="confirmed-commit"/>
+        <type name="empty"/>
+        <description>
+          <text>Requests a confirmed commit.</text>
+        </description>
+        <reference>
+          <text>RFC 6241, Section 8.3.4.1</text>
+        </reference>
+      </leaf>
+      <leaf name="confirm-timeout">
+        <if-feature name="confirmed-commit"/>
+        <type name="uint32">
+          <range value="1..max"/>
+        </type>
+        <units name="seconds"/>
+        <default value="600"/>
+        <description>
+          <text>The timeout interval for a confirmed commit.</text>
+        </description>
+        <reference>
+          <text>RFC 6241, Section 8.3.4.1</text>
+        </reference>
+      </leaf>
+      <leaf name="persist">
+        <if-feature name="confirmed-commit"/>
+        <type name="string"/>
+        <description>
+          <text>This parameter is used to make a confirmed commit
+persistent.  A persistent confirmed commit is not aborted
+if the NETCONF session terminates.  The only way to abort
+a persistent confirmed commit is to let the timer expire,
+or to use the &lt;cancel-commit&gt; operation.
+
+The value of this parameter is a token that must be given
+in the 'persist-id' parameter of &lt;commit&gt; or
+&lt;cancel-commit&gt; operations in order to confirm or cancel
+the persistent confirmed commit.
+
+The token should be a random string.</text>
+        </description>
+        <reference>
+          <text>RFC 6241, Section 8.3.4.1</text>
+        </reference>
+      </leaf>
+      <leaf name="persist-id">
+        <if-feature name="confirmed-commit"/>
+        <type name="string"/>
+        <description>
+          <text>This parameter is given in order to commit a persistent
+confirmed commit.  The value must be equal to the value
+given in the 'persist' parameter to the &lt;commit&gt; operation.
+If it does not match, the operation fails with an
+'invalid-value' error.</text>
+        </description>
+        <reference>
+          <text>RFC 6241, Section 8.3.4.1</text>
+        </reference>
+      </leaf>
+    </input>
+  </rpc>
+  <rpc name="discard-changes">
+    <if-feature name="candidate"/>
+    <description>
+      <text>Revert the candidate configuration to the current
+running configuration.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 8.3.4.2</text>
+    </reference>
+  </rpc>
+  <rpc name="cancel-commit">
+    <if-feature name="confirmed-commit"/>
+    <description>
+      <text>This operation is used to cancel an ongoing confirmed commit.
+If the confirmed commit is persistent, the parameter
+'persist-id' must be given, and it must match the value of the
+'persist' parameter.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 8.4.4.1</text>
+    </reference>
+    <input>
+      <leaf name="persist-id">
+        <type name="string"/>
+        <description>
+          <text>This parameter is given in order to cancel a persistent
+confirmed commit.  The value must be equal to the value
+given in the 'persist' parameter to the &lt;commit&gt; operation.
+If it does not match, the operation fails with an
+'invalid-value' error.</text>
+        </description>
+      </leaf>
+    </input>
+  </rpc>
+  <rpc name="validate">
+    <if-feature name="validate"/>
+    <description>
+      <text>Validates the contents of the specified configuration.</text>
+    </description>
+    <reference>
+      <text>RFC 6241, Section 8.6.4.1</text>
+    </reference>
+    <input>
+      <container name="source">
+        <description>
+          <text>Particular configuration to validate.</text>
+        </description>
+        <choice name="config-source">
+          <mandatory value="true"/>
+          <description>
+            <text>The configuration source to validate.</text>
+          </description>
+          <leaf name="candidate">
+            <if-feature name="candidate"/>
+            <type name="empty"/>
+            <description>
+              <text>The candidate configuration is the config source.</text>
+            </description>
+          </leaf>
+          <leaf name="running">
+            <type name="empty"/>
+            <description>
+              <text>The running configuration is the config source.</text>
+            </description>
+          </leaf>
+          <leaf name="startup">
+            <if-feature name="startup"/>
+            <type name="empty"/>
+            <description>
+              <text>The startup configuration is the config source.</text>
+            </description>
+          </leaf>
+          <leaf name="url">
+            <if-feature name="url"/>
+            <type name="inet:uri"/>
+            <description>
+              <text>The URL-based configuration is the config source.</text>
+            </description>
+          </leaf>
+          <anyxml name="config">
+            <description>
+              <text>Inline Config content: &lt;config&gt; element.  Represents
+an entire configuration datastore, not
+a subset of the running datastore.</text>
+            </description>
+          </anyxml>
+        </choice>
+      </container>
+    </input>
+  </rpc>
+</module>
diff --git a/tests/data/modules/module-a-dv.yang b/tests/data/modules/module-a-dv.yang
new file mode 100644
index 0000000..20f0f46
--- /dev/null
+++ b/tests/data/modules/module-a-dv.yang
@@ -0,0 +1,16 @@
+module module-a-dv {
+
+    namespace "urn:jmu:params:xml:ns:yang:module-a-dv";
+    prefix dv;
+    
+    import module-a {
+        prefix a;
+    }
+    
+    description 
+        "Contains some deviations to module-a";
+
+    deviation "/a:top/a:hidden" {
+        deviate not-supported;
+    }
+}
\ No newline at end of file
diff --git a/tests/data/modules/module-a-dv2.yang b/tests/data/modules/module-a-dv2.yang
new file mode 100644
index 0000000..906d222
--- /dev/null
+++ b/tests/data/modules/module-a-dv2.yang
@@ -0,0 +1,21 @@
+module module-a-dv2 {
+
+    namespace "urn:jmu:params:xml:ns:yang:module-a-dv2";
+    prefix dv2;
+    
+    import module-a {
+        prefix a;
+    }
+    
+    description 
+        "Contains some deviations to module-a";
+
+    deviation "/a:top/a:type" {   
+        deviate add {
+            default "admin";
+            must "count(.) = 1";   
+        }        
+    }   
+    
+}
+
diff --git a/tests/data/modules/module-a.yang b/tests/data/modules/module-a.yang
new file mode 100644
index 0000000..39a5ae2
--- /dev/null
+++ b/tests/data/modules/module-a.yang
@@ -0,0 +1,23 @@
+module module-a {
+
+    namespace "urn:jmu:params:xml:ns:yang:module-a";
+    prefix a;
+    
+    description "This is a simple user module";
+    
+    container top {
+    
+        leaf name {
+            type string;
+        }    
+    
+        leaf type {
+            type string;
+        }    
+        
+        leaf hidden {
+            type boolean;
+        }
+        
+    }
+}
\ No newline at end of file
diff --git a/tests/data/modules/nc-notifications.yin b/tests/data/modules/nc-notifications.yin
new file mode 100644
index 0000000..2d33f04
--- /dev/null
+++ b/tests/data/modules/nc-notifications.yin
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module name="nc-notifications"
+        xmlns="urn:ietf:params:xml:ns:yang:yin:1"
+        xmlns:manageEvent="urn:ietf:params:xml:ns:netmod:notification"
+        xmlns:yang="urn:ietf:params:xml:ns:yang:ietf-yang-types"
+        xmlns:ncEvent="urn:ietf:params:xml:ns:netconf:notification:1.0">
+  <namespace uri="urn:ietf:params:xml:ns:netmod:notification"/>
+  <prefix value="manageEvent"/>
+  <import module="ietf-yang-types">
+    <prefix value="yang"/>
+  </import>
+  <import module="notifications">
+    <prefix value="ncEvent"/>
+  </import>
+  <organization>
+    <text>IETF NETCONF WG</text>
+  </organization>
+  <contact>
+    <text>netconf@ietf.org</text>
+  </contact>
+  <description>
+    <text>Conversion of the 'manageEvent' XSD in the NETCONF
+Notifications RFC.</text>
+  </description>
+  <reference>
+    <text>RFC 5277</text>
+  </reference>
+  <revision date="2008-07-14">
+    <description>
+      <text>RFC 5277 version.</text>
+    </description>
+  </revision>
+  <container name="netconf">
+    <description>
+      <text>Top-level element in the notification namespace</text>
+    </description>
+    <config value="false"/>
+    <container name="streams">
+      <description>
+        <text>The list of event streams supported by the system. When
+a query is issued, the returned set of streams is 
+determined based on user privileges.</text>
+      </description>
+      <list name="stream">
+        <description>
+          <text>Stream name, description and other information.</text>
+        </description>
+        <key value="name"/>
+        <min-elements value="1"/>
+        <leaf name="name">
+          <description>
+            <text>The name of the event stream. If this is the default
+NETCONF stream, this must have the value 'NETCONF'.</text>
+          </description>
+          <type name="ncEvent:streamNameType"/>
+        </leaf>
+        <leaf name="description">
+          <description>
+            <text>A description of the event stream, including such
+information as the type of events that are sent over
+this stream.</text>
+          </description>
+          <type name="string"/>
+          <mandatory value="true"/>
+        </leaf>
+        <leaf name="replaySupport">
+          <description>
+            <text>A description of the event stream, including such
+information as the type of events that are sent over
+this stream.</text>
+          </description>
+          <type name="boolean"/>
+          <mandatory value="true"/>
+        </leaf>
+        <leaf name="replayLogCreationTime">
+          <description>
+            <text>The timestamp of the creation of the log used to support
+the replay function on this stream. Note that this might
+be earlier then the earliest available notification in
+the log. This object is updated if the log resets for 
+some reason.  This object MUST be present if replay is
+supported.</text>
+          </description>
+          <type name="yang:date-and-time"/>
+        </leaf>
+      </list>
+    </container>
+  </container>
+  <notification name="replayComplete">
+    <description>
+      <text>This notification is sent to signal the end of a replay
+portion of a subscription.</text>
+    </description>
+  </notification>
+  <notification name="notificationComplete">
+    <description>
+      <text>This notification is sent to signal the end of a notification
+subscription. It is sent in the case that stopTime was
+specified during the creation of the subscription..</text>
+    </description>
+  </notification>
+</module>
diff --git a/tests/data/modules/notifications.yin b/tests/data/modules/notifications.yin
new file mode 100644
index 0000000..2a4f422
--- /dev/null
+++ b/tests/data/modules/notifications.yin
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module name="notifications"
+        xmlns="urn:ietf:params:xml:ns:yang:yin:1"
+        xmlns:ncEvent="urn:ietf:params:xml:ns:netconf:notification:1.0"
+        xmlns:yang="urn:ietf:params:xml:ns:yang:ietf-yang-types">
+  <namespace uri="urn:ietf:params:xml:ns:netconf:notification:1.0"/>
+  <prefix value="ncEvent"/>
+  <import module="ietf-yang-types">
+    <prefix value="yang"/>
+  </import>
+  <organization>
+    <text>IETF NETCONF WG</text>
+  </organization>
+  <contact>
+    <text>netconf@ops.ietf.org</text>
+  </contact>
+  <description>
+    <text>Conversion of the 'ncEvent' XSD in the 
+NETCONF Notifications RFC.</text>
+  </description>
+  <reference>
+    <text>RFC 5277.</text>
+  </reference>
+  <revision date="2008-07-14">
+    <description>
+      <text>RFC 5277 version.</text>
+    </description>
+  </revision>
+  <typedef name="streamNameType">
+    <description>
+      <text>The name of an event stream.</text>
+    </description>
+    <type name="string"/>
+  </typedef>
+  <rpc name="create-subscription">
+    <description>
+      <text>The command to create a notification subscription. It
+takes as argument the name of the notification stream
+and filter. Both of those options limit the content of
+the subscription. In addition, there are two time-related
+parameters, startTime and stopTime, which can be used to 
+select the time interval of interest to the notification
+replay feature.</text>
+    </description>
+    <input>
+      <leaf name="stream">
+        <description>
+          <text>An optional parameter that indicates which stream of events
+is of interest. If not present, then events in the default
+NETCONF stream will be sent.</text>
+        </description>
+        <type name="streamNameType"/>
+        <default value="NETCONF"/>
+      </leaf>
+      <anyxml name="filter">
+        <description>
+          <text>An optional parameter that indicates which subset of all
+possible events is of interest. The format of this
+parameter is the same as that of the filter parameter
+in the NETCONF protocol operations. If not present,
+all events not precluded by other parameters will 
+be sent.</text>
+        </description>
+      </anyxml>
+      <leaf name="startTime">
+        <description>
+          <text>A parameter used to trigger the replay feature and
+indicates that the replay should start at the time
+specified. If start time is not present, this is not a
+replay subscription.</text>
+        </description>
+        <type name="yang:date-and-time"/>
+      </leaf>
+      <leaf name="stopTime">
+        <description>
+          <text>An optional parameter used with the optional replay
+feature to indicate the newest notifications of
+interest. If stop time is not present, the notifications
+will continue until the subscription is terminated.
+Must be used with startTime.</text>
+        </description>
+        <type name="yang:date-and-time"/>
+      </leaf>
+    </input>
+  </rpc>
+  <container name="notification">
+    <description>
+      <text>internal struct to start a notification</text>
+    </description>
+    <config value="false"/>
+    <leaf name="eventTime">
+      <mandatory value="true"/>
+      <type name="yang:date-and-time"/>
+    </leaf>
+  </container>
+</module>
diff --git a/tests/test_fd_comm.c b/tests/test_fd_comm.c
index 59a787b..3265452 100644
--- a/tests/test_fd_comm.c
+++ b/tests/test_fd_comm.c
@@ -495,7 +495,7 @@
     const struct lys_node *node;
 
     /* create ctx */
-    ctx = ly_ctx_new(TESTS_DIR"/../schemas", 0);
+    ctx = ly_ctx_new(TESTS_DIR"/data/modules", 0);
     assert_non_null(ctx);
 
     /* load modules */
diff --git a/tests/test_io.c b/tests/test_io.c
index 0c42d9b..4dd31a3 100644
--- a/tests/test_io.c
+++ b/tests/test_io.c
@@ -46,10 +46,10 @@
 
     w = malloc(sizeof *w);
     w->session = calloc(1, sizeof *w->session);
-    w->session->ctx = ly_ctx_new(TESTS_DIR"/../schemas", 0);
+    w->session->ctx = ly_ctx_new(TESTS_DIR"/data/modules", 0);
 
     /* ietf-netconf */
-    fd = open(TESTS_DIR"/../schemas/ietf-netconf.yin", O_RDONLY);
+    fd = open(TESTS_DIR"/data/modules/ietf-netconf.yin", O_RDONLY);
     if (fd == -1) {
         free(w);
         return -1;
diff --git a/tests/test_server_thread.c b/tests/test_server_thread.c
index 5cc0114..0daf387 100644
--- a/tests/test_server_thread.c
+++ b/tests/test_server_thread.c
@@ -226,26 +226,40 @@
     char buf[9];
     struct nc_session *session;
 
+    fprintf(stdout, "SSH client start.\n");
+
     ret = read(read_pipe, buf, 9);
     nc_assert(ret == 9);
     nc_assert(!strncmp(buf, "ssh_ready", 9));
 
+    fprintf(stdout, "SSH #1\n");
+
     /* skip the knownhost check */
     nc_client_ssh_set_auth_hostkey_check_clb(ssh_hostkey_check_clb, NULL);
 
+    fprintf(stdout, "SSH #2\n");
+
     ret = nc_client_ssh_set_username("test");
     nc_assert(!ret);
 
+    fprintf(stdout, "SSH #3\n");
+
     ret = nc_client_ssh_add_keypair(TESTS_DIR"/data/key_ecdsa.pub", TESTS_DIR"/data/key_ecdsa");
     nc_assert(!ret);
 
+    fprintf(stdout, "SSH #4\n");
+
     nc_client_ssh_set_auth_pref(NC_SSH_AUTH_PUBLICKEY, 1);
     nc_client_ssh_set_auth_pref(NC_SSH_AUTH_PASSWORD, -1);
     nc_client_ssh_set_auth_pref(NC_SSH_AUTH_INTERACTIVE, -1);
 
+    fprintf(stdout, "SSH #5\n");
+
     session = nc_connect_ssh("127.0.0.1", 6001, NULL);
     nc_assert(session);
 
+    fprintf(stdout, "SSH #6\n");
+
     nc_session_free(session, NULL);
 
     fprintf(stdout, "SSH client finished.\n");
@@ -532,6 +546,8 @@
     char buf[9];
     struct nc_session *session;
 
+    fprintf(stdout, "TLS client start.\n");
+
     ret = read(read_pipe, buf, 9);
     nc_assert(ret == 9);
     nc_assert(!strncmp(buf, "tls_ready", 9));
@@ -608,7 +624,7 @@
     if (!(pids[clients] = fork())) {
         nc_client_init();
 
-        ret = nc_client_set_schema_searchpath(TESTS_DIR"/../schemas");
+        ret = nc_client_set_schema_searchpath(TESTS_DIR"/data/modules");
         nc_assert(!ret);
 
         /* close write */
@@ -630,7 +646,7 @@
     if (!(pids[clients] = fork())) {
         nc_client_init();
 
-        ret = nc_client_set_schema_searchpath(TESTS_DIR"/../schemas");
+        ret = nc_client_set_schema_searchpath(TESTS_DIR"/data/modules");
         nc_assert(!ret);
 
         /* close write */
@@ -660,7 +676,7 @@
 
     client_fork();
 
-    ctx = ly_ctx_new(TESTS_DIR"/../schemas", 0);
+    ctx = ly_ctx_new(TESTS_DIR"/data/modules", 0);
     nc_assert(ctx);
     ly_ctx_load_module(ctx, "ietf-netconf", NULL);
 
