Split config schemas to separate files
authorAdam Dickmeiss <adam@indexdata.dk>
Tue, 21 Jun 2011 09:25:01 +0000 (11:25 +0200)
committerAdam Dickmeiss <adam@indexdata.dk>
Tue, 21 Jun 2011 09:25:01 +0000 (11:25 +0200)
This is to have one schema file per filter.

60 files changed:
xml/schema/MARC21slim.xsd [deleted file]
xml/schema/Makefile.am
xml/schema/filter_auth_simple.rnc [new file with mode: 0644]
xml/schema/filter_auth_simple.rng [new file with mode: 0644]
xml/schema/filter_auth_simple.xsd [new file with mode: 0644]
xml/schema/filter_backend_test.rnc [new file with mode: 0644]
xml/schema/filter_backend_test.rng [new file with mode: 0644]
xml/schema/filter_backend_test.xsd [new file with mode: 0644]
xml/schema/filter_bounce.rnc [new file with mode: 0644]
xml/schema/filter_bounce.rng [new file with mode: 0644]
xml/schema/filter_bounce.xsd [new file with mode: 0644]
xml/schema/filter_cgi.rnc [new file with mode: 0644]
xml/schema/filter_cgi.rng [new file with mode: 0644]
xml/schema/filter_cgi.xsd [new file with mode: 0644]
xml/schema/filter_cql_rpn.rnc [new file with mode: 0644]
xml/schema/filter_cql_rpn.rng [new file with mode: 0644]
xml/schema/filter_cql_rpn.xsd [new file with mode: 0644]
xml/schema/filter_frontend_net.rnc [new file with mode: 0644]
xml/schema/filter_frontend_net.rng [new file with mode: 0644]
xml/schema/filter_frontend_net.xsd [new file with mode: 0644]
xml/schema/filter_http_file.rnc [new file with mode: 0644]
xml/schema/filter_http_file.rng [new file with mode: 0644]
xml/schema/filter_http_file.xsd [new file with mode: 0644]
xml/schema/filter_limit.rnc [new file with mode: 0644]
xml/schema/filter_limit.rng [new file with mode: 0644]
xml/schema/filter_limit.xsd [new file with mode: 0644]
xml/schema/filter_load_balance.rnc [new file with mode: 0644]
xml/schema/filter_load_balance.rng [new file with mode: 0644]
xml/schema/filter_load_balance.xsd [new file with mode: 0644]
xml/schema/filter_log.rnc [new file with mode: 0644]
xml/schema/filter_log.rng [new file with mode: 0644]
xml/schema/filter_log.xsd [new file with mode: 0644]
xml/schema/filter_multi.rnc [new file with mode: 0644]
xml/schema/filter_multi.rng [new file with mode: 0644]
xml/schema/filter_multi.xsd [new file with mode: 0644]
xml/schema/filter_query_rewrite.rnc [new file with mode: 0644]
xml/schema/filter_query_rewrite.rng [new file with mode: 0644]
xml/schema/filter_query_rewrite.xsd [new file with mode: 0644]
xml/schema/filter_record_transform.rnc [new file with mode: 0644]
xml/schema/filter_record_transform.rng [new file with mode: 0644]
xml/schema/filter_record_transform.xsd [new file with mode: 0644]
xml/schema/filter_session_shared.rnc [new file with mode: 0644]
xml/schema/filter_session_shared.rng [new file with mode: 0644]
xml/schema/filter_session_shared.xsd [new file with mode: 0644]
xml/schema/filter_sru_z3950.rnc [new file with mode: 0644]
xml/schema/filter_sru_z3950.rng [new file with mode: 0644]
xml/schema/filter_sru_z3950.xsd [new file with mode: 0644]
xml/schema/filter_virt_db.rnc [new file with mode: 0644]
xml/schema/filter_virt_db.rng [new file with mode: 0644]
xml/schema/filter_virt_db.xsd [new file with mode: 0644]
xml/schema/filter_z3950_client.rnc [new file with mode: 0644]
xml/schema/filter_z3950_client.rng [new file with mode: 0644]
xml/schema/filter_z3950_client.xsd [new file with mode: 0644]
xml/schema/local.xsd [new file with mode: 0644]
xml/schema/metaproxy.rnc
xml/schema/metaproxy.rng
xml/schema/metaproxy.xsd
xml/schema/retrievalinfo.rnc
xml/schema/retrievalinfo.rng
xml/schema/retrievalinfo.xsd

diff --git a/xml/schema/MARC21slim.xsd b/xml/schema/MARC21slim.xsd
deleted file mode 100644 (file)
index 3fae866..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0"?>
-<xsd:schema targetNamespace="http://www.loc.gov/MARC21/slim" xmlns="http://www.loc.gov/MARC21/slim" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.1" xml:lang="en">
-  <xsd:annotation>
-    <xsd:documentation>
-                       MARCXML: The MARC 21 XML Schema
-                       Prepared by Corey Keith
-
-                    August 4, 2003 - Version 1.1 - Removed import of xml namespace and the use of xml:space="preserve" attributes on the leader and controlfields. 
-                    Whitespace preservation in these subfields is accomplished by the use of xsd:whiteSpace value="preserve"
-
-                       May 21, 2002 - Version 1.0  - Initial Release
-
-                       This schema supports XML markup of MARC21 records as specified in the MARC documentation (see www.loc.gov).  It allows tags with
-                       alphabetics and subfield codes that are symbols, neither of which are as yet used in  the MARC 21 communications formats, but are 
-                       allowed by MARC 21 for local data.  The schema accommodates all types of MARC 21 records: bibliographic, holdings, bibliographic 
-                       with embedded holdings, authority, classification, and community information.
-               </xsd:documentation>
-  </xsd:annotation>
-  <xsd:element name="record" type="recordType" nillable="true" id="record.e">
-    <xsd:annotation>
-      <xsd:documentation>record is a top level container element for all of the field elements which compose the record</xsd:documentation>
-    </xsd:annotation>
-  </xsd:element>
-  <xsd:element name="collection" type="collectionType" nillable="true" id="collection.e">
-    <xsd:annotation>
-      <xsd:documentation>collection is a top level container element for 0 or many records</xsd:documentation>
-    </xsd:annotation>
-  </xsd:element>
-  <xsd:complexType name="collectionType" id="collection.ct">
-    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
-      <xsd:element ref="record"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="idDataType" use="optional"/>
-  </xsd:complexType>
-  <xsd:complexType name="recordType" id="record.ct">
-    <xsd:sequence minOccurs="0">
-      <xsd:element name="leader" type="leaderFieldType"/>
-      <xsd:element name="controlfield" type="controlFieldType" minOccurs="0" maxOccurs="unbounded"/>
-      <xsd:element name="datafield" type="dataFieldType" minOccurs="0" maxOccurs="unbounded"/>
-    </xsd:sequence>
-    <xsd:attribute name="type" type="recordTypeType" use="optional"/>
-    <xsd:attribute name="id" type="idDataType" use="optional"/>
-  </xsd:complexType>
-  <xsd:simpleType name="recordTypeType" id="type.st">
-    <xsd:restriction base="xsd:NMTOKEN">
-      <xsd:enumeration value="Bibliographic"/>
-      <xsd:enumeration value="Authority"/>
-      <xsd:enumeration value="Holdings"/>
-      <xsd:enumeration value="Classification"/>
-      <xsd:enumeration value="Community"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:complexType name="leaderFieldType" id="leader.ct">
-    <xsd:annotation>
-      <xsd:documentation>MARC21 Leader, 24 bytes</xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:extension base="leaderDataType">
-        <xsd:attribute name="id" type="idDataType" use="optional"/>
-      </xsd:extension>
-    </xsd:simpleContent>
-  </xsd:complexType>
-  <xsd:simpleType name="leaderDataType" id="leader.st">
-    <xsd:restriction base="xsd:string">
-      <xsd:whiteSpace value="preserve"/>
-      <xsd:pattern value="[\d ]{5}[\dA-Za-z ]{1}[\dA-Za-z]{1}[\dA-Za-z ]{3}(2| )(2| )[\d ]{5}[\dA-Za-z ]{3}(4500|    )"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:complexType name="controlFieldType" id="controlfield.ct">
-    <xsd:annotation>
-      <xsd:documentation>MARC21 Fields 001-009</xsd:documentation>
-    </xsd:annotation>
-    <xsd:simpleContent>
-      <xsd:extension base="controlDataType">
-        <xsd:attribute name="id" type="idDataType" use="optional"/>
-        <xsd:attribute name="tag" type="controltagDataType" use="required"/>
-      </xsd:extension>
-    </xsd:simpleContent>
-  </xsd:complexType>
-  <xsd:simpleType name="controlDataType" id="controlfield.st">
-    <xsd:restriction base="xsd:string">
-      <xsd:whiteSpace value="preserve"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="controltagDataType" id="controltag.st">
-    <xsd:restriction base="xsd:string">
-      <xsd:whiteSpace value="preserve"/>
-      <xsd:pattern value="00[1-9A-Za-z]{1}"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:complexType name="dataFieldType" id="datafield.ct">
-    <xsd:annotation>
-      <xsd:documentation>MARC21 Variable Data Fields 010-999</xsd:documentation>
-    </xsd:annotation>
-    <xsd:sequence maxOccurs="unbounded">
-      <xsd:element name="subfield" type="subfieldatafieldType"/>
-    </xsd:sequence>
-    <xsd:attribute name="id" type="idDataType" use="optional"/>
-    <xsd:attribute name="tag" type="tagDataType" use="required"/>
-    <xsd:attribute name="ind1" type="indicatorDataType" use="required"/>
-    <xsd:attribute name="ind2" type="indicatorDataType" use="required"/>
-  </xsd:complexType>
-  <xsd:simpleType name="tagDataType" id="tag.st">
-    <xsd:restriction base="xsd:string">
-      <xsd:whiteSpace value="preserve"/>
-      <xsd:pattern value="(0([1-9A-Z][0-9A-Z])|0([1-9a-z][0-9a-z]))|(([1-9A-Z][0-9A-Z]{2})|([1-9a-z][0-9a-z]{2}))"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="indicatorDataType" id="ind.st">
-    <xsd:restriction base="xsd:string">
-      <xsd:whiteSpace value="preserve"/>
-      <xsd:pattern value="[\da-z ]{1}"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:complexType name="subfieldatafieldType" id="subfield.ct">
-    <xsd:simpleContent>
-      <xsd:extension base="subfieldDataType">
-        <xsd:attribute name="id" type="idDataType" use="optional"/>
-        <xsd:attribute name="code" type="subfieldcodeDataType" use="required"/>
-      </xsd:extension>
-    </xsd:simpleContent>
-  </xsd:complexType>
-  <xsd:simpleType name="subfieldDataType" id="subfield.st">
-    <xsd:restriction base="xsd:string">
-      <xsd:whiteSpace value="preserve"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="subfieldcodeDataType" id="code.st">
-    <xsd:restriction base="xsd:string">
-      <xsd:whiteSpace value="preserve"/>
-      <xsd:pattern value="[\da-z!&quot;#$%&amp;'()*+,-./:;&lt;=&gt;?{}_^`~\[\]\\]{1}"/>
-    </xsd:restriction>
-  </xsd:simpleType>
-  <xsd:simpleType name="idDataType" id="id.st">
-    <xsd:restriction base="xsd:ID"/>
-  </xsd:simpleType>
-</xsd:schema>
index e4b38b6..b58960f 100644 (file)
@@ -4,8 +4,65 @@ TRANG=trang
 
 xmlschemadatadir = $(pkgdatadir)/xml/schema
 
