summaryrefslogtreecommitdiff
path: root/data/schemata/component_definition.rng
blob: 4dbb5b89898ccacb2ece737f6ecc862fede3fa8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
  <!--
       component_definition.rnc: VyConf component definition XML grammar
    
       Copyright (C) 2014,2017 VyOS Development Group <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
       USA
  -->
  <start>
    <element name="component">
      <ref name="nameAttr"/>
      <ref name="versionAttr"/>
      <zeroOrMore>
        <ref name="description"/>
      </zeroOrMore>
      <zeroOrMore>
        <ref name="dependencies"/>
      </zeroOrMore>
      <ref name="executables"/>
    </element>
  </start>
  <define name="nameAttr">
    <attribute name="name"/>
  </define>
  <define name="versionAttr">
    <attribute name="version">
      <ref name="number"/>
    </attribute>
  </define>
  <define name="description">
    <element name="description">
      <text/>
    </element>
  </define>
  <define name="dependencies">
    <element name="dependencies">
      <oneOrMore>
        <ref name="dependency"/>
      </oneOrMore>
    </element>
  </define>
  <define name="dependency">
    <element name="dependency">
      <text/>
    </element>
  </define>
  <define name="executables">
    <element name="executables">
      <ref name="verify"/>
      <ref name="update"/>
      <ref name="apply"/>
    </element>
  </define>
  <define name="verify">
    <element name="verify">
      <text/>
    </element>
  </define>
  <define name="update">
    <element name="update">
      <text/>
    </element>
  </define>
  <define name="apply">
    <element name="apply">
      <text/>
    </element>
  </define>
</grammar>