zoom: add facililty to dump APDUs.
[metaproxy-moved-to-github.git] / xml / schema / metaproxy.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3   Metaproxy XML config file schemas
4   
5     Copyright (C) 2005-2011 Index Data.
6   
7     See the LICENSE file for details
8   
9   
10   The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
11   
12   The RelaxNG XML Syntax and XML Schema are generated using 'trang':
13   trang metaproxy.rnc metaproxy.rng 
14   trang metaproxy.rnc metaproxy.xsd 
15   
16   Config file validation is done using 'xmllint':
17   xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
18   xmllint -/-schema metaproxy.xsd config-bytarget.xml
19   
20   For information on RelaxNG see http://relaxng.org 
21   see also http://books.xmlschemata.org/relaxng/
22 -->
23 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://indexdata.com/metaproxy" xmlns:mp="http://indexdata.com/metaproxy" xmlns:y="http://indexdata.com/yaz">
24   <xs:include schemaLocation="filter_auth_simple.xsd"/>
25   <xs:include schemaLocation="filter_cgi.xsd"/>
26   <xs:include schemaLocation="filter_cql_rpn.xsd"/>
27   <xs:include schemaLocation="filter_frontend_net.xsd"/>
28   <xs:include schemaLocation="filter_http_file.xsd"/>
29   <xs:include schemaLocation="filter_limit.xsd"/>
30   <xs:include schemaLocation="filter_log.xsd"/>
31   <xs:include schemaLocation="filter_multi.xsd"/>
32   <xs:include schemaLocation="filter_query_rewrite.xsd"/>
33   <xs:include schemaLocation="filter_session_shared.xsd"/>
34   <xs:include schemaLocation="filter_sru_z3950.xsd"/>
35   <xs:include schemaLocation="filter_virt_db.xsd"/>
36   <xs:include schemaLocation="filter_z3950_client.xsd"/>
37   <xs:include schemaLocation="filter_zoom.xsd"/>
38   <xs:import schemaLocation="local.xsd"/>
39   <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
40   <xs:complexType name="any" mixed="true">
41     <xs:sequence>
42       <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
43     </xs:sequence>
44   </xs:complexType>
45   <xs:element name="metaproxy">
46     <xs:complexType>
47       <xs:sequence>
48         <xs:element minOccurs="0" ref="mp:dlpath"/>
49         <xs:element ref="mp:start"/>
50         <xs:element minOccurs="0" ref="mp:filters"/>
51         <xs:element ref="mp:routes"/>
52       </xs:sequence>
53       <xs:attribute name="version" use="required">
54         <xs:simpleType>
55           <xs:restriction base="xs:token">
56             <xs:enumeration value="1.0"/>
57           </xs:restriction>
58         </xs:simpleType>
59       </xs:attribute>
60     </xs:complexType>
61   </xs:element>
62   <xs:element name="dlpath" type="xs:string"/>
63   <xs:element name="start">
64     <xs:complexType>
65       <xs:attribute name="route" use="required" type="xs:NCName"/>
66     </xs:complexType>
67   </xs:element>
68   <xs:element name="filters">
69     <xs:complexType>
70       <xs:sequence>
71         <xs:element maxOccurs="unbounded" ref="mp:filter"/>
72       </xs:sequence>
73     </xs:complexType>
74   </xs:element>
75   <xs:element name="routes">
76     <xs:complexType>
77       <xs:sequence>
78         <xs:element maxOccurs="unbounded" ref="mp:route"/>
79       </xs:sequence>
80     </xs:complexType>
81   </xs:element>
82   <xs:element name="route">
83     <xs:complexType>
84       <xs:sequence>
85         <xs:element maxOccurs="unbounded" ref="mp:filter"/>
86       </xs:sequence>
87       <xs:attribute name="id" use="required" type="xs:NCName"/>
88     </xs:complexType>
89   </xs:element>
90   <xs:element name="filter">
91     <xs:complexType>
92       <xs:choice minOccurs="0">
93         <xs:group ref="mp:filter_auth_simple"/>
94         <xs:group ref="mp:filter_cgi"/>
95         <xs:element ref="mp:conversion"/>
96         <xs:group ref="mp:filter_frontend_net"/>
97         <xs:group ref="mp:filter_http_file"/>
98         <xs:group ref="mp:filter_limit"/>
99         <xs:group ref="mp:filter_log"/>
100         <xs:group ref="mp:filter_multi"/>
101         <xs:element ref="mp:xslt"/>
102         <xs:element ref="filter_record_transform"/>
103         <xs:group ref="mp:filter_session_shared"/>
104         <xs:group ref="mp:filter_sru_z3950"/>
105         <xs:group ref="mp:filter_virt_db"/>
106         <xs:group ref="mp:filter_z3950_client"/>
107         <xs:group ref="mp:filter_zoom"/>
108       </xs:choice>
109       <xs:attribute name="type">
110         <xs:simpleType>
111           <xs:restriction base="xs:token">
112             <xs:enumeration value="auth_simple"/>
113             <xs:enumeration value="backend_test"/>
114             <xs:enumeration value="bounce"/>
115             <xs:enumeration value="cgi"/>
116             <xs:enumeration value="cql_rpn"/>
117             <xs:enumeration value="frontend_net"/>
118             <xs:enumeration value="http_file"/>
119             <xs:enumeration value="limit"/>
120             <xs:enumeration value="load_balance"/>
121             <xs:enumeration value="log"/>
122             <xs:enumeration value="multi"/>
123             <xs:enumeration value="query_rewrite"/>
124             <xs:enumeration value="record_transform"/>
125             <xs:enumeration value="session_shared"/>
126             <xs:enumeration value="sru_z3950"/>
127             <xs:enumeration value="virt_db"/>
128             <xs:enumeration value="z3950_client"/>
129             <xs:enumeration value="zoom"/>
130           </xs:restriction>
131         </xs:simpleType>
132       </xs:attribute>
133       <xs:attribute name="refid" type="xs:NCName"/>
134       <xs:attribute name="id" type="xs:NCName"/>
135       <xs:attribute name="name" type="xs:NCName"/>
136     </xs:complexType>
137   </xs:element>
138   <xs:attributeGroup name="filter_refid">
139     <xs:attribute name="refid" use="required" type="xs:NCName"/>
140   </xs:attributeGroup>
141 </xs:schema>