-schemas =  metaproxy.rnc  metaproxy.rng  metaproxy.xsd \
-   retrievalinfo.rnc  retrievalinfo.rng  retrievalinfo.xsd
+schemas =  \
+filter_auth_simple.rnc \
+filter_auth_simple.rng \
+filter_auth_simple.xsd \
+filter_backend_test.rnc \
+filter_backend_test.rng \
+filter_backend_test.xsd \
+filter_bounce.rnc \
+filter_bounce.rng \
+filter_bounce.xsd \
+filter_cgi.rnc \
+filter_cgi.rng \
+filter_cgi.xsd \
+filter_cql_rpn.rnc \
+filter_cql_rpn.rng \
+filter_cql_rpn.xsd \
+filter_frontend_net.rnc \
+filter_frontend_net.rng \
+filter_frontend_net.xsd \
+filter_http_file.rnc \
+filter_http_file.rng \
+filter_http_file.xsd \
+filter_limit.rnc \
+filter_limit.rng \
+filter_limit.xsd \
+filter_load_balance.rnc \
+filter_load_balance.rng \
+filter_load_balance.xsd \
+filter_log.rnc \
+filter_log.rng \
+filter_log.xsd \
+filter_multi.rnc \
+filter_multi.rng \
+filter_multi.xsd \
+filter_query_rewrite.rnc \
+filter_query_rewrite.rng \
+filter_query_rewrite.xsd \
+filter_record_transform.rnc \
+filter_record_transform.rng \
+filter_record_transform.xsd \
+filter_session_shared.rnc \
+filter_session_shared.rng \
+filter_session_shared.xsd \
+filter_sru_z3950.rnc \
+filter_sru_z3950.rng \
+filter_sru_z3950.xsd \
+filter_virt_db.rnc \
+filter_virt_db.rng \
+filter_virt_db.xsd \
+filter_z3950_client.rnc \
+filter_z3950_client.rng \
+filter_z3950_client.xsd \
+local.xsd \
+metaproxy.rnc \
+metaproxy.rng \
+metaproxy.xsd \
+retrievalinfo.rnc \
+retrievalinfo.rng \
+retrievalinfo.xsd
 
 xmlschemadata_DATA = $(schemas)
 
