1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3 xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
4 targetNamespace="urn:ietf:params:xml:ns:netconf:base:1.0"
5 elementFormDefault="qualified"
6 attributeFormDefault="unqualified"
9 import standard XML definitions
11 <xs:import namespace="http://www.w3.org/XML/1998/namespace"
12 schemaLocation="http://www.w3.org/2001/xml.xsd">
16 This import accesses the xml: attribute groups for the
17 xml:lang as declared on the error-message element.
24 <xs:simpleType name="messageIdType">
25 <xs:restriction base="xs:string">
26 <xs:maxLength value="4095"/>
30 Types used for session-id
32 <xs:simpleType name="SessionId">
33 <xs:restriction base="xs:unsignedInt">
34 <xs:minInclusive value="1"/>
37 <xs:simpleType name="SessionIdOrZero">
38 <xs:restriction base="xs:unsignedInt"/>
43 <xs:complexType name="rpcType">
45 <xs:element ref="rpcOperation"/>
49 <xs:attribute name="message-id" type="messageIdType"
52 Arbitrary attributes can be supplied with <rpc> element.
54 <xs:anyAttribute processContents="lax"/>
56 <xs:element name="rpc" type="rpcType"/>
58 data types and elements used to construct rpc-errors
60 <xs:simpleType name="ErrorType">
61 <xs:restriction base="xs:string">
62 <xs:enumeration value="transport"/>
63 <xs:enumeration value="rpc"/>
64 <xs:enumeration value="protocol"/>
65 <xs:enumeration value="application"/>
68 <xs:simpleType name="ErrorTag">
69 <xs:restriction base="xs:string">
70 <xs:enumeration value="in-use"/>
71 <xs:enumeration value="invalid-value"/>
72 <xs:enumeration value="too-big"/>
73 <xs:enumeration value="missing-attribute"/>
74 <xs:enumeration value="bad-attribute"/>
75 <xs:enumeration value="unknown-attribute"/>
76 <xs:enumeration value="missing-element"/>
77 <xs:enumeration value="bad-element"/>
78 <xs:enumeration value="unknown-element"/>
79 <xs:enumeration value="unknown-namespace"/>
80 <xs:enumeration value="access-denied"/>
81 <xs:enumeration value="lock-denied"/>
82 <xs:enumeration value="resource-denied"/>
83 <xs:enumeration value="rollback-failed"/>
84 <xs:enumeration value="data-exists"/>
85 <xs:enumeration value="data-missing"/>
86 <xs:enumeration value="operation-not-supported"/>
87 <xs:enumeration value="operation-failed"/>
88 <xs:enumeration value="partial-operation"/>
91 <xs:simpleType name="ErrorSeverity">
92 <xs:restriction base="xs:string">
93 <xs:enumeration value="error"/>
94 <xs:enumeration value="warning"/>
99 <xs:complexType name="errorInfoType">
102 <xs:element name="session-id" type="SessionIdOrZero"/>
103 <xs:sequence minOccurs="0" maxOccurs="unbounded">
105 <xs:element name="bad-attribute" type="xs:QName"
106 minOccurs="0" maxOccurs="1"/>
107 <xs:element name="bad-element" type="xs:QName"
108 minOccurs="0" maxOccurs="1"/>
109 <xs:element name="ok-element" type="xs:QName"
110 minOccurs="0" maxOccurs="1"/>
111 <xs:element name="err-element" type="xs:QName"
112 minOccurs="0" maxOccurs="1"/>
113 <xs:element name="noop-element" type="xs:QName"
114 minOccurs="0" maxOccurs="1"/>
115 <xs:element name="bad-namespace" type="xs:QName"
116 minOccurs="0" maxOccurs="1"/>
120 <!-- elements from any other namespace are also allowed
121 to follow the NETCONF elements -->
122 <xs:any namespace="##other"
123 minOccurs="0" maxOccurs="unbounded"/>
126 <xs:complexType name="rpcErrorType">
128 <xs:element name="error-type" type="ErrorType"/>
129 <xs:element name="error-tag" type="ErrorTag"/>
130 <xs:element name="error-severity" type="ErrorSeverity"/>
131 <xs:element name="error-app-tag" type="xs:string"
133 <xs:element name="error-path" type="xs:string" minOccurs="0"/>
134 <xs:element name="error-message" minOccurs="0">
137 <xs:extension base="xs:string">
138 <xs:attribute ref="xml:lang" use="optional"/>
143 <xs:element name="error-info" type="errorInfoType"
152 <xs:complexType name="rpcReplyType">
154 <xs:element name="ok"/>
155 <xs:group ref="rpcResponse"/>
157 <xs:attribute name="message-id" type="messageIdType"
160 Any attributes supplied with <rpc> element must be returned
163 <xs:anyAttribute processContents="lax"/>
165 <xs:group name="rpcResponse">
167 <xs:element name="rpc-error" type="rpcErrorType"
168 minOccurs="0" maxOccurs="unbounded"/>
169 <xs:element name="data" type="dataInlineType" minOccurs="0"/>
172 <xs:element name="rpc-reply" type="rpcReplyType"/>
174 Type for <test-option> parameter to <edit-config>
176 <xs:simpleType name="testOptionType">
177 <xs:restriction base="xs:string">
178 <xs:enumeration value="test-then-set"/>
179 <xs:enumeration value="set"/>
183 Type for <error-option> parameter to <edit-config>
185 <xs:simpleType name="errorOptionType">
186 <xs:restriction base="xs:string">
189 Use of the rollback-on-error value requires
190 the :rollback-on-error capability.
193 <xs:enumeration value="stop-on-error"/>
194 <xs:enumeration value="continue-on-error"/>
195 <xs:enumeration value="rollback-on-error"/>
201 rpcOperationType: used as a base type for all
204 <xs:complexType name="rpcOperationType"/>
205 <xs:element name="rpcOperation"
206 type="rpcOperationType" abstract="true"/>
208 Type for <config> element
210 <xs:complexType name="configInlineType">
212 <xs:extension base="xs:anyType"/>
216 Type for <data> element
218 <xs:complexType name="dataInlineType">
220 <xs:extension base="xs:anyType"/>
224 Type for <filter> element
226 <xs:simpleType name="FilterType">
227 <xs:restriction base="xs:string">
230 Use of the xpath value requires the :xpath capability.
233 <xs:enumeration value="subtree"/>
234 <xs:enumeration value="xpath"/>
237 <xs:complexType name="filterInlineType">
239 <xs:extension base="xs:anyType">
240 <xs:attribute name="type"
241 type="FilterType" default="subtree"/>
242 <!-- if type="xpath", the xpath expression
243 appears in the select element -->
244 <xs:attribute name="select"/>
251 configuration datastore names
255 The startup datastore can be used only if the :startup
256 capability is advertised. The candidate datastore can
257 be used only if the :candidate datastore is advertised.
260 <xs:complexType name="configNameType"/>
261 <xs:element name="config-name"
262 type="configNameType" abstract="true"/>
263 <xs:element name="startup" type="configNameType"
264 substitutionGroup="config-name"/>
265 <xs:element name="candidate" type="configNameType"
266 substitutionGroup="config-name"/>
267 <xs:element name="running" type="configNameType"
268 substitutionGroup="config-name"/>
270 operation attribute used in <edit-config>
272 <xs:simpleType name="editOperationType">
273 <xs:restriction base="xs:string">
274 <xs:enumeration value="merge"/>
275 <xs:enumeration value="replace"/>
276 <xs:enumeration value="create"/>
277 <xs:enumeration value="delete"/>
280 <xs:attribute name="operation"
281 type="editOperationType" default="merge"/>
283 <default-operation> element
285 <xs:simpleType name="defaultOperationType">
286 <xs:restriction base="xs:string">
287 <xs:enumeration value="merge"/>
288 <xs:enumeration value="replace"/>
289 <xs:enumeration value="none"/>
295 <xs:complexType name="configURIType">
300 Use of the url element requires the :url capability.
304 <xs:extension base="xs:anyURI"/>
308 Type for <source> element (except <get-config>)
310 <xs:complexType name="rpcOperationSourceType">
312 <xs:element name="config" type="configInlineType"/>
313 <xs:element ref="config-name"/>
314 <xs:element name="url" type="configURIType"/>
318 Type for <source> element in <get-config>
320 <xs:complexType name="getConfigSourceType">
322 <xs:element ref="config-name"/>
323 <xs:element name="url" type="configURIType"/>
327 Type for <target> element
329 <xs:complexType name="rpcOperationTargetType">
331 <xs:element ref="config-name"/>
332 <xs:element name="url" type="configURIType"/>
336 <get-config> operation
338 <xs:complexType name="getConfigType">
340 <xs:extension base="rpcOperationType">
342 <xs:element name="source"
343 type="getConfigSourceType"/>
344 <xs:element name="filter"
345 type="filterInlineType" minOccurs="0"/>
352 <xs:element name="get-config" type="getConfigType"
353 substitutionGroup="rpcOperation"/>
355 <edit-config> operation
357 <xs:complexType name="editConfigType">
359 <xs:extension base="rpcOperationType">
363 Use of the test-option element requires the
364 :validate capability. Use of the url element
365 requires the :url capability.
368 <xs:element name="target"
369 type="rpcOperationTargetType"/>
370 <xs:element name="default-operation"
371 type="defaultOperationType"
373 <xs:element name="test-option"
374 type="testOptionType"
376 <xs:element name="error-option"
377 type="errorOptionType"
380 <xs:element name="config"
381 type="configInlineType"/>
382 <xs:element name="url"
383 type="configURIType"/>
389 <xs:element name="edit-config" type="editConfigType"
390 substitutionGroup="rpcOperation"/>
392 <copy-config> operation
394 <xs:complexType name="copyConfigType">
398 <xs:extension base="rpcOperationType">
400 <xs:element name="target" type="rpcOperationTargetType"/>
401 <xs:element name="source" type="rpcOperationSourceType"/>
406 <xs:element name="copy-config" type="copyConfigType"
407 substitutionGroup="rpcOperation"/>
409 <delete-config> operation
411 <xs:complexType name="deleteConfigType">
413 <xs:extension base="rpcOperationType">
415 <xs:element name="target" type="rpcOperationTargetType"/>
420 <xs:element name="delete-config" type="deleteConfigType"
421 substitutionGroup="rpcOperation"/>
425 <xs:complexType name="getType">
427 <xs:extension base="rpcOperationType">
429 <xs:element name="filter"
430 type="filterInlineType" minOccurs="0"/>
435 <xs:element name="get" type="getType"
436 substitutionGroup="rpcOperation"/>
440 <xs:complexType name="lockType">
442 <xs:extension base="rpcOperationType">
444 <xs:element name="target"
445 type="rpcOperationTargetType"/>
452 <xs:element name="lock" type="lockType"
453 substitutionGroup="rpcOperation"/>
457 <xs:complexType name="unlockType">
459 <xs:extension base="rpcOperationType">
461 <xs:element name="target" type="rpcOperationTargetType"/>
466 <xs:element name="unlock" type="unlockType"
467 substitutionGroup="rpcOperation"/>
469 <operations> operation
471 <xs:complexType name="validateType">
474 The validate operation requires the :validate capability.
478 <xs:extension base="rpcOperationType">
480 <xs:element name="source" type="rpcOperationSourceType"/>
485 <xs:element name="validate" type="validateType"
486 substitutionGroup="rpcOperation"/>
490 <xs:simpleType name="confirmTimeoutType">
491 <xs:restriction base="xs:unsignedInt">
492 <xs:minInclusive value="1"/>
495 <xs:complexType name="commitType">
500 The commit operation requires the :candidate capability.
504 <xs:extension base="rpcOperationType">
508 Use of the confirmed and confirm-timeout elements
509 requires the :confirmed-commit capability.
512 <xs:element name="confirmed" minOccurs="0"/>
513 <xs:element name="confirm-timeout"
514 type="confirmTimeoutType"
520 <xs:element name="commit" type="commitType"
521 substitutionGroup="rpcOperation"/>
523 <discard-changes> operation
525 <xs:complexType name="discardChangesType">
528 The discard-changes operation requires the
529 :candidate capability.
533 <xs:extension base="rpcOperationType"/>
536 <xs:element name="discard-changes"
537 type="discardChangesType"
538 substitutionGroup="rpcOperation"/>
540 <close-session> operation
542 <xs:complexType name="closeSessionType">
544 <xs:extension base="rpcOperationType"/>
549 <xs:element name="close-session" type="closeSessionType"
550 substitutionGroup="rpcOperation"/>
552 <kill-session> operation
554 <xs:complexType name="killSessionType">
556 <xs:extension base="rpcOperationType">
558 <xs:element name="session-id"
559 type="SessionId" minOccurs="1"/>
564 <xs:element name="kill-session" type="killSessionType"
565 substitutionGroup="rpcOperation"/>
569 <xs:element name="hello">
572 <xs:element name="capabilities">
575 <xs:element name="capability" type="xs:anyURI"
576 maxOccurs="unbounded"/>
580 <xs:element name="session-id"
581 type="SessionId" minOccurs="0"/>