summaryrefslogtreecommitdiffstats
path: root/schemas/netconf.xml
diff options
context:
space:
mode:
Diffstat (limited to 'schemas/netconf.xml')
-rw-r--r--schemas/netconf.xml564
1 files changed, 564 insertions, 0 deletions
diff --git a/schemas/netconf.xml b/schemas/netconf.xml
new file mode 100644
index 0000000..9294c77
--- /dev/null
+++ b/schemas/netconf.xml
@@ -0,0 +1,564 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
+ targetNamespace="urn:ietf:params:xml:ns:netconf:base:1.0"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified"
+ xml:lang="en">
+ <!--
+ import standard XML definitions
+ -->
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/xml.xsd">
+ <xs:annotation>
+ <xs:documentation>
+ This import accesses the xml: attribute groups for the
+ xml:lang as declared on the error-message element.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:import>
+ <!--
+ message-id attribute
+ -->
+ <xs:simpleType name="messageIdType">
+ <xs:restriction base="xs:string">
+ <xs:maxLength value="4095"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!--
+ Types used for session-id
+ -->
+ <xs:simpleType name="SessionId">
+ <xs:restriction base="xs:unsignedInt">
+ <xs:minInclusive value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="SessionIdOrZero">
+ <xs:restriction base="xs:unsignedInt"/>
+ </xs:simpleType>
+ <!--
+ <rpc> element
+ -->
+ <xs:complexType name="rpcType">
+ <xs:sequence>
+ <xs:element ref="rpcOperation"/>
+
+ </xs:sequence>
+ <xs:attribute name="message-id" type="messageIdType"
+ use="required"/>
+ <!--
+ Arbitrary attributes can be supplied with <rpc> element.
+ -->
+ <xs:anyAttribute processContents="lax"/>
+ </xs:complexType>
+ <xs:element name="rpc" type="rpcType"/>
+ <!--
+ data types and elements used to construct rpc-errors
+ -->
+ <xs:simpleType name="ErrorType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="transport"/>
+ <xs:enumeration value="rpc"/>
+ <xs:enumeration value="protocol"/>
+ <xs:enumeration value="application"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ErrorTag">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="in-use"/>
+ <xs:enumeration value="invalid-value"/>
+ <xs:enumeration value="too-big"/>
+ <xs:enumeration value="missing-attribute"/>
+ <xs:enumeration value="bad-attribute"/>
+ <xs:enumeration value="unknown-attribute"/>
+ <xs:enumeration value="missing-element"/>
+ <xs:enumeration value="bad-element"/>
+ <xs:enumeration value="unknown-element"/>
+ <xs:enumeration value="unknown-namespace"/>
+ <xs:enumeration value="access-denied"/>
+ <xs:enumeration value="lock-denied"/>
+ <xs:enumeration value="resource-denied"/>
+ <xs:enumeration value="rollback-failed"/>
+ <xs:enumeration value="data-exists"/>
+ <xs:enumeration value="data-missing"/>
+ <xs:enumeration value="operation-not-supported"/>
+ <xs:enumeration value="operation-failed"/>
+ <xs:enumeration value="partial-operation"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="ErrorSeverity">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="error"/>
+ <xs:enumeration value="warning"/>
+ </xs:restriction>
+
+ </xs:simpleType>
+ <xs:complexType name="errorInfoType">
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="session-id" type="SessionIdOrZero"/>
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
+ <xs:sequence>
+ <xs:element name="bad-attribute" type="xs:QName"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="bad-element" type="xs:QName"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="ok-element" type="xs:QName"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="err-element" type="xs:QName"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="noop-element" type="xs:QName"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="bad-namespace" type="xs:QName"
+ minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ </xs:sequence>
+ </xs:choice>
+ <!-- elements from any other namespace are also allowed
+ to follow the NETCONF elements -->
+ <xs:any namespace="##other"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="rpcErrorType">
+ <xs:sequence>
+ <xs:element name="error-type" type="ErrorType"/>
+ <xs:element name="error-tag" type="ErrorTag"/>
+ <xs:element name="error-severity" type="ErrorSeverity"/>
+ <xs:element name="error-app-tag" type="xs:string"
+ minOccurs="0"/>
+ <xs:element name="error-path" type="xs:string" minOccurs="0"/>
+ <xs:element name="error-message" minOccurs="0">
+ <xs:complexType>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute ref="xml:lang" use="optional"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="error-info" type="errorInfoType"
+ minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ <!--
+ <rpc-reply> element
+ -->
+ <xs:complexType name="rpcReplyType">
+ <xs:choice>
+ <xs:element name="ok"/>
+ <xs:group ref="rpcResponse"/>
+ </xs:choice>
+ <xs:attribute name="message-id" type="messageIdType"
+ use="optional"/>
+ <!--
+ Any attributes supplied with <rpc> element must be returned
+ on <rpc-reply>.
+ -->
+ <xs:anyAttribute processContents="lax"/>
+ </xs:complexType>
+ <xs:group name="rpcResponse">
+ <xs:sequence>
+ <xs:element name="rpc-error" type="rpcErrorType"
+ minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="data" type="dataInlineType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:group>
+ <xs:element name="rpc-reply" type="rpcReplyType"/>
+ <!--
+ Type for <test-option> parameter to <edit-config>
+ -->
+ <xs:simpleType name="testOptionType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="test-then-set"/>
+ <xs:enumeration value="set"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!--
+ Type for <error-option> parameter to <edit-config>
+ -->
+ <xs:simpleType name="errorOptionType">
+ <xs:restriction base="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ Use of the rollback-on-error value requires
+ the :rollback-on-error capability.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:enumeration value="stop-on-error"/>
+ <xs:enumeration value="continue-on-error"/>
+ <xs:enumeration value="rollback-on-error"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!--
+ rpcOperationType: used as a base type for all
+ NETCONF operations
+ -->
+ <xs:complexType name="rpcOperationType"/>
+ <xs:element name="rpcOperation"
+ type="rpcOperationType" abstract="true"/>
+ <!--
+ Type for <config> element
+ -->
+ <xs:complexType name="configInlineType">
+ <xs:complexContent>
+ <xs:extension base="xs:anyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <!--
+ Type for <data> element
+ -->
+ <xs:complexType name="dataInlineType">
+ <xs:complexContent>
+ <xs:extension base="xs:anyType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <!--
+ Type for <filter> element
+ -->
+ <xs:simpleType name="FilterType">
+ <xs:restriction base="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ Use of the xpath value requires the :xpath capability.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:enumeration value="subtree"/>
+ <xs:enumeration value="xpath"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="filterInlineType">
+ <xs:complexContent>
+ <xs:extension base="xs:anyType">
+ <xs:attribute name="type"
+ type="FilterType" default="subtree"/>
+ <!-- if type="xpath", the xpath expression
+ appears in the select element -->
+ <xs:attribute name="select"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <!--
+ configuration datastore names
+ -->
+ <xs:annotation>
+ <xs:documentation>
+ The startup datastore can be used only if the :startup
+ capability is advertised. The candidate datastore can
+ be used only if the :candidate datastore is advertised.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexType name="configNameType"/>
+ <xs:element name="config-name"
+ type="configNameType" abstract="true"/>
+ <xs:element name="startup" type="configNameType"
+ substitutionGroup="config-name"/>
+ <xs:element name="candidate" type="configNameType"
+ substitutionGroup="config-name"/>
+ <xs:element name="running" type="configNameType"
+ substitutionGroup="config-name"/>
+ <!--
+ operation attribute used in <edit-config>
+ -->
+ <xs:simpleType name="editOperationType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="merge"/>
+ <xs:enumeration value="replace"/>
+ <xs:enumeration value="create"/>
+ <xs:enumeration value="delete"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:attribute name="operation"
+ type="editOperationType" default="merge"/>
+ <!--
+ <default-operation> element
+ -->
+ <xs:simpleType name="defaultOperationType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="merge"/>
+ <xs:enumeration value="replace"/>
+ <xs:enumeration value="none"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!--
+ <url> element
+ -->
+ <xs:complexType name="configURIType">
+ <xs:annotation>
+ <xs:documentation>
+ Use of the url element requires the :url capability.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:simpleContent>
+ <xs:extension base="xs:anyURI"/>
+ </xs:simpleContent>
+ </xs:complexType>
+ <!--
+ Type for <source> element (except <get-config>)
+ -->
+ <xs:complexType name="rpcOperationSourceType">
+ <xs:choice>
+ <xs:element name="config" type="configInlineType"/>
+ <xs:element ref="config-name"/>
+ <xs:element name="url" type="configURIType"/>
+ </xs:choice>
+ </xs:complexType>
+ <!--
+ Type for <source> element in <get-config>
+ -->
+ <xs:complexType name="getConfigSourceType">
+ <xs:choice>
+ <xs:element ref="config-name"/>
+ <xs:element name="url" type="configURIType"/>
+ </xs:choice>
+ </xs:complexType>
+ <!--
+ Type for <target> element
+ -->
+ <xs:complexType name="rpcOperationTargetType">
+ <xs:choice>
+ <xs:element ref="config-name"/>
+ <xs:element name="url" type="configURIType"/>
+ </xs:choice>
+ </xs:complexType>
+ <!--
+ <get-config> operation
+ -->
+ <xs:complexType name="getConfigType">
+ <xs:complexContent>
+ <xs:extension base="rpcOperationType">
+ <xs:sequence>
+ <xs:element name="source"
+ type="getConfigSourceType"/>
+ <xs:element name="filter"
+ type="filterInlineType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="get-config" type="getConfigType"
+ substitutionGroup="rpcOperation"/>
+ <!--
+ <edit-config> operation
+ -->
+ <xs:complexType name="editConfigType">
+ <xs:complexContent>
+ <xs:extension base="rpcOperationType">
+ <xs:sequence>
+ <xs:annotation>
+ <xs:documentation>
+ Use of the test-option element requires the
+ :validate capability. Use of the url element
+ requires the :url capability.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:element name="target"
+ type="rpcOperationTargetType"/>
+ <xs:element name="default-operation"
+ type="defaultOperationType"
+ minOccurs="0"/>
+ <xs:element name="test-option"
+ type="testOptionType"
+ minOccurs="0"/>
+ <xs:element name="error-option"
+ type="errorOptionType"
+ minOccurs="0"/>
+ <xs:choice>
+ <xs:element name="config"
+ type="configInlineType"/>
+ <xs:element name="url"
+ type="configURIType"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="edit-config" type="editConfigType"
+ substitutionGroup="rpcOperation"/>
+ <!--
+ <copy-config> operation
+ -->
+ <xs:complexType name="copyConfigType">
+ <xs:complexContent>
+ <xs:extension base="rpcOperationType">
+ <xs:sequence>
+ <xs:element name="target" type="rpcOperationTargetType"/>
+ <xs:element name="source" type="rpcOperationSourceType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="copy-config" type="copyConfigType"
+ substitutionGroup="rpcOperation"/>
+ <!--
+ <delete-config> operation
+ -->
+ <xs:complexType name="deleteConfigType">
+ <xs:complexContent>
+ <xs:extension base="rpcOperationType">
+ <xs:sequence>
+ <xs:element name="target" type="rpcOperationTargetType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="delete-config" type="deleteConfigType"
+ substitutionGroup="rpcOperation"/>
+ <!--
+ <get> operation
+ -->
+ <xs:complexType name="getType">
+ <xs:complexContent>
+ <xs:extension base="rpcOperationType">
+ <xs:sequence>
+ <xs:element name="filter"
+ type="filterInlineType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="get" type="getType"
+ substitutionGroup="rpcOperation"/>
+ <!--
+ <lock> operation
+ -->
+ <xs:complexType name="lockType">
+ <xs:complexContent>
+ <xs:extension base="rpcOperationType">
+ <xs:sequence>
+ <xs:element name="target"
+ type="rpcOperationTargetType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="lock" type="lockType"
+ substitutionGroup="rpcOperation"/>
+ <!--
+ <unlock> operation
+ -->
+ <xs:complexType name="unlockType">
+ <xs:complexContent>
+ <xs:extension base="rpcOperationType">
+ <xs:sequence>
+ <xs:element name="target" type="rpcOperationTargetType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="unlock" type="unlockType"
+ substitutionGroup="rpcOperation"/>
+ <!--
+ <validate> operation
+ -->
+ <xs:complexType name="validateType">
+ <xs:annotation>
+ <xs:documentation>
+ The validate operation requires the :validate capability.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="rpcOperationType">
+ <xs:sequence>
+ <xs:element name="source" type="rpcOperationSourceType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="validate" type="validateType"
+ substitutionGroup="rpcOperation"/>
+ <!--
+ <commit> operation
+ -->
+ <xs:simpleType name="confirmTimeoutType">
+ <xs:restriction base="xs:unsignedInt">
+ <xs:minInclusive value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="commitType">
+ <xs:annotation>
+ <xs:documentation>
+ The commit operation requires the :candidate capability.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="rpcOperationType">
+ <xs:sequence>
+ <xs:annotation>
+ <xs:documentation>
+ Use of the confirmed and confirm-timeout elements
+ requires the :confirmed-commit capability.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:element name="confirmed" minOccurs="0"/>
+ <xs:element name="confirm-timeout"
+ type="confirmTimeoutType"
+ minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="commit" type="commitType"
+ substitutionGroup="rpcOperation"/>
+ <!--
+ <discard-changes> operation
+ -->
+ <xs:complexType name="discardChangesType">
+ <xs:annotation>
+ <xs:documentation>
+ The discard-changes operation requires the
+ :candidate capability.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="rpcOperationType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="discard-changes"
+ type="discardChangesType"
+ substitutionGroup="rpcOperation"/>
+ <!--
+ <close-session> operation
+ -->
+ <xs:complexType name="closeSessionType">
+ <xs:complexContent>
+ <xs:extension base="rpcOperationType"/>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="close-session" type="closeSessionType"
+ substitutionGroup="rpcOperation"/>
+ <!--
+ <kill-session> operation
+ -->
+ <xs:complexType name="killSessionType">
+ <xs:complexContent>
+ <xs:extension base="rpcOperationType">
+ <xs:sequence>
+ <xs:element name="session-id"
+ type="SessionId" minOccurs="1"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="kill-session" type="killSessionType"
+ substitutionGroup="rpcOperation"/>
+ <!--
+ <hello> element
+ -->
+ <xs:element name="hello">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="capabilities">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="capability" type="xs:anyURI"
+ maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="session-id"
+ type="SessionId" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:schema>
OpenPOWER on IntegriCloud