diff --git a/xml/schema/filter_auth_simple.rnc b/xml/schema/filter_auth_simple.rnc
new file mode 100644 (file)
index 0000000..f94fa04
--- /dev/null
@@ -0,0 +1,30 @@
+# Metaproxy XML config file schemas
+# 
+#   Copyright (C) 2005-2011 Index Data.
+# 
+#   See the LICENSE file for details
+# 
+# 
+# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+# 
+# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+# trang metaproxy.rnc metaproxy.rng 
+# trang metaproxy.rnc metaproxy.xsd 
+# 
+# Config file validation is done using 'xmllint':
+# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+# xmllint -/-schema metaproxy.xsd config-bytarget.xml
+# 
+# For information on RelaxNG see http://relaxng.org 
+# see also http://books.xmlschemata.org/relaxng/
+
+namespace mp = "http://indexdata.com/metaproxy"
+
+filter_auth_simple =
+  attribute type { "auth_simple" },
+  attribute id { xsd:NCName }?,
+  attribute name { xsd:NCName }?,
+  element mp:userRegister { xsd:string }?,
+  element mp:targetRegister { xsd:string }?,
+  element mp:discardUnauthorisedTargets { empty }?
diff --git a/xml/schema/filter_auth_simple.rng b/xml/schema/filter_auth_simple.rng
new file mode 100644 (file)
index 0000000..f6921da
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<grammar xmlns:mp="http://indexdata.com/metaproxy" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="filter_auth_simple">
+    <attribute name="type">
+      <value>auth_simple</value>
+    </attribute>
+    <optional>
+      <attribute name="id">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <element name="mp:userRegister">
+        <data type="string"/>
+      </element>
+    </optional>
+    <optional>
+      <element name="mp:targetRegister">
+        <data type="string"/>
+      </element>
+    </optional>
+    <optional>
+      <element name="mp:discardUnauthorisedTargets">
+        <empty/>
+      </element>
+    </optional>
+  </define>
+</grammar>
diff --git a/xml/schema/filter_auth_simple.xsd b/xml/schema/filter_auth_simple.xsd
new file mode 100644 (file)
index 0000000..2fe796c
--- /dev/null
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<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">
+  <xs:import schemaLocation="local.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+  <xs:group name="filter_auth_simple">
+    <xs:sequence>
+      <xs:element minOccurs="0" ref="mp:userRegister"/>
+      <xs:element minOccurs="0" ref="mp:targetRegister"/>
+      <xs:element minOccurs="0" ref="mp:discardUnauthorisedTargets"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:element name="userRegister" type="xs:string"/>
+  <xs:element name="targetRegister" type="xs:string"/>
+  <xs:element name="discardUnauthorisedTargets">
+    <xs:complexType/>
+  </xs:element>
+  <xs:attributeGroup name="filter_auth_simple">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="auth_simple"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="id" type="xs:NCName"/>
+    <xs:attribute name="name" type="xs:NCName"/>
+  </xs:attributeGroup>
+</xs:schema>
diff --git a/xml/schema/filter_backend_test.rnc b/xml/schema/filter_backend_test.rnc
new file mode 100644 (file)
index 0000000..6172b12
--- /dev/null
@@ -0,0 +1,26 @@
+# Metaproxy XML config file schemas
+# 
+#   Copyright (C) 2005-2011 Index Data.
+# 
+#   See the LICENSE file for details
+# 
+# 
+# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+# 
+# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+# trang metaproxy.rnc metaproxy.rng 
+# trang metaproxy.rnc metaproxy.xsd 
+# 
+# Config file validation is done using 'xmllint':
+# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+# xmllint -/-schema metaproxy.xsd config-bytarget.xml
+# 
+# For information on RelaxNG see http://relaxng.org 
+# see also http://books.xmlschemata.org/relaxng/
+
+namespace mp = "http://indexdata.com/metaproxy"
+
+filter_backend_test =
+  attribute type { "backend_test" },
+  attribute id { xsd:NCName }?,
+  attribute name { xsd:NCName }?
diff --git a/xml/schema/filter_backend_test.rng b/xml/schema/filter_backend_test.rng
new file mode 100644 (file)
index 0000000..5b6429d
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="filter_backend_test">
+    <attribute name="type">
+      <value>backend_test</value>
+    </attribute>
+    <optional>
+      <attribute name="id">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+  </define>
+</grammar>
diff --git a/xml/schema/filter_backend_test.xsd b/xml/schema/filter_backend_test.xsd
new file mode 100644 (file)
index 0000000..d11530c
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:mp="http://indexdata.com/metaproxy" xmlns:y="http://indexdata.com/yaz">
+  <xs:import namespace="http://indexdata.com/metaproxy" schemaLocation="metaproxy.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+  <xs:attributeGroup name="filter_backend_test">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="backend_test"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="id" type="xs:NCName"/>
+    <xs:attribute name="name" type="xs:NCName"/>
+  </xs:attributeGroup>
+</xs:schema>
diff --git a/xml/schema/filter_bounce.rnc b/xml/schema/filter_bounce.rnc
new file mode 100644 (file)
index 0000000..752c8a9
--- /dev/null
@@ -0,0 +1,26 @@
+# Metaproxy XML config file schemas
+# 
+#   Copyright (C) 2005-2011 Index Data.
+# 
+#   See the LICENSE file for details
+# 
+# 
+# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+# 
+# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+# trang metaproxy.rnc metaproxy.rng 
+# trang metaproxy.rnc metaproxy.xsd 
+# 
+# Config file validation is done using 'xmllint':
+# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+# xmllint -/-schema metaproxy.xsd config-bytarget.xml
+# 
+# For information on RelaxNG see http://relaxng.org 
+# see also http://books.xmlschemata.org/relaxng/
+
+namespace mp = "http://indexdata.com/metaproxy"
+
+filter_bounce =
+  attribute type { "bounce" },
+  attribute id { xsd:NCName }?,
+  attribute name { xsd:NCName }?
diff --git a/xml/schema/filter_bounce.rng b/xml/schema/filter_bounce.rng
new file mode 100644 (file)
index 0000000..847935d
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="filter_bounce">
+    <attribute name="type">
+      <value>bounce</value>
+    </attribute>
+    <optional>
+      <attribute name="id">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+  </define>
+</grammar>
diff --git a/xml/schema/filter_bounce.xsd b/xml/schema/filter_bounce.xsd
new file mode 100644 (file)
index 0000000..e338e64
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:mp="http://indexdata.com/metaproxy" xmlns:y="http://indexdata.com/yaz">
+  <xs:import namespace="http://indexdata.com/metaproxy" schemaLocation="metaproxy.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+  <xs:attributeGroup name="filter_bounce">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="bounce"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="id" type="xs:NCName"/>
+    <xs:attribute name="name" type="xs:NCName"/>
+  </xs:attributeGroup>
+</xs:schema>
diff --git a/xml/schema/filter_cgi.rnc b/xml/schema/filter_cgi.rnc
new file mode 100644 (file)
index 0000000..259c416
--- /dev/null
@@ -0,0 +1,30 @@
+# Metaproxy XML config file schemas
+# 
+#   Copyright (C) 2005-2011 Index Data.
+# 
+#   See the LICENSE file for details
+# 
+# 
+# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+# 
+# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+# trang metaproxy.rnc metaproxy.rng 
+# trang metaproxy.rnc metaproxy.xsd 
+# 
+# Config file validation is done using 'xmllint':
+# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+# xmllint -/-schema metaproxy.xsd config-bytarget.xml
+# 
+# For information on RelaxNG see http://relaxng.org 
+# see also http://books.xmlschemata.org/relaxng/
+
+namespace mp = "http://indexdata.com/metaproxy"
+
+filter_cgi =
+  attribute type { "cgi" },
+  element mp:map {
+    attribute path { xsd:string },
+    attribute exec { xsd:string }
+  }*
+
\ No newline at end of file
diff --git a/xml/schema/filter_cgi.rng b/xml/schema/filter_cgi.rng
new file mode 100644 (file)
index 0000000..ba39880
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<grammar xmlns:mp="http://indexdata.com/metaproxy" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="filter_cgi">
+    <attribute name="type">
+      <value>cgi</value>
+    </attribute>
+    <zeroOrMore>
+      <element name="mp:map">
+        <attribute name="path">
+          <data type="string"/>
+        </attribute>
+        <attribute name="exec">
+          <data type="string"/>
+        </attribute>
+      </element>
+    </zeroOrMore>
+  </define>
+</grammar>
diff --git a/xml/schema/filter_cgi.xsd b/xml/schema/filter_cgi.xsd
new file mode 100644 (file)
index 0000000..4807a7b
--- /dev/null
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<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">
+  <xs:import schemaLocation="local.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+  <xs:group name="filter_cgi">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" ref="mp:map"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:element name="map">
+    <xs:complexType>
+      <xs:attribute name="path" use="required" type="xs:string"/>
+      <xs:attribute name="exec" use="required" type="xs:string"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:attributeGroup name="filter_cgi">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="cgi"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+  </xs:attributeGroup>
+</xs:schema>
diff --git a/xml/schema/filter_cql_rpn.rnc b/xml/schema/filter_cql_rpn.rnc
new file mode 100644 (file)
index 0000000..f109e69
--- /dev/null
@@ -0,0 +1,30 @@
+# Metaproxy XML config file schemas
+# 
+#   Copyright (C) 2005-2011 Index Data.
+# 
+#   See the LICENSE file for details
+# 
+# 
+# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+# 
+# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+# trang metaproxy.rnc metaproxy.rng 
+# trang metaproxy.rnc metaproxy.xsd 
+# 
+# Config file validation is done using 'xmllint':
+# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+# xmllint -/-schema metaproxy.xsd config-bytarget.xml
+# 
+# For information on RelaxNG see http://relaxng.org 
+# see also http://books.xmlschemata.org/relaxng/
+
+namespace mp = "http://indexdata.com/metaproxy"
+
+filter_cql_rpn =
+  attribute type { "cql_rpn" },
+  attribute id { xsd:NCName }?,
+  attribute name { xsd:NCName }?,
+  element mp:conversion {
+    attribute  file { xsd:string }
+  }
+
diff --git a/xml/schema/filter_cql_rpn.rng b/xml/schema/filter_cql_rpn.rng
new file mode 100644 (file)
index 0000000..1fbb8bd
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<grammar xmlns:mp="http://indexdata.com/metaproxy" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="filter_cql_rpn">
+    <attribute name="type">
+      <value>cql_rpn</value>
+    </attribute>
+    <optional>
+      <attribute name="id">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <element name="mp:conversion">
+      <attribute name="file">
+        <data type="string"/>
+      </attribute>
+    </element>
+  </define>
+</grammar>
diff --git a/xml/schema/filter_cql_rpn.xsd b/xml/schema/filter_cql_rpn.xsd
new file mode 100644 (file)
index 0000000..cc813c4
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<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">
+  <xs:import schemaLocation="local.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+  <xs:element name="conversion">
+    <xs:complexType>
+      <xs:attribute name="file" use="required" type="xs:string"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:attributeGroup name="filter_cql_rpn">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="cql_rpn"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="id" type="xs:NCName"/>
+    <xs:attribute name="name" type="xs:NCName"/>
+  </xs:attributeGroup>
+</xs:schema>
diff --git a/xml/schema/filter_frontend_net.rnc b/xml/schema/filter_frontend_net.rnc
new file mode 100644 (file)
index 0000000..f7fc90c
--- /dev/null
@@ -0,0 +1,31 @@
+# Metaproxy XML config file schemas
+# 
+#   Copyright (C) 2005-2011 Index Data.
+# 
+#   See the LICENSE file for details
+# 
+# 
+# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+# 
+# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+# trang metaproxy.rnc metaproxy.rng 
+# trang metaproxy.rnc metaproxy.xsd 
+# 
+# Config file validation is done using 'xmllint':
+# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+# xmllint -/-schema metaproxy.xsd config-bytarget.xml
+# 
+# For information on RelaxNG see http://relaxng.org 
+# see also http://books.xmlschemata.org/relaxng/
+
+namespace mp = "http://indexdata.com/metaproxy"
+
+filter_frontend_net =
+  attribute type { "frontend_net" },
+  attribute id { xsd:NCName }?,
+  attribute name { xsd:NCName }?,
+  element mp:threads { xsd:integer }?,
+  element mp:port { xsd:string }+,
+  element mp:timeout { xsd:integer }?,
+  element mp:connect-max { xsd:integer }?
+
diff --git a/xml/schema/filter_frontend_net.rng b/xml/schema/filter_frontend_net.rng
new file mode 100644 (file)
index 0000000..9f91376
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<grammar xmlns:mp="http://indexdata.com/metaproxy" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="filter_frontend_net">
+    <attribute name="type">
+      <value>frontend_net</value>
+    </attribute>
+    <optional>
+      <attribute name="id">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <element name="mp:threads">
+        <data type="integer"/>
+      </element>
+    </optional>
+    <oneOrMore>
+      <element name="mp:port">
+        <data type="string"/>
+      </element>
+    </oneOrMore>
+    <optional>
+      <element name="mp:timeout">
+        <data type="integer"/>
+      </element>
+    </optional>
+    <optional>
+      <element name="mp:connect-max">
+        <data type="integer"/>
+      </element>
+    </optional>
+  </define>
+</grammar>
diff --git a/xml/schema/filter_frontend_net.xsd b/xml/schema/filter_frontend_net.xsd
new file mode 100644 (file)
index 0000000..de07958
--- /dev/null
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<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">
+  <xs:import schemaLocation="local.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+  <xs:group name="filter_frontend_net">
+    <xs:sequence>
+      <xs:element minOccurs="0" ref="mp:threads"/>
+      <xs:element maxOccurs="unbounded" ref="mp:port"/>
+      <xs:element minOccurs="0" ref="mp:timeout"/>
+      <xs:element minOccurs="0" ref="mp:connect-max"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:element name="threads" type="xs:integer"/>
+  <xs:element name="port" type="xs:string"/>
+  <xs:element name="timeout" type="xs:integer"/>
+  <xs:element name="connect-max" type="xs:integer"/>
+  <xs:attributeGroup name="filter_frontend_net">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="frontend_net"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="id" type="xs:NCName"/>
+    <xs:attribute name="name" type="xs:NCName"/>
+  </xs:attributeGroup>
+</xs:schema>
diff --git a/xml/schema/filter_http_file.rnc b/xml/schema/filter_http_file.rnc
new file mode 100644 (file)
index 0000000..386cd9e
--- /dev/null
@@ -0,0 +1,32 @@
+# Metaproxy XML config file schemas
+# 
+#   Copyright (C) 2005-2011 Index Data.
+# 
+#   See the LICENSE file for details
+# 
+# 
+# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+# 
+# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+# trang metaproxy.rnc metaproxy.rng 
+# trang metaproxy.rnc metaproxy.xsd 
+# 
+# Config file validation is done using 'xmllint':
+# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+# xmllint -/-schema metaproxy.xsd config-bytarget.xml
+# 
+# For information on RelaxNG see http://relaxng.org 
+# see also http://books.xmlschemata.org/relaxng/
+
+namespace mp = "http://indexdata.com/metaproxy"
+
+filter_http_file =
+  attribute type { "http_file" },
+  attribute id { xsd:NCName }?,
+  attribute name { xsd:NCName }?,
+  element mp:mimetypes { xsd:string },
+  element mp:area {
+    element mp:documentroot { xsd:string },
+    element mp:prefix { xsd:string }
+  }
+
diff --git a/xml/schema/filter_http_file.rng b/xml/schema/filter_http_file.rng
new file mode 100644 (file)
index 0000000..76c12ce
--- /dev/null
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<grammar xmlns:mp="http://indexdata.com/metaproxy" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="filter_http_file">
+    <attribute name="type">
+      <value>http_file</value>
+    </attribute>
+    <optional>
+      <attribute name="id">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <element name="mp:mimetypes">
+      <data type="string"/>
+    </element>
+    <element name="mp:area">
+      <element name="mp:documentroot">
+        <data type="string"/>
+      </element>
+      <element name="mp:prefix">
+        <data type="string"/>
+      </element>
+    </element>
+  </define>
+</grammar>
diff --git a/xml/schema/filter_http_file.xsd b/xml/schema/filter_http_file.xsd
new file mode 100644 (file)
index 0000000..c5186a4
--- /dev/null
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<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">
+  <xs:import schemaLocation="local.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+  <xs:group name="filter_http_file">
+    <xs:sequence>
+      <xs:element ref="mp:mimetypes"/>
+      <xs:element ref="mp:area"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:element name="mimetypes" type="xs:string"/>
+  <xs:element name="area">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="mp:documentroot"/>
+        <xs:element ref="mp:prefix"/>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="documentroot" type="xs:string"/>
+  <xs:element name="prefix" type="xs:string"/>
+  <xs:attributeGroup name="filter_http_file">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="http_file"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="id" type="xs:NCName"/>
+    <xs:attribute name="name" type="xs:NCName"/>
+  </xs:attributeGroup>
+</xs:schema>
diff --git a/xml/schema/filter_limit.rnc b/xml/schema/filter_limit.rnc
new file mode 100644 (file)
index 0000000..1ea375f
--- /dev/null
@@ -0,0 +1,31 @@
+# Metaproxy XML config file schemas
+# 
+#   Copyright (C) 2005-2011 Index Data.
+# 
+#   See the LICENSE file for details
+# 
+# 
+# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+# 
+# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+# trang metaproxy.rnc metaproxy.rng 
+# trang metaproxy.rnc metaproxy.xsd 
+# 
+# Config file validation is done using 'xmllint':
+# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+# xmllint -/-schema metaproxy.xsd config-bytarget.xml
+# 
+# For information on RelaxNG see http://relaxng.org 
+# see also http://books.xmlschemata.org/relaxng/
+
+namespace mp = "http://indexdata.com/metaproxy"
+
+filter_limit =
+  attribute type { "limit" },
+  element mp:limit {
+    attribute bandwidth { xsd:integer }?,
+    attribute pdu { xsd:integer }?,
+    attribute search { xsd:integer }?,
+    attribute retrieve { xsd:integer }?
+  }?
+
diff --git a/xml/schema/filter_limit.rng b/xml/schema/filter_limit.rng
new file mode 100644 (file)
index 0000000..517fec9
--- /dev/null
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<grammar xmlns:mp="http://indexdata.com/metaproxy" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="filter_limit">
+    <attribute name="type">
+      <value>limit</value>
+    </attribute>
+    <optional>
+      <element name="mp:limit">
+        <optional>
+          <attribute name="bandwidth">
+            <data type="integer"/>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="pdu">
+            <data type="integer"/>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="search">
+            <data type="integer"/>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="retrieve">
+            <data type="integer"/>
+          </attribute>
+        </optional>
+      </element>
+    </optional>
+  </define>
+</grammar>
diff --git a/xml/schema/filter_limit.xsd b/xml/schema/filter_limit.xsd
new file mode 100644 (file)
index 0000000..f1b7432
--- /dev/null
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<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">
+  <xs:import schemaLocation="local.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+  <xs:group name="filter_limit">
+    <xs:sequence>
+      <xs:element minOccurs="0" ref="mp:limit"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:element name="limit">
+    <xs:complexType>
+      <xs:attribute name="bandwidth" type="xs:integer"/>
+      <xs:attribute name="pdu" type="xs:integer"/>
+      <xs:attribute name="search" type="xs:integer"/>
+      <xs:attribute name="retrieve" type="xs:integer"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:attributeGroup name="filter_limit">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="limit"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+  </xs:attributeGroup>
+</xs:schema>
diff --git a/xml/schema/filter_load_balance.rnc b/xml/schema/filter_load_balance.rnc
new file mode 100644 (file)
index 0000000..dd80cf7
--- /dev/null
@@ -0,0 +1,27 @@
+# Metaproxy XML config file schemas
+# 
+#   Copyright (C) 2005-2011 Index Data.
+# 
+#   See the LICENSE file for details
+# 
+# 
+# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+# 
+# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+# trang metaproxy.rnc metaproxy.rng 
+# trang metaproxy.rnc metaproxy.xsd 
+# 
+# Config file validation is done using 'xmllint':
+# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+# xmllint -/-schema metaproxy.xsd config-bytarget.xml
+# 
+# For information on RelaxNG see http://relaxng.org 
+# see also http://books.xmlschemata.org/relaxng/
+
+namespace mp = "http://indexdata.com/metaproxy"
+
+filter_load_balance =
+  attribute type { "load_balance" },
+  attribute id { xsd:NCName }?,
+  attribute name { xsd:NCName }?
+
diff --git a/xml/schema/filter_load_balance.rng b/xml/schema/filter_load_balance.rng
new file mode 100644 (file)
index 0000000..f31cd8a
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="filter_load_balance">
+    <attribute name="type">
+      <value>load_balance</value>
+    </attribute>
+    <optional>
+      <attribute name="id">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+  </define>
+</grammar>
diff --git a/xml/schema/filter_load_balance.xsd b/xml/schema/filter_load_balance.xsd
new file mode 100644 (file)
index 0000000..39b9136
--- /dev/null
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:mp="http://indexdata.com/metaproxy" xmlns:y="http://indexdata.com/yaz">
+  <xs:import namespace="http://indexdata.com/metaproxy" schemaLocation="metaproxy.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+  <xs:attributeGroup name="filter_load_balance">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="load_balance"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="id" type="xs:NCName"/>
+    <xs:attribute name="name" type="xs:NCName"/>
+  </xs:attributeGroup>
+</xs:schema>
diff --git a/xml/schema/filter_log.rnc b/xml/schema/filter_log.rnc
new file mode 100644 (file)
index 0000000..962670e
--- /dev/null
@@ -0,0 +1,41 @@
+# Metaproxy XML config file schemas
+# 
+#   Copyright (C) 2005-2011 Index Data.
+# 
+#   See the LICENSE file for details
+# 
+# 
+# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+# 
+# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+# trang metaproxy.rnc metaproxy.rng 
+# trang metaproxy.rnc metaproxy.xsd 
+# 
+# Config file validation is done using 'xmllint':
+# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+# xmllint -/-schema metaproxy.xsd config-bytarget.xml
+# 
+# For information on RelaxNG see http://relaxng.org 
+# see also http://books.xmlschemata.org/relaxng/
+
+namespace mp = "http://indexdata.com/metaproxy"
+
+filter_log =
+  attribute type { "log" },
+  attribute id { xsd:NCName }?,
+  attribute name { xsd:NCName }?,
+  element mp:message { xsd:string }?,
+  element mp:time-format { xsd:string }?,
+  element mp:filename { xsd:string }?,
+  element mp:category {
+    attribute user-access { xsd:boolean }?,
+    attribute access { xsd:boolean }?,
+    attribute init-options { xsd:boolean }?,
+    attribute request-session { xsd:boolean }?,
+    attribute response-session { xsd:boolean }?,
+    attribute session { xsd:boolean }?,
+    attribute apdu { xsd:boolean }?,
+    attribute request-apdu { xsd:boolean }?,
+    attribute response-apdu { xsd:boolean }?
+  }?
+
diff --git a/xml/schema/filter_log.rng b/xml/schema/filter_log.rng
new file mode 100644 (file)
index 0000000..5b2cbaa
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<grammar xmlns:mp="http://indexdata.com/metaproxy" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="filter_log">
+    <attribute name="type">
+      <value>log</value>
+    </attribute>
+    <optional>
+      <attribute name="id">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <element name="mp:message">
+        <data type="string"/>
+      </element>
+    </optional>
+    <optional>
+      <element name="mp:time-format">
+        <data type="string"/>
+      </element>
+    </optional>
+    <optional>
+      <element name="mp:filename">
+        <data type="string"/>
+      </element>
+    </optional>
+    <optional>
+      <element name="mp:category">
+        <optional>
+          <attribute name="user-access">
+            <data type="boolean"/>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="access">
+            <data type="boolean"/>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="init-options">
+            <data type="boolean"/>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="request-session">
+            <data type="boolean"/>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="response-session">
+            <data type="boolean"/>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="session">
+            <data type="boolean"/>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="apdu">
+            <data type="boolean"/>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="request-apdu">
+            <data type="boolean"/>
+          </attribute>
+        </optional>
+        <optional>
+          <attribute name="response-apdu">
+            <data type="boolean"/>
+          </attribute>
+        </optional>
+      </element>
+    </optional>
+  </define>
+</grammar>
diff --git a/xml/schema/filter_log.xsd b/xml/schema/filter_log.xsd
new file mode 100644 (file)
index 0000000..1682ea4
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<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">
+  <xs:import schemaLocation="local.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+  <xs:group name="filter_log">
+    <xs:sequence>
+      <xs:element minOccurs="0" ref="mp:message"/>
+      <xs:element minOccurs="0" ref="mp:time-format"/>
+      <xs:element minOccurs="0" ref="mp:filename"/>
+      <xs:element minOccurs="0" ref="mp:category"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:element name="message" type="xs:string"/>
+  <xs:element name="time-format" type="xs:string"/>
+  <xs:element name="filename" type="xs:string"/>
+  <xs:element name="category">
+    <xs:complexType>
+      <xs:attribute name="user-access" type="xs:boolean"/>
+      <xs:attribute name="access" type="xs:boolean"/>
+      <xs:attribute name="init-options" type="xs:boolean"/>
+      <xs:attribute name="request-session" type="xs:boolean"/>
+      <xs:attribute name="response-session" type="xs:boolean"/>
+      <xs:attribute name="session" type="xs:boolean"/>
+      <xs:attribute name="apdu" type="xs:boolean"/>
+      <xs:attribute name="request-apdu" type="xs:boolean"/>
+      <xs:attribute name="response-apdu" type="xs:boolean"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:attributeGroup name="filter_log">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="log"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="id" type="xs:NCName"/>
+    <xs:attribute name="name" type="xs:NCName"/>
+  </xs:attributeGroup>
+</xs:schema>
diff --git a/xml/schema/filter_multi.rnc b/xml/schema/filter_multi.rnc
new file mode 100644 (file)
index 0000000..e2e8396
--- /dev/null
@@ -0,0 +1,33 @@
+# Metaproxy XML config file schemas
+# 
+#   Copyright (C) 2005-2011 Index Data.
+# 
+#   See the LICENSE file for details
+# 
+# 
+# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+# 
+# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+# trang metaproxy.rnc metaproxy.rng 
+# trang metaproxy.rnc metaproxy.xsd 
+# 
+# Config file validation is done using 'xmllint':
+# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+# xmllint -/-schema metaproxy.xsd config-bytarget.xml
+# 
+# For information on RelaxNG see http://relaxng.org 
+# see also http://books.xmlschemata.org/relaxng/
+
+namespace mp = "http://indexdata.com/metaproxy"
+
+filter_multi =
+  attribute type { "multi" },
+  attribute id { xsd:NCName }?,
+  attribute name { xsd:NCName }?,
+  element mp:target {
+    attribute route { xsd:string },
+    xsd:string
+  }*,
+  element mp:hideunavailable { empty }?,
+  element mp:mergetype { xsd:string }?
+
diff --git a/xml/schema/filter_multi.rng b/xml/schema/filter_multi.rng
new file mode 100644 (file)
index 0000000..e5c2ea7
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<grammar xmlns:mp="http://indexdata.com/metaproxy" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="filter_multi">
+    <attribute name="type">
+      <value>multi</value>
+    </attribute>
+    <optional>
+      <attribute name="id">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <zeroOrMore>
+      <element name="mp:target">
+        <attribute name="route">
+          <data type="string"/>
+        </attribute>
+        <data type="string"/>
+      </element>
+    </zeroOrMore>
+    <optional>
+      <element name="mp:hideunavailable">
+        <empty/>
+      </element>
+    </optional>
+    <optional>
+      <element name="mp:mergetype">
+        <data type="string"/>
+      </element>
+    </optional>
+  </define>
+</grammar>
diff --git a/xml/schema/filter_multi.xsd b/xml/schema/filter_multi.xsd
new file mode 100644 (file)
index 0000000..28e6e9f
--- /dev/null
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<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">
+  <xs:import schemaLocation="local.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+  <xs:group name="filter_multi">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" ref="mp:target"/>
+      <xs:element minOccurs="0" ref="mp:hideunavailable"/>
+      <xs:element minOccurs="0" ref="mp:mergetype"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:element name="target">
+    <xs:complexType>
+      <xs:simpleContent>
+        <xs:extension base="xs:string">
+          <xs:attribute name="route" use="required" type="xs:string"/>
+        </xs:extension>
+      </xs:simpleContent>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="hideunavailable">
+    <xs:complexType/>
+  </xs:element>
+  <xs:element name="mergetype" type="xs:string"/>
+  <xs:attributeGroup name="filter_multi">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="multi"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="id" type="xs:NCName"/>
+    <xs:attribute name="name" type="xs:NCName"/>
+  </xs:attributeGroup>
+</xs:schema>
diff --git a/xml/schema/filter_query_rewrite.rnc b/xml/schema/filter_query_rewrite.rnc
new file mode 100644 (file)
index 0000000..8db3bdd
--- /dev/null
@@ -0,0 +1,30 @@
+# Metaproxy XML config file schemas
+# 
+#   Copyright (C) 2005-2011 Index Data.
+# 
+#   See the LICENSE file for details
+# 
+# 
+# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+# 
+# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+# trang metaproxy.rnc metaproxy.rng 
+# trang metaproxy.rnc metaproxy.xsd 
+# 
+# Config file validation is done using 'xmllint':
+# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+# xmllint -/-schema metaproxy.xsd config-bytarget.xml
+# 
+# For information on RelaxNG see http://relaxng.org 
+# see also http://books.xmlschemata.org/relaxng/
+
+namespace mp = "http://indexdata.com/metaproxy"
+
+filter_query_rewrite =
+  attribute type { "query_rewrite" },
+  attribute id { xsd:NCName }?,
+  attribute name { xsd:NCName }?,
+  element mp:xslt { 
+        attribute stylesheet { xsd:string }
+  }
+
diff --git a/xml/schema/filter_query_rewrite.rng b/xml/schema/filter_query_rewrite.rng
new file mode 100644 (file)
index 0000000..f48798e
--- /dev/null
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<grammar xmlns:mp="http://indexdata.com/metaproxy" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="filter_query_rewrite">
+    <attribute name="type">
+      <value>query_rewrite</value>
+    </attribute>
+    <optional>
+      <attribute name="id">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <element name="mp:xslt">
+      <attribute name="stylesheet">
+        <data type="string"/>
+      </attribute>
+    </element>
+  </define>
+</grammar>
diff --git a/xml/schema/filter_query_rewrite.xsd b/xml/schema/filter_query_rewrite.xsd
new file mode 100644 (file)
index 0000000..58c0910
--- /dev/null
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<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">
+  <xs:import schemaLocation="local.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+  <xs:element name="xslt">
+    <xs:complexType>
+      <xs:attribute name="stylesheet" use="required" type="xs:string"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:attributeGroup name="filter_query_rewrite">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="query_rewrite"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="id" type="xs:NCName"/>
+    <xs:attribute name="name" type="xs:NCName"/>
+  </xs:attributeGroup>
+</xs:schema>
diff --git a/xml/schema/filter_record_transform.rnc b/xml/schema/filter_record_transform.rnc
new file mode 100644 (file)
index 0000000..518352a
--- /dev/null
@@ -0,0 +1,27 @@
+# Metaproxy XML config file schemas
+# 
+#   Copyright (C) 2005-2011 Index Data.
+# 
+#   See the LICENSE file for details
+# 
+# 
+# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+# 
+# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+# trang metaproxy.rnc metaproxy.rng 
+# trang metaproxy.rnc metaproxy.xsd 
+# 
+# Config file validation is done using 'xmllint':
+# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+# xmllint -/-schema metaproxy.xsd config-bytarget.xml
+# 
+# For information on RelaxNG see http://relaxng.org 
+# see also http://books.xmlschemata.org/relaxng/
+
+namespace mp = "http://indexdata.com/metaproxy"
+
+filter_record_transform =
+  attribute type { "record_transform" },
+  attribute id { xsd:NCName }?,
+  attribute name { xsd:NCName }?,
+  retrievalinfo 
diff --git a/xml/schema/filter_record_transform.rng b/xml/schema/filter_record_transform.rng
new file mode 100644 (file)
index 0000000..97a3e89
--- /dev/null
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="filter_record_transform">
+    <attribute name="type">
+      <value>record_transform</value>
+    </attribute>
+    <optional>
+      <attribute name="id">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <ref name="retrievalinfo"/>
+  </define>
+</grammar>
diff --git a/xml/schema/filter_record_transform.xsd b/xml/schema/filter_record_transform.xsd
new file mode 100644 (file)
index 0000000..418db23
--- /dev/null
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:mp="http://indexdata.com/metaproxy" xmlns:y="http://indexdata.com/yaz">
+  <xs:import namespace="http://indexdata.com/metaproxy" schemaLocation="metaproxy.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+  <xs:element name="filter_record_transform" abstract="true">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element maxOccurs="unbounded" ref="y:retrieval"/>
+      </xs:sequence>
+      <xs:attribute name="version" use="required">
+        <xs:simpleType>
+          <xs:restriction base="xs:token">
+            <xs:enumeration value="1.0"/>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:attributeGroup name="filter_record_transform">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="record_transform"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="id" type="xs:NCName"/>
+    <xs:attribute name="name" type="xs:NCName"/>
+  </xs:attributeGroup>
+</xs:schema>
diff --git a/xml/schema/filter_session_shared.rnc b/xml/schema/filter_session_shared.rnc
new file mode 100644 (file)
index 0000000..a476008
--- /dev/null
@@ -0,0 +1,35 @@
+# Metaproxy XML config file schemas
+# 
+#   Copyright (C) 2005-2011 Index Data.
+# 
+#   See the LICENSE file for details
+# 
+# 
+# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+# 
+# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+# trang metaproxy.rnc metaproxy.rng 
+# trang metaproxy.rnc metaproxy.xsd 
+# 
+# Config file validation is done using 'xmllint':
+# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+# xmllint -/-schema metaproxy.xsd config-bytarget.xml
+# 
+# For information on RelaxNG see http://relaxng.org 
+# see also http://books.xmlschemata.org/relaxng/
+
+namespace mp = "http://indexdata.com/metaproxy"
+
+filter_session_shared =
+  attribute type { "session_shared" },
+  attribute id { xsd:NCName }?,
+  attribute name { xsd:NCName }?,
+  element mp:resultset {
+    attribute max { xsd:integer },
+    attribute ttl { xsd:integer },
+    attribute optimizesearch { xsd:boolean }
+  }?,
+  element mp:session {
+    attribute ttl { xsd:integer }
+  }?
+
diff --git a/xml/schema/filter_session_shared.rng b/xml/schema/filter_session_shared.rng
new file mode 100644 (file)
index 0000000..be70a93
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<grammar xmlns:mp="http://indexdata.com/metaproxy" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="filter_session_shared">
+    <attribute name="type">
+      <value>session_shared</value>
+    </attribute>
+    <optional>
+      <attribute name="id">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <element name="mp:resultset">
+        <attribute name="max">
+          <data type="integer"/>
+        </attribute>
+        <attribute name="ttl">
+          <data type="integer"/>
+        </attribute>
+        <attribute name="optimizesearch">
+          <data type="boolean"/>
+        </attribute>
+      </element>
+    </optional>
+    <optional>
+      <element name="mp:session">
+        <attribute name="ttl">
+          <data type="integer"/>
+        </attribute>
+      </element>
+    </optional>
+  </define>
+</grammar>
diff --git a/xml/schema/filter_session_shared.xsd b/xml/schema/filter_session_shared.xsd
new file mode 100644 (file)
index 0000000..b649ca1
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<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">
+  <xs:import schemaLocation="local.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+  <xs:group name="filter_session_shared">
+    <xs:sequence>
+      <xs:element minOccurs="0" ref="mp:resultset"/>
+      <xs:element minOccurs="0" ref="mp:session"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:element name="resultset">
+    <xs:complexType>
+      <xs:attribute name="max" use="required" type="xs:integer"/>
+      <xs:attribute name="ttl" use="required" type="xs:integer"/>
+      <xs:attribute name="optimizesearch" use="required" type="xs:boolean"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="session">
+    <xs:complexType>
+      <xs:attribute name="ttl" use="required" type="xs:integer"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:attributeGroup name="filter_session_shared">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="session_shared"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="id" type="xs:NCName"/>
+    <xs:attribute name="name" type="xs:NCName"/>
+  </xs:attributeGroup>
+</xs:schema>
diff --git a/xml/schema/filter_sru_z3950.rnc b/xml/schema/filter_sru_z3950.rnc
new file mode 100644 (file)
index 0000000..65a54f8
--- /dev/null
@@ -0,0 +1,31 @@
+# Metaproxy XML config file schemas
+# 
+#   Copyright (C) 2005-2011 Index Data.
+# 
+#   See the LICENSE file for details
+# 
+# 
+# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+# 
+# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+# trang metaproxy.rnc metaproxy.rng 
+# trang metaproxy.rnc metaproxy.xsd 
+# 
+# Config file validation is done using 'xmllint':
+# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+# xmllint -/-schema metaproxy.xsd config-bytarget.xml
+# 
+# For information on RelaxNG see http://relaxng.org 
+# see also http://books.xmlschemata.org/relaxng/
+
+namespace mp = "http://indexdata.com/metaproxy"
+
+filter_sru_z3950 =
+  attribute type { "sru_z3950" },
+  attribute id { xsd:NCName }?,
+  attribute name { xsd:NCName }?,
+  element mp:database {  
+     attribute name { xsd:NCName },
+     any        
+  }*
+
diff --git a/xml/schema/filter_sru_z3950.rng b/xml/schema/filter_sru_z3950.rng
new file mode 100644 (file)
index 0000000..809425b
--- /dev/null
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<grammar xmlns:mp="http://indexdata.com/metaproxy" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="filter_sru_z3950">
+    <attribute name="type">
+      <value>sru_z3950</value>
+    </attribute>
+    <optional>
+      <attribute name="id">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <zeroOrMore>
+      <element name="mp:database">
+        <attribute name="name">
+          <data type="NCName"/>
+        </attribute>
+        <ref name="any"/>
+      </element>
+    </zeroOrMore>
+  </define>
+</grammar>
diff --git a/xml/schema/filter_sru_z3950.xsd b/xml/schema/filter_sru_z3950.xsd
new file mode 100644 (file)
index 0000000..beaf752
--- /dev/null
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<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">
+  <xs:import schemaLocation="local.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+  <xs:group name="filter_sru_z3950">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" ref="mp:database"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:element name="database">
+    <xs:complexType>
+      <xs:complexContent>
+        <xs:extension base="mp:any">
+          <xs:attribute name="name" use="required" type="xs:NCName"/>
+        </xs:extension>
+      </xs:complexContent>
+    </xs:complexType>
+  </xs:element>
+  <xs:attributeGroup name="filter_sru_z3950">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="sru_z3950"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="id" type="xs:NCName"/>
+    <xs:attribute name="name" type="xs:NCName"/>
+  </xs:attributeGroup>
+</xs:schema>
diff --git a/xml/schema/filter_virt_db.rnc b/xml/schema/filter_virt_db.rnc
new file mode 100644 (file)
index 0000000..58a4727
--- /dev/null
@@ -0,0 +1,36 @@
+# Metaproxy XML config file schemas
+# 
+#   Copyright (C) 2005-2011 Index Data.
+# 
+#   See the LICENSE file for details
+# 
+# 
+# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+# 
+# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+# trang metaproxy.rnc metaproxy.rng 
+# trang metaproxy.rnc metaproxy.xsd 
+# 
+# Config file validation is done using 'xmllint':
+# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+# xmllint -/-schema metaproxy.xsd config-bytarget.xml
+# 
+# For information on RelaxNG see http://relaxng.org 
+# see also http://books.xmlschemata.org/relaxng/
+
+namespace mp = "http://indexdata.com/metaproxy"
+
+filter_virt_db =
+  attribute type { "virt_db" },
+  attribute id { xsd:NCName }?,
+  attribute name { xsd:NCName }?,
+  element mp:pass-vhosts { xsd:boolean }?,
+  element mp:torus {
+    attribute url { xsd:string }
+  }?,
+  element mp:virtual {
+    attribute route { xsd:NCName }?,
+    element mp:database { xsd:string },
+    element mp:target { xsd:string }+
+  }*
+
diff --git a/xml/schema/filter_virt_db.rng b/xml/schema/filter_virt_db.rng
new file mode 100644 (file)
index 0000000..8c3a338
--- /dev/null
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<grammar xmlns:mp="http://indexdata.com/metaproxy" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="filter_virt_db">
+    <attribute name="type">
+      <value>virt_db</value>
+    </attribute>
+    <optional>
+      <attribute name="id">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <element name="mp:pass-vhosts">
+        <data type="boolean"/>
+      </element>
+    </optional>
+    <optional>
+      <element name="mp:torus">
+        <attribute name="url">
+          <data type="string"/>
+        </attribute>
+      </element>
+    </optional>
+    <zeroOrMore>
+      <element name="mp:virtual">
+        <optional>
+          <attribute name="route">
+            <data type="NCName"/>
+          </attribute>
+        </optional>
+        <element name="mp:database">
+          <data type="string"/>
+        </element>
+        <oneOrMore>
+          <element name="mp:target">
+            <data type="string"/>
+          </element>
+        </oneOrMore>
+      </element>
+    </zeroOrMore>
+  </define>
+</grammar>
diff --git a/xml/schema/filter_virt_db.xsd b/xml/schema/filter_virt_db.xsd
new file mode 100644 (file)
index 0000000..a7d329f
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<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">
+  <xs:import schemaLocation="local.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+  <xs:group name="filter_virt_db">
+    <xs:sequence>
+      <xs:element minOccurs="0" ref="mp:pass-vhosts"/>
+      <xs:element minOccurs="0" ref="mp:torus"/>
+      <xs:element minOccurs="0" maxOccurs="unbounded" ref="mp:virtual"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:element name="pass-vhosts" type="xs:boolean"/>
+  <xs:element name="torus">
+    <xs:complexType>
+      <xs:attribute name="url" use="required" type="xs:string"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="virtual">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="database" type="xs:string"/>
+        <xs:element maxOccurs="unbounded" name="target" type="xs:string"/>
+      </xs:sequence>
+      <xs:attribute name="route" type="xs:NCName"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:attributeGroup name="filter_virt_db">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="virt_db"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="id" type="xs:NCName"/>
+    <xs:attribute name="name" type="xs:NCName"/>
+  </xs:attributeGroup>
+</xs:schema>
diff --git a/xml/schema/filter_z3950_client.rnc b/xml/schema/filter_z3950_client.rnc
new file mode 100644 (file)
index 0000000..1d7d34c
--- /dev/null
@@ -0,0 +1,31 @@
+# Metaproxy XML config file schemas
+# 
+#   Copyright (C) 2005-2011 Index Data.
+# 
+#   See the LICENSE file for details
+# 
+# 
+# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+# 
+# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+# trang metaproxy.rnc metaproxy.rng 
+# trang metaproxy.rnc metaproxy.xsd 
+# 
+# Config file validation is done using 'xmllint':
+# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+# xmllint -/-schema metaproxy.xsd config-bytarget.xml
+# 
+# For information on RelaxNG see http://relaxng.org 
+# see also http://books.xmlschemata.org/relaxng/
+
+namespace mp = "http://indexdata.com/metaproxy"
+
+filter_z3950_client =
+  attribute type { "z3950_client" },
+  attribute id { xsd:NCName }?,
+  attribute name { xsd:NCName }?,
+  element mp:timeout { xsd:integer }?,
+  element mp:default_target { xsd:string }?,
+  element mp:force_target { xsd:string }?,
+  element mp:force_close { xsd:boolean }?
+
diff --git a/xml/schema/filter_z3950_client.rng b/xml/schema/filter_z3950_client.rng
new file mode 100644 (file)
index 0000000..3a1f6ee
--- /dev/null
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<grammar xmlns:mp="http://indexdata.com/metaproxy" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+  <define name="filter_z3950_client">
+    <attribute name="type">
+      <value>z3950_client</value>
+    </attribute>
+    <optional>
+      <attribute name="id">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <attribute name="name">
+        <data type="NCName"/>
+      </attribute>
+    </optional>
+    <optional>
+      <element name="mp:timeout">
+        <data type="integer"/>
+      </element>
+    </optional>
+    <optional>
+      <element name="mp:default_target">
+        <data type="string"/>
+      </element>
+    </optional>
+    <optional>
+      <element name="mp:force_target">
+        <data type="string"/>
+      </element>
+    </optional>
+    <optional>
+      <element name="mp:force_close">
+        <data type="boolean"/>
+      </element>
+    </optional>
+  </define>
+</grammar>
diff --git a/xml/schema/filter_z3950_client.xsd b/xml/schema/filter_z3950_client.xsd
new file mode 100644 (file)
index 0000000..a60934b
--- /dev/null
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Metaproxy XML config file schemas
+  
+    Copyright (C) 2005-2011 Index Data.
+  
+    See the LICENSE file for details
+  
+  
+  The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
+  
+  The RelaxNG XML Syntax and XML Schema are generated using 'trang':
+  trang metaproxy.rnc metaproxy.rng 
+  trang metaproxy.rnc metaproxy.xsd 
+  
+  Config file validation is done using 'xmllint':
+  xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
+  xmllint -/-schema metaproxy.xsd config-bytarget.xml
+  
+  For information on RelaxNG see http://relaxng.org 
+  see also http://books.xmlschemata.org/relaxng/
+-->
+<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">
+  <xs:import schemaLocation="local.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+  <xs:group name="filter_z3950_client">
+    <xs:sequence>
+      <xs:element minOccurs="0" ref="mp:timeout"/>
+      <xs:element minOccurs="0" ref="mp:default_target"/>
+      <xs:element minOccurs="0" ref="mp:force_target"/>
+      <xs:element minOccurs="0" ref="mp:force_close"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:element name="default_target" type="xs:string"/>
+  <xs:element name="force_target" type="xs:string"/>
+  <xs:element name="force_close" type="xs:boolean"/>
+  <xs:attributeGroup name="filter_z3950_client">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="z3950_client"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="id" type="xs:NCName"/>
+    <xs:attribute name="name" type="xs:NCName"/>
+  </xs:attributeGroup>
+</xs:schema>
diff --git a/xml/schema/local.xsd b/xml/schema/local.xsd
new file mode 100644 (file)
index 0000000..eea7398
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:mp="http://indexdata.com/metaproxy" xmlns:y="http://indexdata.com/yaz">
+  <xs:include schemaLocation="filter_backend_test.xsd"/>
+  <xs:include schemaLocation="filter_bounce.xsd"/>
+  <xs:include schemaLocation="filter_load_balance.xsd"/>
+  <xs:include schemaLocation="filter_record_transform.xsd"/>
+  <xs:import namespace="http://indexdata.com/metaproxy" schemaLocation="metaproxy.xsd"/>
+  <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
+</xs:schema>
index 12a44b3..14295ad 100644 (file)
@@ -1,6 +1,6 @@
 # Metaproxy XML config file schemas
 # 
