1 <?xml version="1.0" encoding="UTF-8"?>
3 Metaproxy XML config file schemas
5 Copyright (C) 2005-2011 Index Data.
7 See the LICENSE file for details
10 The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
12 The RelaxNG XML Syntax and XML Schema are generated using 'trang':
13 trang metaproxy.rnc metaproxy.rng
14 trang metaproxy.rnc metaproxy.xsd
16 Config file validation is done using 'xmllint':
17 xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml
18 xmllint -/-schema metaproxy.xsd config-bytarget.xml
20 For information on RelaxNG see http://relaxng.org
21 see also http://books.xmlschemata.org/relaxng/
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">
42 <xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
45 <xs:element name="metaproxy">
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"/>
53 <xs:attribute name="version" use="required">
55 <xs:restriction base="xs:token">
56 <xs:enumeration value="1.0"/>
62 <xs:element name="dlpath" type="xs:string"/>
63 <xs:element name="start">
65 <xs:attribute name="route" use="required" type="xs:NCName"/>
68 <xs:element name="filters">
71 <xs:element maxOccurs="unbounded" ref="mp:filter"/>
75 <xs:element name="routes">
78 <xs:element maxOccurs="unbounded" ref="mp:route"/>
82 <xs:element name="route">
85 <xs:element maxOccurs="unbounded" ref="mp:filter"/>
87 <xs:attribute name="id" use="required" type="xs:NCName"/>
90 <xs:element name="filter">
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"/>
109 <xs:attribute name="type">
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"/>
133 <xs:attribute name="refid" type="xs:NCName"/>
134 <xs:attribute name="id" type="xs:NCName"/>
135 <xs:attribute name="name" type="xs:NCName"/>
138 <xs:attributeGroup name="filter_refid">
139 <xs:attribute name="refid" use="required" type="xs:NCName"/>