565 lines
20 KiB
XML
Executable File
565 lines
20 KiB
XML
Executable File
<?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>
|