-#   Copyright (c) 2005-2008 Index Data.
+#   Copyright (C) 2005-2011 Index Data.
 # 
 #   See the LICENSE file for details
 # 
 # For information on RelaxNG see http://relaxng.org 
 # see also http://books.xmlschemata.org/relaxng/
 
-
 namespace mp = "http://indexdata.com/metaproxy"
 
 start |= metaproxy
 
 include "retrievalinfo.rnc"
+include "filter_auth_simple.rnc"
+include "filter_backend_test.rnc"
+include "filter_bounce.rnc"
+include "filter_cgi.rnc"
+include "filter_cql_rpn.rnc"
+include "filter_frontend_net.rnc"
+include "filter_http_file.rnc"
+include "filter_limit.rnc"
+include "filter_load_balance.rnc"
+include "filter_log.rnc"
+include "filter_multi.rnc"
+include "filter_query_rewrite.rnc"
+include "filter_record_transform.rnc"
+include "filter_session_shared.rnc"
+include "filter_sru_z3950.rnc"
+include "filter_virt_db.rnc"
+include "filter_z3950_client.rnc"
 
 any = (text | element * { attribute * { text }*, any })*
 
@@ -64,173 +80,7 @@ filter =
     | filter_sru_z3950
     | filter_virt_db
     | filter_z3950_client
