diff options
Diffstat (limited to 'schemas/netconf.xml')
-rw-r--r-- | schemas/netconf.xml | 564 |
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> |