summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTaniadz <tdziubenko@ukr.net>2017-10-11 15:27:22 +0300
committerTaniadz <tdziubenko@ukr.net>2017-10-11 15:27:22 +0300
commit59c1e9cec9c457917d0c7a7449ca1d5f31d37c05 (patch)
tree67deeace1ebf296d7f79da112c960f9dd37ceddf
parent63060ded3ed851d9ecc30f24e3b5cefde81c67d2 (diff)
downloadvyconf-59c1e9cec9c457917d0c7a7449ca1d5f31d37c05.tar.gz
vyconf-59c1e9cec9c457917d0c7a7449ca1d5f31d37c05.zip
T413: Make a schema for op mode (delete ownerAttr)
-rw-r--r--data/schemata/op-mode-definition.rnc11
-rw-r--r--data/schemata/op-mode-definition.rng43
2 files changed, 14 insertions, 40 deletions
diff --git a/data/schemata/op-mode-definition.rnc b/data/schemata/op-mode-definition.rnc
index 6b55997..0127612 100644
--- a/data/schemata/op-mode-definition.rnc
+++ b/data/schemata/op-mode-definition.rnc
@@ -32,7 +32,7 @@ start = element interfaceDefinition
# other nodes and must not have values
node = element node
{
- (ownerAttr? & nodeNameAttr),
+ nodeNameAttr,
(properties? & children? & command?)
}
@@ -42,7 +42,7 @@ node = element node
# They must not contain other tag nodes
tagNode = element tagNode
{
- (ownerAttr? & nodeNameAttr),
+ nodeNameAttr,
(properties? & children & command?)
}
@@ -79,12 +79,7 @@ nodeNameAttr = attribute name
text
}
-# Ordinary nodes and tag nodes can have "owner" attribute.
-# Owner is the component that is notified when node changes.
-ownerAttr = attribute owner
-{
- text
-}
+
diff --git a/data/schemata/op-mode-definition.rng b/data/schemata/op-mode-definition.rng
index 26256bd..98a231e 100644
--- a/data/schemata/op-mode-definition.rng
+++ b/data/schemata/op-mode-definition.rng
@@ -2,19 +2,19 @@
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<!--
interface_definition.rnc: VyConf reference tree XML grammar
-
+
Copyright (C) 2014. 2017 VyOS maintainers and contributors <maintainers@vyos.net>
-
+
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
-
+
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
-
+
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
@@ -40,21 +40,16 @@
-->
<define name="node">
<element name="node">
- <interleave>
- <optional>
- <ref name="ownerAttr"/>
- </optional>
- <ref name="nodeNameAttr"/>
- </interleave>
+ <ref name="nodeNameAttr"/>
<interleave>
<optional>
<ref name="properties"/>
</optional>
<optional>
- <ref name="command"/>
+ <ref name="children"/>
</optional>
<optional>
- <ref name="children"/>
+ <ref name="command"/>
</optional>
</interleave>
</element>
@@ -67,33 +62,27 @@
-->
<define name="tagNode">
<element name="tagNode">
- <interleave>
- <optional>
- <ref name="ownerAttr"/>
- </optional>
- <ref name="nodeNameAttr"/>
- </interleave>
+ <ref name="nodeNameAttr"/>
<interleave>
<optional>
<ref name="properties"/>
</optional>
+ <ref name="children"/>
<optional>
<ref name="command"/>
</optional>
- <ref name="children"/>
</interleave>
</element>
</define>
<!--
Leaf nodes are terminal configuration nodes that can't have children,
but can have values.
- Leaf node may contain one or more valueConstraint tags
-->
<define name="leafNode">
<element name="leafNode">
<ref name="nodeNameAttr"/>
- <ref name="properties"/>
<ref name="command"/>
+ <ref name="properties"/>
</element>
</define>
<!-- Normal and tag nodes may have children -->
@@ -112,7 +101,6 @@
Nodes may have properties
For simplicity, any property is allowed in any node,
but whether they are used or not is implementation-defined
-
-->
<define name="properties">
<element name="properties">
@@ -130,30 +118,21 @@
<define name="nodeNameAttr">
<attribute name="name"/>
</define>
- <!--
- Ordinary nodes and tag nodes can have "owner" attribute.
- Owner is the component that is notified when node changes.
- -->
- <define name="ownerAttr">
- <attribute name="owner"/>
- </define>
-
<!-- help tags contains brief description of the purpose of the node -->
<define name="help">
<element name="help">
<text/>
</element>
</define>
-
<define name="command">
<element name="command">
<text/>
</element>
</define>
-
<!--
completionHelp tags contain information about allowed values of a node that is used for generating
tab completion in the CLI frontend and drop-down lists in GUI frontends
+ It is only meaninful for leaf nodes
Allowed values can be given as a fixed list of values (e.g. <list>foo bar baz</list>),
as a configuration path (e.g. <path>interfaces ethernet</path>),
or as a path to a script file that generates the list (e.g. <script>/usr/lib/foo/list-things</script>