-#    | filter_zeerex_explain
   }
 
 filter_refid = attribute refid { xsd:NCName }
 
-filter_auth_simple =
-  attribute type { "auth_simple" },
-  attribute id { xsd:NCName }?,
-  attribute name { xsd:NCName }?,
-  element mp:userRegister { xsd:string }?,
-  element mp:targetRegister { xsd:string }?,
-  element mp:discardUnauthorisedTargets { empty }?
-
-filter_backend_test =
-  attribute type { "backend_test" },
-  attribute id { xsd:NCName }?,
-  attribute name { xsd:NCName }?
-
-filter_bounce =
-  attribute type { "bounce" },
-  attribute id { xsd:NCName }?,
-  attribute name { xsd:NCName }?
-
-filter_cql_rpn =
-  attribute type { "cql_rpn" },
-  attribute id { xsd:NCName }?,
-  attribute name { xsd:NCName }?,
-  element mp:conversion {
-    attribute  file { xsd:string }
-  }
-
-filter_frontend_net =
-  attribute type { "frontend_net" },
-  attribute id { xsd:NCName }?,
-  attribute name { xsd:NCName }?,
-  element mp:threads { xsd:integer }?,
-  element mp:port { xsd:string }+,
-  element mp:timeout { xsd:integer }?,
-  element mp:connect-max { xsd:integer }?
-
-filter_http_file =
-  attribute type { "http_file" },
-  attribute id { xsd:NCName }?,
-  attribute name { xsd:NCName }?,
-  element mp:mimetypes { xsd:string },
-  element mp:area {
-    element mp:documentroot { xsd:string },
-    element mp:prefix { xsd:string }
-  }
-
-filter_load_balance =
-  attribute type { "load_balance" },
-  attribute id { xsd:NCName }?,
-  attribute name { xsd:NCName }?
-
-filter_log =
-  attribute type { "log" },
-  attribute id { xsd:NCName }?,
-  attribute name { xsd:NCName }?,
-  element mp:message { xsd:string }?,
-  element mp:time-format { xsd:string }?,
-  element mp:filename { xsd:string }?,
-  element mp:category {
-    attribute user-access { xsd:boolean }?,
-    attribute access { xsd:boolean }?,
-    attribute init-options { xsd:boolean }?,
-    attribute request-session { xsd:boolean }?,
-    attribute response-session { xsd:boolean }?,
-    attribute session { xsd:boolean }?,
-    attribute apdu { xsd:boolean }?,
-    attribute request-apdu { xsd:boolean }?,
-    attribute response-apdu { xsd:boolean }?
-  }?
-
-filter_multi =
-  attribute type { "multi" },
-  attribute id { xsd:NCName }?,
-  attribute name { xsd:NCName }?,
-  element mp:target {
-    attribute route { xsd:string },
-    xsd:string
-  }*,
-  element mp:hideunavailable { empty }?,
-  element mp:mergetype { xsd:string }?
-
-filter_query_rewrite =
-  attribute type { "query_rewrite" },
-  attribute id { xsd:NCName }?,
-  attribute name { xsd:NCName }?,
-  element mp:xslt { 
-        attribute stylesheet { xsd:string }
-  }
-
-filter_record_transform =
-  attribute type { "record_transform" },
-  attribute id { xsd:NCName }?,
-  attribute name { xsd:NCName }?,
-  retrievalinfo 
-
-filter_session_shared =
-  attribute type { "session_shared" },
-  attribute id { xsd:NCName }?,
-  attribute name { xsd:NCName }?,
-  element mp:resultset {
-    attribute max { xsd:integer },
-    attribute ttl { xsd:integer },
-    attribute optimizesearch { xsd:boolean }
-  }?,
-  element mp:session {
-    attribute ttl { xsd:integer }
-  }?
-
-filter_sru_z3950 =
-  attribute type { "sru_z3950" },
-  attribute id { xsd:NCName }?,
-  attribute name { xsd:NCName }?,
-  element mp:database {  
-     attribute name { xsd:NCName },
-     any        
-  }*
-
-filter_virt_db =
-  attribute type { "virt_db" },
-  attribute id { xsd:NCName }?,
-  attribute name { xsd:NCName }?,
-  element mp:pass-vhosts { xsd:boolean }?,
-  element mp:torus {
-    attribute url { xsd:string }
-  }?,
-  element mp:virtual {
-    attribute route { xsd:NCName }?,
-    element mp:database { xsd:string },
-    element mp:target { xsd:string }+
-  }*
-
-filter_z3950_client =
-  attribute type { "z3950_client" },
-  attribute id { xsd:NCName }?,
-  attribute name { xsd:NCName }?,
-  element mp:timeout { xsd:integer }?,
-  element mp:default_target { xsd:string }?,
-  element mp:force_target { xsd:string }?,
-  element mp:force_close { xsd:boolean }?
-
-filter_limit =
-  attribute type { "limit" },
-  element mp:limit {
-    attribute bandwidth { xsd:integer }?,
-    attribute pdu { xsd:integer }?,
-    attribute search { xsd:integer }?,
-    attribute retrieve { xsd:integer }?
-  }?
-
-filter_cgi =
-  attribute type { "cgi" },
-  element mp:map {
-    attribute path { xsd:string },
-    attribute exec { xsd:string }
-  }*
-
-#filter_zeerex_explain =
-#  attribute type { "zeerex_explain" },
-#  attribute id { xsd:NCName }?,
-#  attribute name { xsd:NCName }?,
-#  element mp:database {  
-#     attribute name { xsd:NCName },
-#     any        
-#  }+
-
index 602ea75..a5668fc 100644 (file)
@@ -2,7 +2,7 @@
 <!--
   Metaproxy XML config file schemas
   
