added first shot on relaxng schema for metaproxy
[metaproxy-moved-to-github.git] / xml / schema / metaproxy.rnc
1 # The RelaxNG Compact Syntax file is the master copy
2 # trang metaproxy.rnc metaproxy.rng 
3 # xmllint --relaxng metaproxy.rng ../../../etc/config1.xml 
4 # see also http://books.xmlschemata.org/relaxng/relax-CHP-16-SECT-2.html
5
6 default namespace = "http://indexdata.dk/yp2/config/1"
7
8 start = metaproxy
9
10 metaproxy = 
11   element yp2 {
12     element start {
13       attribute route { xsd:NCName }
14     },
15     element filters { filter+ }?,
16     element routes {
17         route+
18     }
19   }
20
21 route =  element route {
22     attribute id { xsd:NCName },
23     (filter
24      | filter_ref_id
25      )+
26 }
27
28 filter = 
29     (filter_log
30     | filter_bounce
31     | filter_frontend_net
32     | filter_z3950_client 
33     )
34
35 filter_ref_id =
36   element filter {
37     attribute refid { xsd:NCName }
38   }
39
40 filter_bounce =
41   element filter {
42     attribute type { "bounce" },
43     attribute id { xsd:NCName }?,
44     attribute name { xsd:NCName }
45   }
46
47 filter_log =
48   element filter {
49     attribute type { "log" },
50     attribute id { xsd:NCName }?,
51     attribute name { xsd:NCName }?,
52     element message { xsd:NCName }?
53   }
54
55 filter_frontend_net =
56   element filter {
57     attribute type { "frontend_net" },
58     attribute id { xsd:NCName }?,
59     attribute name { xsd:NCName }?,
60     element threads { xsd:integer },
61     element port { xsd:string }
62   }
63
64 filter_z3950_client =
65   element filter {
66     attribute type { "z3950_client" },
67     attribute id { xsd:NCName }?,
68     attribute name { xsd:NCName }?,
69     element timeout { xsd:integer }
70   }
71