Update to new logo
[yazproxy-moved-to-github.git] / etc / yazproxy.xsd
1 <?xml version="1.0"?>
2 <!-- XML Schema for YAZ proxy config file.  -->
3 <xs:schema
4   xmlns:xs="http://www.w3.org/2001/XMLSchema"
5   xmlns:exp="http://explain.z3950.org/dtd/2.0/"
6   xmlns="http://indexdata.dk/yazproxy/schema/0.9/"
7   targetNamespace="http://indexdata.dk/yazproxy/schema/0.9/"
8   >
9  <xs:import namespace="http://explain.z3950.org/dtd/2.0/" 
10       schemaLocation="zeerex-2.0.xsd"/>
11  <xs:element name="proxy">
12   <xs:complexType>
13    <xs:sequence>
14     <xs:element ref="target" minOccurs="0" maxOccurs="unbounded"/>
15     <xs:element ref="max-clients" minOccurs="0"/>
16     <xs:element ref="max-connect" minOccurs="0"/>
17     <xs:element ref="log" minOccurs="0"/>
18     <xs:element ref="module" minOccurs="0"/>
19    </xs:sequence>
20   </xs:complexType>
21  </xs:element>
22
23  <xs:element name="target">
24   <xs:complexType>
25    <xs:sequence>
26      <xs:element ref="url" minOccurs="0" maxOccurs="unbounded"/>
27      <xs:element ref="target-timeout" minOccurs="0"/>
28      <xs:element ref="client-timeout" minOccurs="0"/>
29      <xs:element ref="keepalive" minOccurs="0"/>
30      <xs:element ref="limit" minOccurs="0"/>
31      <xs:element ref="attribute" minOccurs="0" maxOccurs="unbounded"/>
32      <xs:element ref="syntax" minOccurs="0" maxOccurs="unbounded"/>
33      <xs:element ref="preinit" minOccurs="0"/>
34      <xs:element ref="exp:explain" minOccurs="0"/>
35      <xs:element ref="cql2rpn" minOccurs="0"/>
36      <xs:element ref="target-charset" minOccurs="0"/>
37      <xs:element ref="target-authentication" minOccurs="0"/>
38      <xs:element ref="client-authentication" minOccurs="0"/>
39      <xs:element ref="negotiation-charset" minOccurs="0"/>
40      <xs:element ref="negotiation-lang" minOccurs="0"/>
41    </xs:sequence>
42    <xs:attribute name="default" type="xs:string" use="optional"/>
43    <xs:attribute name="name" type="xs:string"/>
44    <xs:attribute name="database" type="xs:string"/>
45   </xs:complexType>
46  </xs:element>
47
48  <xs:element name="url" type="xs:string"/>
49  <xs:element name="target-timeout" type="xs:integer"/>
50  <xs:element name="client-timeout" type="xs:integer"/>
51  <xs:element name="bandwidth" type="xs:integer"/>
52  <xs:element name="pdu" type="xs:integer"/>
53  <xs:element name="retrieve" type="xs:integer"/>
54  <xs:element name="preinit" type="xs:integer"/>
55  <xs:element name="target-charset" type="xs:string"/>
56  <xs:element name="cql2rpn" type="xs:string"/>
57  <xs:element name="target-authentication">
58    <xs:complexType>
59     <xs:simpleContent>
60       <xs:extension base="xs:string">
61         <xs:attribute name="type" type="xs:string"/>
62       </xs:extension>
63     </xs:simpleContent>
64    </xs:complexType>
65  </xs:element>
66
67  <xs:element name="client-authentication">
68    <xs:complexType>
69     <xs:simpleContent>
70       <xs:extension base="xs:string">
71         <xs:attribute name="module" type="xs:string"/>
72         <xs:attribute name="args" type="xs:string"/>
73       </xs:extension>
74     </xs:simpleContent>
75    </xs:complexType>
76  </xs:element>
77
78  <xs:element name="negotiation-charset" type="xs:string"/>
79  <xs:element name="negotiation-lang" type="xs:string"/>
80
81  <xs:element name="keepalive">
82   <xs:complexType>
83    <xs:sequence>
84     <xs:element ref="bandwidth" minOccurs="0"/>
85     <xs:element ref="pdu" minOccurs="0"/>
86    </xs:sequence>
87   </xs:complexType>
88  </xs:element>
89  <xs:element name="limit">
90   <xs:complexType>
91    <xs:sequence>
92     <xs:element ref="bandwidth" minOccurs="0"/>
93     <xs:element ref="pdu" minOccurs="0"/>
94     <xs:element ref="retrieve" minOccurs="0"/>
95    </xs:sequence>
96   </xs:complexType>
97  </xs:element>
98  
99  <xs:element name="attribute">
100   <xs:complexType>
101    <xs:attribute name="type" type="xs:string"/>
102    <xs:attribute name="value" type="xs:string"/>
103    <xs:attribute name="error" type="xs:integer"/>
104   </xs:complexType>
105  </xs:element>
106
107  <xs:element name="syntax">
108   <xs:complexType>
109    <xs:sequence>
110     <xs:element ref="title" minOccurs="0"/>
111     <xs:element ref="name" minOccurs="0" maxOccurs="unbounded"/>
112    </xs:sequence>
113    <xs:attribute name="error" type="xs:string" />
114    <xs:attribute name="type" type="xs:string" />
115    <xs:attribute name="marcxml" type="xs:string" />
116    <xs:attribute name="identifier" type="xs:string" />
117    <xs:attribute name="stylesheet" type="xs:string" />
118    <xs:attribute name="backendtype" type="xs:string" />
119    <xs:attribute name="backendcharset" type="xs:string" />
120    <xs:attribute name="usemarconstage1" type="xs:string" />
121    <xs:attribute name="usemarconstage2" type="xs:string" />
122   </xs:complexType>
123  </xs:element>
124
125  <xs:element name="title" type="xs:string"/>
126  <xs:element name="name" type="xs:string"/>
127
128  <xs:element name="max-clients" type="xs:integer"/>
129  <xs:element name="log" type="xs:string"/>
130  <xs:element name="module" type="xs:string"/>
131
132 </xs:schema>