-    Copyright (c) 2005-2008 Index Data.
+    Copyright (C) 2005-2011 Index Data.
   
     See the LICENSE file for details
   
     <ref name="metaproxy"/>
   </start>
   <include href="retrievalinfo.rng"/>
+  <include href="filter_auth_simple.rng"/>
+  <include href="filter_backend_test.rng"/>
+  <include href="filter_bounce.rng"/>
+  <include href="filter_cgi.rng"/>
+  <include href="filter_cql_rpn.rng"/>
+  <include href="filter_frontend_net.rng"/>
+  <include href="filter_http_file.rng"/>
+  <include href="filter_limit.rng"/>
+  <include href="filter_load_balance.rng"/>
+  <include href="filter_log.rng"/>
+  <include href="filter_multi.rng"/>
+  <include href="filter_query_rewrite.rng"/>
+  <include href="filter_record_transform.rng"/>
+  <include href="filter_session_shared.rng"/>
+  <include href="filter_sru_z3950.rng"/>
+  <include href="filter_virt_db.rng"/>
+  <include href="filter_z3950_client.rng"/>
   <define name="any">
     <zeroOrMore>
       <choice>
         <ref name="filter_virt_db"/>
         <ref name="filter_z3950_client"/>
       </choice>
-      <!--    | filter_zeerex_explain -->
     </element>
   </define>
   <define name="filter_refid">
       <data type="NCName"/>
     </attribute>
   </define>
