backing up
[vsorcdistro/.git] / ryu / build / lib.linux-armv7l-2.7 / ryu / lib / netconf / netconf.xsd
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"
7            xml:lang="en"
8            version="1.1">
9
10   <xs:annotation>
11     <xs:documentation>
12       This schema defines the syntax for the NETCONF Messages layer
13       messages 'hello', 'rpc', and 'rpc-reply'.
14     </xs:documentation>
15   </xs:annotation>
16
17   <!--
18       import standard XML definitions
19   -->
20   <!--
21   <xs:import namespace="http://www.w3.org/XML/1998/namespace"
22              schemaLocation="http://www.w3.org/2001/xml.xsd">
23   -->
24   <xs:import namespace="http://www.w3.org/XML/1998/namespace"
25              schemaLocation="xml.xsd">
26     <xs:annotation>
27       <xs:documentation>
28         This import accesses the xml: attribute groups for the
29         xml:lang as declared on the error-message element.
30       </xs:documentation>
31     </xs:annotation>
32   </xs:import>
33
34   <!--
35       message-id attribute
36   -->
37   <xs:simpleType name="messageIdType">
38     <xs:restriction base="xs:string">
39       <xs:maxLength value="4095"/>
40     </xs:restriction>
41   </xs:simpleType>
42
43   <!--
44       Types used for session-id
45   -->
46   <xs:simpleType name="SessionId">
47     <xs:restriction base="xs:unsignedInt">
48       <xs:minInclusive value="1"/>
49     </xs:restriction>
50   </xs:simpleType>
51   <xs:simpleType name="SessionIdOrZero">
52     <xs:restriction base="xs:unsignedInt"/>
53   </xs:simpleType>
54
55   <!--
56       <rpc> element
57   -->
58   <xs:complexType name="rpcType">
59     <xs:sequence>
60       <xs:element ref="rpcOperation"/>
61     </xs:sequence>
62     <xs:attribute name="message-id" type="messageIdType"
63                   use="required"/>
64     <!--
65         Arbitrary attributes can be supplied with <rpc> element.
66     -->
67     <xs:anyAttribute processContents="lax"/>
68   </xs:complexType>
69   <xs:element name="rpc" type="rpcType"/>
70
71   <!--
72       data types and elements used to construct rpc-errors
73   -->
74   <xs:simpleType name="ErrorType">
75     <xs:restriction base="xs:string">
76       <xs:enumeration value="transport"/>
77       <xs:enumeration value="rpc"/>
78       <xs:enumeration value="protocol"/>
79       <xs:enumeration value="application"/>
80     </xs:restriction>
81   </xs:simpleType>
82   <xs:simpleType name="ErrorTag">
83     <xs:restriction base="xs:string">
84       <xs:enumeration value="in-use"/>
85       <xs:enumeration value="invalid-value"/>
86       <xs:enumeration value="too-big"/>
87       <xs:enumeration value="missing-attribute"/>
88       <xs:enumeration value="bad-attribute"/>
89       <xs:enumeration value="unknown-attribute"/>
90       <xs:enumeration value="missing-element"/>
91       <xs:enumeration value="bad-element"/>
92       <xs:enumeration value="unknown-element"/>
93       <xs:enumeration value="unknown-namespace"/>
94       <xs:enumeration value="access-denied"/>
95       <xs:enumeration value="lock-denied"/>
96       <xs:enumeration value="resource-denied"/>
97       <xs:enumeration value="rollback-failed"/>
98       <xs:enumeration value="data-exists"/>
99       <xs:enumeration value="data-missing"/>
100       <xs:enumeration value="operation-not-supported"/>
101       <xs:enumeration value="operation-failed"/>
102       <xs:enumeration value="partial-operation"/>
103       <xs:enumeration value="malformed-message"/>
104     </xs:restriction>
105   </xs:simpleType>
106   <xs:simpleType name="ErrorSeverity">
107     <xs:restriction base="xs:string">
108       <xs:enumeration value="error"/>
109       <xs:enumeration value="warning"/>
110     </xs:restriction>
111   </xs:simpleType>
112   <xs:complexType name="errorInfoType">
113     <xs:sequence>
114       <xs:choice>
115         <xs:element name="session-id" type="SessionIdOrZero"/>
116         <xs:sequence minOccurs="0" maxOccurs="unbounded">
117           <xs:sequence>
118             <xs:element name="bad-attribute" type="xs:QName"
119                         minOccurs="0" maxOccurs="1"/>
120             <xs:element name="bad-element" type="xs:QName"
121                         minOccurs="0" maxOccurs="1"/>
122             <xs:element name="ok-element" type="xs:QName"
123                         minOccurs="0" maxOccurs="1"/>
124             <xs:element name="err-element" type="xs:QName"
125                         minOccurs="0" maxOccurs="1"/>
126             <xs:element name="noop-element" type="xs:QName"
127                         minOccurs="0" maxOccurs="1"/>
128             <xs:element name="bad-namespace" type="xs:string"
129                         minOccurs="0" maxOccurs="1"/>
130           </xs:sequence>
131         </xs:sequence>
132       </xs:choice>
133       <!-- elements from any other namespace are also allowed
134            to follow the NETCONF elements -->
135       <xs:any namespace="##other" processContents="lax"
136               minOccurs="0" maxOccurs="unbounded"/>
137     </xs:sequence>
138   </xs:complexType>
139   <xs:complexType name="rpcErrorType">
140     <xs:sequence>
141       <xs:element name="error-type" type="ErrorType"/>
142       <xs:element name="error-tag" type="ErrorTag"/>
143       <xs:element name="error-severity" type="ErrorSeverity"/>
144       <xs:element name="error-app-tag" type="xs:string"
145                   minOccurs="0"/>
146       <xs:element name="error-path" type="xs:string" minOccurs="0"/>
147       <xs:element name="error-message" minOccurs="0">
148         <xs:complexType>
149           <xs:simpleContent>
150             <xs:extension base="xs:string">
151               <xs:attribute ref="xml:lang" use="optional"/>
152             </xs:extension>
153           </xs:simpleContent>
154         </xs:complexType>
155       </xs:element>
156       <xs:element name="error-info" type="errorInfoType"
157                   minOccurs="0"/>
158     </xs:sequence>
159   </xs:complexType>
160
161   <!--
162       operation attribute used in <edit-config>
163   -->
164   <xs:simpleType name="editOperationType">
165     <xs:restriction base="xs:string">
166       <xs:enumeration value="merge"/>
167       <xs:enumeration value="replace"/>
168       <xs:enumeration value="create"/>
169       <xs:enumeration value="delete"/>
170       <xs:enumeration value="remove"/>
171     </xs:restriction>
172   </xs:simpleType>
173   <xs:attribute name="operation" type="editOperationType" default="merge"/>
174
175   <!--
176       default-operation element
177   -->
178   <xs:simpleType name="DefaultOperationType">
179     <xs:restriction base="xs:string">
180       <xs:enumeration value="merge"/>
181       <xs:enumeration value="replace"/>
182       <xs:enumeration value="none"/>
183     </xs:restriction>
184   </xs:simpleType>
185   <xs:element name="default-operation" type="DefaultOperationType"/>
186
187   <!--
188       <rpc-reply> element
189   -->
190   <xs:complexType name="rpcReplyType">
191     <xs:choice>
192       <xs:element name="ok"/>
193       <xs:sequence>
194         <xs:element ref="rpc-error"
195                     minOccurs="0" maxOccurs="unbounded"/>
196         <xs:element ref="rpcResponse"
197                     minOccurs="0" maxOccurs="unbounded"/>
198       </xs:sequence>
199       <xs:element ref="data" minOccurs="0"/>
200     </xs:choice>
201     <xs:attribute name="message-id" type="messageIdType"
202                   use="optional"/>
203     <!--
204         Any attributes supplied with <rpc> element must be returned
205         on <rpc-reply>.
206     -->
207     <xs:anyAttribute processContents="lax"/>
208   </xs:complexType>
209   <xs:element name="rpc-reply" type="rpcReplyType"/>
210
211   <xs:complexType name="dataInlineType">
212     <xs:complexContent>
213       <xs:extension base="xs:anyType"/>
214     </xs:complexContent>
215   </xs:complexType>
216   <xs:element name="data" type="dataInlineType"/>
217
218   <!--
219       <rpc-error> element
220   -->
221   <xs:element name="rpc-error" type="rpcErrorType"/>
222
223   <!--
224       rpcOperationType: used as a base type for all
225       NETCONF operations
226   -->
227   <xs:complexType name="rpcOperationType"/>
228   <xs:element name="rpcOperation" type="rpcOperationType"
229               abstract="true"/>
230
231   <!--
232       rpcResponseType: used as a base type for all
233       NETCONF responses
234   -->
235   <xs:complexType name="rpcResponseType"/>
236   <xs:element name="rpcResponse" type="rpcResponseType"
237               abstract="true"/>
238
239   <!--
240       <hello> element
241   -->
242   <xs:element name="hello">
243     <xs:complexType>
244       <xs:sequence>
245         <xs:element name="capabilities">
246           <xs:complexType>
247             <xs:sequence>
248               <xs:element name="capability" type="xs:anyURI"
249                           maxOccurs="unbounded"/>
250             </xs:sequence>
251           </xs:complexType>
252         </xs:element>
253         <xs:element name="session-id" type="SessionId"
254                     minOccurs="0"/>
255       </xs:sequence>
256     </xs:complexType>
257   </xs:element>
258
259   <!--
260       <config> element
261   -->
262   <xs:complexType name="configInlineType">
263     <xs:complexContent>
264       <xs:extension base="xs:anyType"/>
265     </xs:complexContent>
266   </xs:complexType>
267   <xs:element name="config" type="configInlineType"/>
268
269   <!--
270       Configuration datastore names
271   -->
272   <xs:complexType name="configNameType"/>
273   <xs:element name="config-name" type="configNameType"
274               abstract="true"/>
275   <xs:element name="startup" type="configNameType"
276               substitutionGroup="config-name"/>
277   <xs:element name="candidate" type="configNameType"
278               substitutionGroup="config-name"/>
279   <xs:element name="running" type="configNameType"
280               substitutionGroup="config-name"/>
281
282   <!--
283       <url> element
284   -->
285   <xs:complexType name="configUriType">
286     <xs:simpleContent>
287       <xs:extension base="xs:anyURI"/>
288     </xs:simpleContent>
289   </xs:complexType>
290   <xs:element name="url" type="configUriType"/>
291
292   <!--
293       <source> element
294   -->
295   <xs:complexType name="rpcOperationSourceType">
296     <xs:choice>
297       <xs:element ref="config"/>
298       <xs:element ref="config-name"/>
299       <xs:element ref="url"/>
300     </xs:choice>
301   </xs:complexType>
302   <xs:element name="source" type="rpcOperationSourceType"/>
303
304   <!--
305       <target> element
306   -->
307   <xs:complexType name="rpcOperationTargetType">
308     <xs:choice>
309       <xs:element ref="config-name"/>
310       <xs:element ref="url"/>
311     </xs:choice>
312   </xs:complexType>
313   <xs:element name="target" type="rpcOperationTargetType"/>
314
315   <!--
316       <filter> element
317   -->
318   <xs:simpleType name="FilterType">
319     <xs:restriction base="xs:string">
320       <xs:enumeration value="subtree"/>
321       <xs:enumeration value="xpath"/>
322     </xs:restriction>
323   </xs:simpleType>
324   <xs:complexType name="filterInlineType">
325     <xs:complexContent>
326       <xs:extension base="xs:anyType">
327         <xs:attribute name="type" type="FilterType"
328                       default="subtree"/>
329       </xs:extension>
330     </xs:complexContent>
331   </xs:complexType>
332   <xs:element name="filter" type="filterInlineType"/>
333
334   <!--
335       test-option> parameter to <edit-config>
336   -->
337   <xs:simpleType name="testOptionType">
338     <xs:restriction base="xs:string">
339       <xs:enumeration value="test-then-set"/>
340       <xs:enumeration value="set"/>
341     </xs:restriction>
342   </xs:simpleType>
343   <xs:element name="test-option" type="testOptionType"/>
344
345   <!--
346       <error-option> parameter to <edit-config>
347   -->
348   <xs:simpleType name="errorOptionType">
349     <xs:restriction base="xs:string">
350       <xs:enumeration value="stop-on-error"/>
351       <xs:enumeration value="ignore-error"/>
352       <xs:enumeration value="rollback-on-error"/>
353     </xs:restriction>
354   </xs:simpleType>
355   <xs:element name="error-option" type="errorOptionType"/>
356
357   <!--
358       <get> operation
359   -->
360   <xs:complexType name="getType">
361     <xs:complexContent>
362       <xs:extension base="rpcOperationType">
363         <xs:sequence>
364           <xs:element ref="filter" minOccurs="0" maxOccurs="1"/>
365         </xs:sequence>
366       </xs:extension>
367     </xs:complexContent>
368   </xs:complexType>
369   <xs:element name="get" type="getType" substitutionGroup="rpcOperation"/>
370
371   <!--
372       <get-config> operation
373   -->
374   <xs:complexType name="getConfigType">
375     <xs:complexContent>
376       <xs:extension base="rpcOperationType">
377         <xs:sequence>
378           <xs:element ref="source"/>
379           <xs:element ref="filter" minOccurs="0" maxOccurs="1"/>
380         </xs:sequence>
381       </xs:extension>
382     </xs:complexContent>
383   </xs:complexType>
384   <xs:element name="get-config" type="getConfigType"
385               substitutionGroup="rpcOperation"/>
386
387   <!--
388       <edit-config> operation
389   -->
390   <xs:complexType name="editConfigType">
391     <xs:complexContent>
392       <xs:extension base="rpcOperationType">
393         <xs:sequence>
394           <xs:element ref="target"/>
395           <xs:element ref="default-operation" minOccurs="0"/>
396           <xs:element ref="test-option" minOccurs="0"/>
397           <xs:element ref="error-option" minOccurs="0"/>
398           <xs:element ref="config" minOccurs="0"/>
399         </xs:sequence>
400       </xs:extension>
401     </xs:complexContent>
402   </xs:complexType>
403   <xs:element name="edit-config" type="editConfigType"
404               substitutionGroup="rpcOperation"/>
405
406   <!--
407       <copy-config> operation
408   -->
409   <xs:complexType name="copyConfigType">
410     <xs:complexContent>
411       <xs:extension base="rpcOperationType">
412         <xs:sequence>
413           <xs:element ref="source"/>
414           <xs:element ref="target"/>
415         </xs:sequence>
416       </xs:extension>
417     </xs:complexContent>
418   </xs:complexType>
419   <xs:element name="copy-config" type="copyConfigType"
420               substitutionGroup="rpcOperation"/>
421
422   <!--
423       <delete-config> operation
424   -->
425   <xs:complexType name="delete-configType">
426     <xs:complexContent>
427       <xs:extension base="rpcOperationType">
428         <xs:sequence>
429           <xs:element ref="target"/>
430         </xs:sequence>
431       </xs:extension>
432     </xs:complexContent>
433   </xs:complexType>
434   <xs:element name="delete-config" type="delete-configType"
435               substitutionGroup="rpcOperation"/>
436
437   <!--
438       <lock> operation
439   -->
440   <xs:complexType name="lockType">
441     <xs:complexContent>
442       <xs:extension base="rpcOperationType">
443         <xs:sequence>
444           <xs:element ref="target"/>
445         </xs:sequence>
446       </xs:extension>
447     </xs:complexContent>
448   </xs:complexType>
449   <xs:element name="lock" type="lockType"
450               substitutionGroup="rpcOperation"/>
451
452   <!--
453       <unlock> operation
454   -->
455   <xs:complexType name="unlockType">
456     <xs:complexContent>
457       <xs:extension base="rpcOperationType">
458         <xs:sequence>
459           <xs:element ref="target"/>
460         </xs:sequence>
461       </xs:extension>
462     </xs:complexContent>
463   </xs:complexType>
464   <xs:element name="unlock" type="unlockType"
465               substitutionGroup="rpcOperation"/>
466
467   <!--
468       <validate> operation
469   -->
470   <xs:complexType name="validateType">
471     <xs:complexContent>
472       <xs:extension base="rpcOperationType">
473         <xs:sequence>
474           <xs:element ref="source"/>
475         </xs:sequence>
476       </xs:extension>
477     </xs:complexContent>
478   </xs:complexType>
479   <xs:element name="validate" type="validateType"
480               substitutionGroup="rpcOperation"/>
481
482   <!--
483       <commit> operation
484   -->
485   <xs:simpleType name="confirmTimeoutType">
486     <xs:restriction base="xs:unsignedInt"/>
487   </xs:simpleType>
488   <xs:simpleType name="persistIdType">
489     <xs:restriction base="xs:string"/>
490   </xs:simpleType>
491
492   <xs:complexType name="commitType">
493     <xs:complexContent>
494       <xs:extension base="rpcOperationType">
495         <xs:sequence>
496           <xs:element name="confirmed" minOccurs="0" maxOccurs="1"/>
497           <xs:element name="confirm-timeout" type="confirmTimeoutType"
498                       minOccurs="0" maxOccurs="1"/>
499           <xs:element name="persist" minOccurs="0" maxOccurs="1"/>
500           <xs:element name="persist-id" type="persistIdType"
501                       minOccurs="0" maxOccurs="1"/>
502         </xs:sequence>
503       </xs:extension>
504     </xs:complexContent>
505   </xs:complexType>
506   <xs:element name="commit" type="commitType"
507               substitutionGroup="rpcOperation"/>
508
509   <!--
510       <cancel-commit> operation
511   -->
512   <xs:complexType name="cancelCommitType">
513     <xs:complexContent>
514       <xs:extension base="rpcOperationType">
515         <xs:sequence>
516           <xs:element name="persist-id" type="persistIdType"
517                       minOccurs="0" maxOccurs="1"/>
518         </xs:sequence>
519       </xs:extension>
520     </xs:complexContent>
521   </xs:complexType>
522   <xs:element name="cancel-commit" type="cancelCommitType"
523               substitutionGroup="rpcOperation"/>
524
525   <!--
526       <discard-changes> operation
527   -->
528   <xs:complexType name="discardChangesType">
529     <xs:complexContent>
530       <xs:extension base="rpcOperationType"/>
531     </xs:complexContent>
532   </xs:complexType>
533   <xs:element name="discard-changes" type="discardChangesType"
534               substitutionGroup="rpcOperation"/>
535
536   <!--
537       <close-session> operation
538   -->
539   <xs:complexType name="closeSessionType">
540     <xs:complexContent>
541       <xs:extension base="rpcOperationType"/>
542     </xs:complexContent>
543   </xs:complexType>
544   <xs:element name="close-session" type="closeSessionType"
545               substitutionGroup="rpcOperation"/>
546
547   <!--
548       <kill-session> operation
549   -->
550   <xs:complexType name="killSessionType">
551     <xs:complexContent>
552       <xs:extension base="rpcOperationType">
553         <xs:sequence>
554           <xs:element name="session-id" minOccurs="0" maxOccurs="1"/>
555         </xs:sequence>
556       </xs:extension>
557     </xs:complexContent>
558   </xs:complexType>
559   <xs:element name="kill-session" type="killSessionType"
560               substitutionGroup="rpcOperation"/>
561
562 </xs:schema>