123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564 |
- <?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>
|