-  <define name="filter_auth_simple">
-    <attribute name="type">
-      <value>auth_simple</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <element name="mp:userRegister">
-        <data type="string"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:targetRegister">
-        <data type="string"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:discardUnauthorisedTargets">
-        <empty/>
-      </element>
-    </optional>
-  </define>
-  <define name="filter_backend_test">
-    <attribute name="type">
-      <value>backend_test</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-  </define>
-  <define name="filter_bounce">
-    <attribute name="type">
-      <value>bounce</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-  </define>
-  <define name="filter_cql_rpn">
-    <attribute name="type">
-      <value>cql_rpn</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <element name="mp:conversion">
-      <attribute name="file">
-        <data type="string"/>
-      </attribute>
-    </element>
-  </define>
-  <define name="filter_frontend_net">
-    <attribute name="type">
-      <value>frontend_net</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <element name="mp:threads">
-        <data type="integer"/>
-      </element>
-    </optional>
-    <oneOrMore>
-      <element name="mp:port">
-        <data type="string"/>
-      </element>
-    </oneOrMore>
-    <optional>
-      <element name="mp:timeout">
-        <data type="integer"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:connect-max">
-        <data type="integer"/>
-      </element>
-    </optional>
-  </define>
-  <define name="filter_http_file">
-    <attribute name="type">
-      <value>http_file</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <element name="mp:mimetypes">
-      <data type="string"/>
-    </element>
-    <element name="mp:area">
-      <element name="mp:documentroot">
-        <data type="string"/>
-      </element>
-      <element name="mp:prefix">
-        <data type="string"/>
-      </element>
-    </element>
-  </define>
-  <define name="filter_load_balance">
-    <attribute name="type">
-      <value>load_balance</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-  </define>
-  <define name="filter_log">
-    <attribute name="type">
-      <value>log</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <element name="mp:message">
-        <data type="string"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:time-format">
-        <data type="string"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:filename">
-        <data type="string"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:category">
-        <optional>
-          <attribute name="user-access">
-            <data type="boolean"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="access">
-            <data type="boolean"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="init-options">
-            <data type="boolean"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="request-session">
-            <data type="boolean"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="response-session">
-            <data type="boolean"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="session">
-            <data type="boolean"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="apdu">
-            <data type="boolean"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="request-apdu">
-            <data type="boolean"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="response-apdu">
-            <data type="boolean"/>
-          </attribute>
-        </optional>
-      </element>
-    </optional>
-  </define>
-  <define name="filter_multi">
-    <attribute name="type">
-      <value>multi</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <zeroOrMore>
-      <element name="mp:target">
-        <attribute name="route">
-          <data type="string"/>
-        </attribute>
-        <data type="string"/>
-      </element>
-    </zeroOrMore>
-    <optional>
-      <element name="mp:hideunavailable">
-        <empty/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:mergetype">
-        <data type="string"/>
-      </element>
-    </optional>
-  </define>
-  <define name="filter_query_rewrite">
-    <attribute name="type">
-      <value>query_rewrite</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <element name="mp:xslt">
-      <attribute name="stylesheet">
-        <data type="string"/>
-      </attribute>
-    </element>
-  </define>
-  <define name="filter_record_transform">
-    <attribute name="type">
-      <value>record_transform</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <ref name="retrievalinfo"/>
-  </define>
-  <define name="filter_session_shared">
-    <attribute name="type">
-      <value>session_shared</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <element name="mp:resultset">
-        <attribute name="max">
-          <data type="integer"/>
-        </attribute>
-        <attribute name="ttl">
-          <data type="integer"/>
-        </attribute>
-        <attribute name="optimizesearch">
-          <data type="boolean"/>
-        </attribute>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:session">
-        <attribute name="ttl">
-          <data type="integer"/>
-        </attribute>
-      </element>
-    </optional>
-  </define>
-  <define name="filter_sru_z3950">
-    <attribute name="type">
-      <value>sru_z3950</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <zeroOrMore>
-      <element name="mp:database">
-        <attribute name="name">
-          <data type="NCName"/>
-        </attribute>
-        <ref name="any"/>
-      </element>
-    </zeroOrMore>
-  </define>
-  <define name="filter_virt_db">
-    <attribute name="type">
-      <value>virt_db</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <element name="mp:pass-vhosts">
-        <data type="boolean"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:torus">
-        <attribute name="url">
-          <data type="string"/>
-        </attribute>
-      </element>
-    </optional>
-    <zeroOrMore>
-      <element name="mp:virtual">
-        <optional>
-          <attribute name="route">
-            <data type="NCName"/>
-          </attribute>
-        </optional>
-        <element name="mp:database">
-          <data type="string"/>
-        </element>
-        <oneOrMore>
-          <element name="mp:target">
-            <data type="string"/>
-          </element>
-        </oneOrMore>
-      </element>
-    </zeroOrMore>
-  </define>
-  <define name="filter_z3950_client">
-    <attribute name="type">
-      <value>z3950_client</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <element name="mp:timeout">
-        <data type="integer"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:default_target">
-        <data type="string"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:force_target">
-        <data type="string"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:force_close">
-        <data type="boolean"/>
-      </element>
-    </optional>
-  </define>
-  <define name="filter_limit">
-    <attribute name="type">
-      <value>limit</value>
-    </attribute>
-    <optional>
-      <element name="mp:limit">
-        <optional>
-          <attribute name="bandwidth">
-            <data type="integer"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="pdu">
-            <data type="integer"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="search">
-            <data type="integer"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="retrieve">
-            <data type="integer"/>
-          </attribute>
-        </optional>
-      </element>
-    </optional>
-  </define>
-  <define name="filter_cgi">
-    <attribute name="type">
-      <value>cgi</value>
-    </attribute>
-    <zeroOrMore>
-      <element name="mp:map">
-        <attribute name="path">
-          <data type="string"/>
-        </attribute>
-        <attribute name="exec">
-          <data type="string"/>
-        </attribute>
-      </element>
-    </zeroOrMore>
-  </define>
 </grammar>
-<!--
-  filter_zeerex_explain =
-   attribute type { "zeerex_explain" },
-   attribute id { xsd:NCName }?,
-   attribute name { xsd:NCName }?,
-   element mp:database {  
-      attribute name { xsd:NCName },
-      any        
-   }+
--->
index 8fb6159..d7cd6fa 100644 (file)
@@ -2,7 +2,7 @@
 <!--
   Metaproxy XML config file schemas
   
-    Copyright (c) 2005-2008 Index Data.
+    Copyright (C) 2005-2011 Index Data.
   
     See the LICENSE file for details
   
   see also http://books.xmlschemata.org/relaxng/
 -->
 <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">
+  <xs:include schemaLocation="filter_auth_simple.xsd"/>
+  <xs:include schemaLocation="filter_cgi.xsd"/>
+  <xs:include schemaLocation="filter_cql_rpn.xsd"/>
+  <xs:include schemaLocation="filter_frontend_net.xsd"/>
+  <xs:include schemaLocation="filter_http_file.xsd"/>
+  <xs:include schemaLocation="filter_limit.xsd"/>
+  <xs:include schemaLocation="filter_log.xsd"/>
+  <xs:include schemaLocation="filter_multi.xsd"/>
+  <xs:include schemaLocation="filter_query_rewrite.xsd"/>
+  <xs:include schemaLocation="filter_session_shared.xsd"/>
+  <xs:include schemaLocation="filter_sru_z3950.xsd"/>
+  <xs:include schemaLocation="filter_virt_db.xsd"/>
+  <xs:include schemaLocation="filter_z3950_client.xsd"/>
+  <xs:import schemaLocation="local.xsd"/>
   <xs:import namespace="http://indexdata.com/yaz" schemaLocation="retrievalinfo.xsd"/>
   <xs:complexType name="any" mixed="true">
     <xs:sequence>
@@ -84,7 +98,7 @@
         <xs:group ref="mp:filter_log"/>
         <xs:group ref="mp:filter_multi"/>
         <xs:element ref="mp:xslt"/>
-        <xs:element ref="mp:filter_record_transform"/>
+        <xs:element ref="filter_record_transform"/>
         <xs:group ref="mp:filter_session_shared"/>
         <xs:group ref="mp:filter_sru_z3950"/>
         <xs:group ref="mp:filter_virt_db"/>
   <xs:attributeGroup name="filter_refid">
     <xs:attribute name="refid" use="required" type="xs:NCName"/>
   </xs:attributeGroup>
-  <xs:group name="filter_auth_simple">
-    <xs:sequence>
-      <xs:element minOccurs="0" ref="mp:userRegister"/>
-      <xs:element minOccurs="0" ref="mp:targetRegister"/>
-      <xs:element minOccurs="0" ref="mp:discardUnauthorisedTargets"/>
-    </xs:sequence>
-  </xs:group>
-  <xs:element name="userRegister" type="xs:string"/>
-  <xs:element name="targetRegister" type="xs:string"/>
-  <xs:element name="discardUnauthorisedTargets">
-    <xs:complexType/>
-  </xs:element>
-  <xs:attributeGroup name="filter_auth_simple">
-    <xs:attribute name="type" use="required">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="auth_simple"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:NCName"/>
-    <xs:attribute name="name" type="xs:NCName"/>
-  </xs:attributeGroup>
-  <xs:attributeGroup name="filter_backend_test">
-    <xs:attribute name="type" use="required">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="backend_test"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:NCName"/>
-    <xs:attribute name="name" type="xs:NCName"/>
-  </xs:attributeGroup>
-  <xs:attributeGroup name="filter_bounce">
-    <xs:attribute name="type" use="required">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="bounce"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:NCName"/>
-    <xs:attribute name="name" type="xs:NCName"/>
-  </xs:attributeGroup>
-  <xs:element name="conversion">
-    <xs:complexType>
-      <xs:attribute name="file" use="required" type="xs:string"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:attributeGroup name="filter_cql_rpn">
-    <xs:attribute name="type" use="required">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="cql_rpn"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:NCName"/>
-    <xs:attribute name="name" type="xs:NCName"/>
-  </xs:attributeGroup>
-  <xs:group name="filter_frontend_net">
-    <xs:sequence>
-      <xs:element minOccurs="0" ref="mp:threads"/>
-      <xs:element maxOccurs="unbounded" ref="mp:port"/>
-      <xs:element minOccurs="0" ref="mp:timeout"/>
-      <xs:element minOccurs="0" ref="mp:connect-max"/>
-    </xs:sequence>
-  </xs:group>
-  <xs:element name="threads" type="xs:integer"/>
-  <xs:element name="port" type="xs:string"/>
-  <xs:element name="timeout" type="xs:integer"/>
-  <xs:element name="connect-max" type="xs:integer"/>
-  <xs:attributeGroup name="filter_frontend_net">
-    <xs:attribute name="type" use="required">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="frontend_net"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:NCName"/>
-    <xs:attribute name="name" type="xs:NCName"/>
-  </xs:attributeGroup>
-  <xs:group name="filter_http_file">
-    <xs:sequence>
-      <xs:element ref="mp:mimetypes"/>
-      <xs:element ref="mp:area"/>
-    </xs:sequence>
-  </xs:group>
-  <xs:element name="mimetypes" type="xs:string"/>
-  <xs:element name="area">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element ref="mp:documentroot"/>
-        <xs:element ref="mp:prefix"/>
-      </xs:sequence>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="documentroot" type="xs:string"/>
-  <xs:element name="prefix" type="xs:string"/>
-  <xs:attributeGroup name="filter_http_file">
-    <xs:attribute name="type" use="required">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="http_file"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:NCName"/>
-    <xs:attribute name="name" type="xs:NCName"/>
-  </xs:attributeGroup>
-  <xs:attributeGroup name="filter_load_balance">
-    <xs:attribute name="type" use="required">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="load_balance"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:NCName"/>
-    <xs:attribute name="name" type="xs:NCName"/>
-  </xs:attributeGroup>
-  <xs:group name="filter_log">
-    <xs:sequence>
-      <xs:element minOccurs="0" ref="mp:message"/>
-      <xs:element minOccurs="0" ref="mp:time-format"/>
-      <xs:element minOccurs="0" ref="mp:filename"/>
-      <xs:element minOccurs="0" ref="mp:category"/>
-    </xs:sequence>
-  </xs:group>
-  <xs:element name="message" type="xs:string"/>
-  <xs:element name="time-format" type="xs:string"/>
-  <xs:element name="filename" type="xs:string"/>
-  <xs:element name="category">
-    <xs:complexType>
-      <xs:attribute name="user-access" type="xs:boolean"/>
-      <xs:attribute name="access" type="xs:boolean"/>
-      <xs:attribute name="init-options" type="xs:boolean"/>
-      <xs:attribute name="request-session" type="xs:boolean"/>
-      <xs:attribute name="response-session" type="xs:boolean"/>
-      <xs:attribute name="session" type="xs:boolean"/>
-      <xs:attribute name="apdu" type="xs:boolean"/>
-      <xs:attribute name="request-apdu" type="xs:boolean"/>
-      <xs:attribute name="response-apdu" type="xs:boolean"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:attributeGroup name="filter_log">
-    <xs:attribute name="type" use="required">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="log"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:NCName"/>
-    <xs:attribute name="name" type="xs:NCName"/>
-  </xs:attributeGroup>
-  <xs:group name="filter_multi">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="unbounded" ref="mp:target"/>
-      <xs:element minOccurs="0" ref="mp:hideunavailable"/>
-      <xs:element minOccurs="0" ref="mp:mergetype"/>
-    </xs:sequence>
-  </xs:group>
-  <xs:element name="target">
-    <xs:complexType>
-      <xs:simpleContent>
-        <xs:extension base="xs:string">
-          <xs:attribute name="route" use="required" type="xs:string"/>
-        </xs:extension>
-      </xs:simpleContent>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="hideunavailable">
-    <xs:complexType/>
-  </xs:element>
-  <xs:element name="mergetype" type="xs:string"/>
-  <xs:attributeGroup name="filter_multi">
-    <xs:attribute name="type" use="required">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="multi"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:NCName"/>
-    <xs:attribute name="name" type="xs:NCName"/>
-  </xs:attributeGroup>
-  <xs:element name="xslt">
-    <xs:complexType>
-      <xs:attribute name="stylesheet" use="required" type="xs:string"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:attributeGroup name="filter_query_rewrite">
-    <xs:attribute name="type" use="required">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="query_rewrite"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:NCName"/>
-    <xs:attribute name="name" type="xs:NCName"/>
-  </xs:attributeGroup>
-  <xs:element name="filter_record_transform" abstract="true">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element maxOccurs="unbounded" ref="y:retrieval"/>
-      </xs:sequence>
-      <xs:attribute name="version" use="required">
-        <xs:simpleType>
-          <xs:restriction base="xs:token">
-            <xs:enumeration value="1.0"/>
-          </xs:restriction>
-        </xs:simpleType>
-      </xs:attribute>
-    </xs:complexType>
-  </xs:element>
-  <xs:attributeGroup name="filter_record_transform">
-    <xs:attribute name="type" use="required">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="record_transform"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:NCName"/>
-    <xs:attribute name="name" type="xs:NCName"/>
-  </xs:attributeGroup>
-  <xs:group name="filter_session_shared">
-    <xs:sequence>
-      <xs:element minOccurs="0" ref="mp:resultset"/>
-      <xs:element minOccurs="0" ref="mp:session"/>
-    </xs:sequence>
-  </xs:group>
-  <xs:element name="resultset">
-    <xs:complexType>
-      <xs:attribute name="max" use="required" type="xs:integer"/>
-      <xs:attribute name="ttl" use="required" type="xs:integer"/>
-      <xs:attribute name="optimizesearch" use="required" type="xs:boolean"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="session">
-    <xs:complexType>
-      <xs:attribute name="ttl" use="required" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:attributeGroup name="filter_session_shared">
-    <xs:attribute name="type" use="required">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="session_shared"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:NCName"/>
-    <xs:attribute name="name" type="xs:NCName"/>
-  </xs:attributeGroup>
-  <xs:group name="filter_sru_z3950">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="unbounded" ref="mp:database"/>
-    </xs:sequence>
-  </xs:group>
-  <xs:element name="database">
-    <xs:complexType>
-      <xs:complexContent>
-        <xs:extension base="mp:any">
-          <xs:attribute name="name" use="required" type="xs:NCName"/>
-        </xs:extension>
-      </xs:complexContent>
-    </xs:complexType>
-  </xs:element>
-  <xs:attributeGroup name="filter_sru_z3950">
-    <xs:attribute name="type" use="required">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="sru_z3950"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:NCName"/>
-    <xs:attribute name="name" type="xs:NCName"/>
-  </xs:attributeGroup>
-  <xs:group name="filter_virt_db">
-    <xs:sequence>
-      <xs:element minOccurs="0" ref="mp:pass-vhosts"/>
-      <xs:element minOccurs="0" ref="mp:torus"/>
-      <xs:element minOccurs="0" maxOccurs="unbounded" ref="mp:virtual"/>
-    </xs:sequence>
-  </xs:group>
-  <xs:element name="pass-vhosts" type="xs:boolean"/>
-  <xs:element name="torus">
-    <xs:complexType>
-      <xs:attribute name="url" use="required" type="xs:string"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:element name="virtual">
-    <xs:complexType>
-      <xs:sequence>
-        <xs:element name="database" type="xs:string"/>
-        <xs:element maxOccurs="unbounded" name="target" type="xs:string"/>
-      </xs:sequence>
-      <xs:attribute name="route" type="xs:NCName"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:attributeGroup name="filter_virt_db">
-    <xs:attribute name="type" use="required">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="virt_db"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:NCName"/>
-    <xs:attribute name="name" type="xs:NCName"/>
-  </xs:attributeGroup>
-  <xs:group name="filter_z3950_client">
-    <xs:sequence>
-      <xs:element minOccurs="0" ref="mp:timeout"/>
-      <xs:element minOccurs="0" ref="mp:default_target"/>
-      <xs:element minOccurs="0" ref="mp:force_target"/>
-      <xs:element minOccurs="0" ref="mp:force_close"/>
-    </xs:sequence>
-  </xs:group>
-  <xs:element name="default_target" type="xs:string"/>
-  <xs:element name="force_target" type="xs:string"/>
-  <xs:element name="force_close" type="xs:boolean"/>
-  <xs:attributeGroup name="filter_z3950_client">
-    <xs:attribute name="type" use="required">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="z3950_client"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-    <xs:attribute name="id" type="xs:NCName"/>
-    <xs:attribute name="name" type="xs:NCName"/>
-  </xs:attributeGroup>
-  <xs:group name="filter_limit">
-    <xs:sequence>
-      <xs:element minOccurs="0" ref="mp:limit"/>
-    </xs:sequence>
-  </xs:group>
-  <xs:element name="limit">
-    <xs:complexType>
-      <xs:attribute name="bandwidth" type="xs:integer"/>
-      <xs:attribute name="pdu" type="xs:integer"/>
-      <xs:attribute name="search" type="xs:integer"/>
-      <xs:attribute name="retrieve" type="xs:integer"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:attributeGroup name="filter_limit">
-    <xs:attribute name="type" use="required">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="limit"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-  </xs:attributeGroup>
-  <xs:group name="filter_cgi">
-    <xs:sequence>
-      <xs:element minOccurs="0" maxOccurs="unbounded" ref="mp:map"/>
-    </xs:sequence>
-  </xs:group>
-  <xs:element name="map">
-    <xs:complexType>
-      <xs:attribute name="path" use="required" type="xs:string"/>
-      <xs:attribute name="exec" use="required" type="xs:string"/>
-    </xs:complexType>
-  </xs:element>
-  <xs:attributeGroup name="filter_cgi">
-    <xs:attribute name="type" use="required">
-      <xs:simpleType>
-        <xs:restriction base="xs:token">
-          <xs:enumeration value="cgi"/>
-        </xs:restriction>
-      </xs:simpleType>
-    </xs:attribute>
-  </xs:attributeGroup>
 </xs:schema>
-<!--
-  filter_zeerex_explain =
-   attribute type { "zeerex_explain" },
-   attribute id { xsd:NCName }?,
-   attribute name { xsd:NCName }?,
-   element mp:database {  
-      attribute name { xsd:NCName },
-      any        
-   }+
--->
index 7270a7f..8d3a5f5 100644 (file)
@@ -1,6 +1,6 @@
 # Metaproxy XML config file schemas
 # 
-#   Copyright (c) 2005-2008 Index Data.
+#   Copyright (C) 2005-2011 Index Data.
 # 
 #   See the LICENSE file for details
 # 
index 1ecb303..5056537 100644 (file)
@@ -2,7 +2,7 @@
 <!--
   Metaproxy XML config file schemas
   
-    Copyright (c) 2005-2008 Index Data.
+    Copyright (C) 2005-2011 Index Data.
   
     See the LICENSE file for details
   
index 906a8e7..56a4632 100644 (file)
@@ -2,7 +2,7 @@
 <!--
   Metaproxy XML config file schemas
   
-    Copyright (c) 2005-2008 Index Data.
+    Copyright (C) 2005-2011 Index Data.
   
     See the LICENSE file for details
   
@@ -21,6 +21,7 @@
   see also http://books.xmlschemata.org/relaxng/
 -->
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://indexdata.com/yaz" xmlns:mp="http://indexdata.com/metaproxy" xmlns:y="http://indexdata.com/yaz">
+  <xs:import schemaLocation="local.xsd"/>
   <xs:import namespace="http://indexdata.com/metaproxy" schemaLocation="metaproxy.xsd"/>
   <!--
     need to be in different namespace then metaproxy, otherwise 
@@ -39,7 +40,7 @@
       <xs:attribute name="stylesheet" use="required" type="xs:string"/>
     </xs:complexType>
   </xs:element>
-  <xs:element name="retrievalinfo" substitutionGroup="mp:filter_record_transform"/>
+  <xs:element name="retrievalinfo" substitutionGroup="filter_record_transform"/>
   <xs:element name="retrieval">
     <xs:complexType>
       <xs:sequence>