Add yazproxy config schema. Assign namespace for it.
authorAdam Dickmeiss <adam@indexdata.dk>
Mon, 19 Apr 2004 13:42:52 +0000 (13:42 +0000)
committerAdam Dickmeiss <adam@indexdata.dk>
Mon, 19 Apr 2004 13:42:52 +0000 (13:42 +0000)
etc/Makefile.am
etc/config.xml
etc/voyager.xml
etc/yazproxy.xsd [new file with mode: 0644]
etc/zeerex-2.0.xsd [new file with mode: 0644]

index 6d9a8d5..8e7ab90 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.am,v 1.1 2004-04-11 11:37:00 adam Exp $
+# $Id: Makefile.am,v 1.2 2004-04-19 13:42:52 adam Exp $
 
 proxydatadir=$(datadir)/yazproxy
 proxydata_DATA = \
@@ -11,6 +11,8 @@ proxydata_DATA = \
  config.xml \
  voyager.xml \
  pqf.properties \
+ yazproxy.xsd \
+ zeerex-2.0.xsd \
  yaz-proxy.sh
 
 EXTRA_DIST = $(proxydata_DATA)
index f225c3c..fdc229e 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
-<!-- $Id: config.xml,v 1.1 2004-04-11 11:37:01 adam Exp $ -->
-<proxy>
+<!-- $Id: config.xml,v 1.2 2004-04-19 13:42:52 adam Exp $ -->
+<proxy xmlns="http://indexdata.dk/yazproxy/schema/0.8/">
   <target name="bagel">
     <url>indexdata.dk</url>
     <target-timeout>240</target-timeout>
     <syntax type="xml" marcxml="1"/>
     <syntax type="*" error="238"/>
     <preinit>0</preinit>
+    <explain xmlns="http://explain.z3950.org/dtd/2.0/">
+       <serverInfo>
+       <host>indexdata.dk</host>
+       <port>9000</port>
+       <database>Default</database>
+       </serverInfo>
+    </explain>
     <cql2rpn>pqf.properties</cql2rpn>
-    <zeerex>zeerex.xml</zeerex>
   </target>
   <target default="1" name="localhost">
     <url>localhost:9999</url>
     <syntax type="*" error="238"/>
     <preinit>2</preinit>
     <cql2rpn>pqf.properties</cql2rpn>
-    <explain>
-      <serverInfo>
-       <host>indexdata.dk</host>
-       <port>9000</port>
-       <database>Default</database>
-      </serverInfo>
-    </explain>
   </target>
   <target name="*">
     <!-- everything else -->
index e59fbd4..ef07df2 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
-<!-- $Id: voyager.xml,v 1.1 2004-04-11 11:37:01 adam Exp $ -->
-<proxy>
+<!-- $Id: voyager.xml,v 1.2 2004-04-19 13:42:52 adam Exp $ -->
+<proxy xmlns="http://indexdata.dk/yazproxy/schema/0.8/">
   <!-- define default target and name it voyager -->
   <target default="1" name="voyager">
     <!-- all backend addresses as seen from this proxy .. -->
diff --git a/etc/yazproxy.xsd b/etc/yazproxy.xsd
new file mode 100644 (file)
index 0000000..1548540
--- /dev/null
@@ -0,0 +1,95 @@
+<?xml version="1.0"?>
+<!-- XML Schema for YAZ proxy config file.
+    $Id: yazproxy.xsd,v 1.1 2004-04-19 13:42:52 adam Exp $
+-->
+<xs:schema
+  xmlns:xs="http://www.w3.org/2001/XMLSchema"
+  xmlns:exp="http://explain.z3950.org/dtd/2.0/"
+  xmlns="http://indexdata.dk/yazproxy/schema/0.8/"
+  targetNamespace="http://indexdata.dk/yazproxy/schema/0.8/"
+  >
+ <xs:import namespace="http://explain.z3950.org/dtd/2.0/" 
+      schemaLocation="zeerex-2.0.xsd"/>
+ <xs:element name="proxy">
+  <xs:complexType>
+   <xs:sequence>
+    <xs:element ref="target" minOccurs="0" maxOccurs="unbounded"/>
+    <xs:element ref="max-clients" minOccurs="0"/>
+    <xs:element ref="log" minOccurs="0"/>
+   </xs:sequence>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="target">
+  <xs:complexType>
+   <xs:sequence>
+     <xs:element ref="url" minOccurs="0" maxOccurs="unbounded"/>
+     <xs:element ref="target-timeout" minOccurs="0"/>
+     <xs:element ref="client-timeout" minOccurs="0"/>
+     <xs:element ref="keepalive" minOccurs="0"/>
+     <xs:element ref="limit" minOccurs="0"/>
+     <xs:element ref="attribute" minOccurs="0" maxOccurs="unbounded"/>
+     <xs:element ref="syntax" minOccurs="0" maxOccurs="unbounded"/>
+     <xs:element ref="preinit" minOccurs="0"/>
+     <xs:element name="exp:explain" minOccurs="0"/>
+     <xs:element ref="cql2rpn" minOccurs="0"/>
+   </xs:sequence>
+   <xs:attribute name="default" type="xs:string" use="optional"/>
+   <xs:attribute name="name" type="xs:string"/>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="url" type="xs:string"/>
+ <xs:element name="target-timeout" type="xs:integer"/>
+ <xs:element name="client-timeout" type="xs:integer"/>
+ <xs:element name="bandwidth" type="xs:integer"/>
+ <xs:element name="pdu" type="xs:integer"/>
+ <xs:element name="retrieve" type="xs:integer"/>
+ <xs:element name="preinit" type="xs:integer"/>
+ <xs:element name="cql2rpn" type="xs:string"/>
+
+ <xs:element name="keepalive">
+  <xs:complexType>
+   <xs:sequence>
+    <xs:element ref="bandwidth" minOccurs="0"/>
+    <xs:element ref="pdu" minOccurs="0"/>
+   </xs:sequence>
+  </xs:complexType>
+ </xs:element>
+ <xs:element name="limit">
+  <xs:complexType>
+   <xs:sequence>
+    <xs:element ref="bandwidth" minOccurs="0"/>
+    <xs:element ref="pdu" minOccurs="0"/>
+    <xs:element ref="retrieve" minOccurs="0"/>
+   </xs:sequence>
+  </xs:complexType>
+ </xs:element>
+ <xs:element name="attribute">
+  <xs:complexType>
+   <xs:attribute name="type" type="xs:string"/>
+   <xs:attribute name="value" type="xs:string"/>
+   <xs:attribute name="error" type="xs:integer"/>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="syntax">
+  <xs:complexType>
+   <xs:sequence>
+    <xs:element name="title" type="xs:string" minOccurs="0"/>
+    <xs:element name="name" type="xs:string" minOccurs="0"
+                                             maxOccurs="unbounded"/>
+   </xs:sequence>
+   <xs:attribute name="error" type="xs:string" minOccurs="0"/>
+   <xs:attribute name="type" type="xs:string" minOccurs="0"/>
+   <xs:attribute name="marcxml" type="xs:string" minOccurs="0"/>
+   <xs:attribute name="identifier" type="xs:string" minOccurs="0"/>
+   <xs:attribute name="stylesheet" type="xs:string" minOccurs="0"/>
+  </xs:complexType>
+ </xs:element>
+
+ <xs:element name="max-clients" type="xs:integer"/>
+ <xs:element name="log" type="xs:string"/>
+
+</xs:schema>
diff --git a/etc/zeerex-2.0.xsd b/etc/zeerex-2.0.xsd
new file mode 100644 (file)
index 0000000..d7571d7
--- /dev/null
@@ -0,0 +1,482 @@
+<schema
+  xmlns='http://www.w3.org/2001/XMLSchema'
+  targetNamespace='http://explain.z3950.org/dtd/2.0/'
+  xmlns:explain='http://explain.z3950.org/dtd/2.0/'>
+
+ <element name='explain'>
+  <complexType>
+   <sequence>
+    <element ref='explain:serverInfo'/>
+    <element ref='explain:databaseInfo' minOccurs='0' maxOccurs='1'/>
+    <element ref='explain:metaInfo' minOccurs='0' maxOccurs='1'/>
+    <element ref='explain:indexInfo' minOccurs='0' maxOccurs='1'/>
+    <choice minOccurs='0' maxOccurs='1'>
+     <element ref='explain:recordInfo'/>
+     <element ref='explain:schemaInfo'/>
+    </choice>
+    <element ref='explain:configInfo' minOccurs='0' maxOccurs='1'/>
+   </sequence>
+   <attribute name='authoritative' use='optional' default='false'>
+    <simpleType>
+     <restriction base='string'>
+      <enumeration value='true'/>
+      <enumeration value='false'/>
+     </restriction>
+    </simpleType>
+   </attribute>
+   <attribute name='id' type='string' use='optional'/>
+  </complexType>
+ </element>
+
+ <element name='serverInfo'>
+  <complexType>
+   <sequence>
+    <element ref='explain:host'/>
+    <element ref='explain:port'/>
+    <element ref='explain:database'/>
+    <element ref='explain:authentication' minOccurs='0' maxOccurs='1'/>
+   </sequence>
+   <attribute name='protocol' type='string' use='optional' default='Z39.50'/>
+   <attribute name='version' type='string' use='optional' default='3'/>
+   <attribute name='transport' type='string' use='optional' default='http'/>
+   <attribute name='wsdl' type='string' use='optional'/>
+  </complexType>
+ </element>
+
+ <element name='host'>
+  <complexType mixed='true'>
+  </complexType>
+ </element>
+
+ <element name='port'>
+  <complexType mixed='true'>
+  </complexType>
+ </element>
+
+ <element name='database'>
+  <complexType mixed='true'>
+   <attribute name='numRecs' type='string' use='optional'/>
+   <attribute name='lastUpdate' type='string' use='optional'/>
+  </complexType>
+ </element>
+
+ <element name='authentication'>
+  <complexType>
+   <choice>
+    <element ref='explain:open'/>
+    <sequence>
+     <element ref='explain:user' minOccurs='0' maxOccurs='1'/>
+     <element ref='explain:group' minOccurs='0' maxOccurs='1'/>
+     <element ref='explain:password' minOccurs='0' maxOccurs='1'/>
+    </sequence>
+   </choice>
+   <attribute name='required' use='optional' default='true'>
+    <simpleType>
+     <restriction base='string'>
+      <enumeration value='true'/>
+      <enumeration value='false'/>
+     </restriction>
+    </simpleType>
+   </attribute>
+  </complexType>
+ </element>
+
+ <element name='open'>
+  <complexType mixed='true'>
+  </complexType>
+ </element>
+
+ <element name='user'>
+  <complexType mixed='true'>
+  </complexType>
+ </element>
+
+ <element name='group'>
+  <complexType mixed='true'>
+  </complexType>
+ </element>
+
+ <element name='password'>
+  <complexType mixed='true'>
+  </complexType>
+ </element>
+
+ <element name='databaseInfo'>
+  <complexType>
+   <sequence>
+    <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
+    <element ref='explain:description' minOccurs='0' maxOccurs='unbounded'/>
+    <choice minOccurs='0' maxOccurs='unbounded'>
+     <element ref='explain:author'/>
+     <element ref='explain:contact'/>
+     <element ref='explain:extent'/>
+     <element ref='explain:history'/>
+     <element ref='explain:langUsage'/>
+     <element ref='explain:restrictions'/>
+     <element ref='explain:subjects'/>
+     <element ref='explain:links'/>
+     <element ref='explain:implementation'/>
+    </choice>
+   </sequence>
+  </complexType>
+ </element>
+
+ <element name='title'>
+  <complexType mixed='true'>
+   <attribute name='primary' use='optional'>
+    <simpleType>
+     <restriction base='string'>
+      <enumeration value='true'/>
+      <enumeration value='false'/>
+     </restriction>
+    </simpleType>
+   </attribute>
+   <attribute name='lang' type='string' use='optional'/>
+  </complexType>
+ </element>
+
+ <element name='description'>
+  <complexType mixed='true'>
+   <attribute name='primary' use='optional'>
+    <simpleType>
+     <restriction base='string'>
+      <enumeration value='true'/>
+      <enumeration value='false'/>
+     </restriction>
+    </simpleType>
+   </attribute>
+   <attribute name='lang' type='string' use='optional'/>
+  </complexType>
+ </element>
+
+ <element name='author'>
+  <complexType mixed='true'>
+   <attribute name='primary' use='optional'>
+    <simpleType>
+     <restriction base='string'>
+      <enumeration value='true'/>
+      <enumeration value='false'/>
+     </restriction>
+    </simpleType>
+   </attribute>
+   <attribute name='lang' type='string' use='optional'/>
+  </complexType>
+ </element>
+
+ <element name='contact'>
+  <complexType mixed='true'>
+   <attribute name='primary' use='optional'>
+    <simpleType>
+     <restriction base='string'>
+      <enumeration value='true'/>
+      <enumeration value='false'/>
+     </restriction>
+    </simpleType>
+   </attribute>
+   <attribute name='lang' type='string' use='optional'/>
+  </complexType>
+ </element>
+
+ <element name='extent'>
+  <complexType mixed='true'>
+   <attribute name='primary' use='optional'>
+    <simpleType>
+     <restriction base='string'>
+      <enumeration value='true'/>
+      <enumeration value='false'/>
+     </restriction>
+    </simpleType>
+   </attribute>
+   <attribute name='lang' type='string' use='optional'/>
+  </complexType>
+ </element>
+
+ <element name='history'>
+  <complexType mixed='true'>
+   <attribute name='primary' use='optional'>
+    <simpleType>
+     <restriction base='string'>
+      <enumeration value='true'/>
+      <enumeration value='false'/>
+     </restriction>
+    </simpleType>
+   </attribute>
+   <attribute name='lang' type='string' use='optional'/>
+  </complexType>
+ </element>
+
+ <element name='langUsage'>
+  <complexType mixed='true'>
+   <attribute name='codes' type='string' use='optional'/>
+   <attribute name='primary' use='optional'>
+    <simpleType>
+     <restriction base='string'>
+      <enumeration value='true'/>
+      <enumeration value='false'/>
+     </restriction>
+    </simpleType>
+   </attribute>
+   <attribute name='lang' type='string' use='optional'/>
+  </complexType>
+ </element>
+
+ <element name='restrictions'>
+  <complexType mixed='true'>
+   <attribute name='primary' use='optional'>
+    <simpleType>
+     <restriction base='string'>
+      <enumeration value='true'/>
+      <enumeration value='false'/>
+     </restriction>
+    </simpleType>
+   </attribute>
+   <attribute name='lang' type='string' use='optional'/>
+  </complexType>
+ </element>
+
+ <element name='subjects'>
+  <complexType>
+   <sequence>
+    <element ref='explain:subject' maxOccurs='unbounded'/>
+   </sequence>
+  </complexType>
+ </element>
+
+ <element name='subject'>
+  <complexType mixed='true'>
+  </complexType>
+ </element>
+
+ <element name='links'>
+  <complexType>
+   <sequence>
+    <element ref='explain:link' maxOccurs='unbounded'/>
+   </sequence>
+  </complexType>
+ </element>
+
+ <element name='link'>
+  <complexType mixed='true'>
+   <attribute name='type' type='string' use='optional'/>
+  </complexType>
+ </element>
+
+ <element name='implementation'>
+  <complexType>
+   <sequence>
+    <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
+   </sequence>
+   <attribute name='identifier' type='string' use='optional'/>
+   <attribute name='version' type='string' use='optional'/>
+  </complexType>
+ </element>
+
+ <element name='metaInfo'>
+  <complexType>
+   <sequence>
+    <element ref='explain:dateModified'/>
+    <sequence minOccurs='0' maxOccurs='1'>
+     <element ref='explain:aggregatedFrom'/>
+     <element ref='explain:dateAggregated'/>
+    </sequence>
+   </sequence>
+  </complexType>
+ </element>
+
+ <element name='dateModified'>
+  <complexType mixed='true'>
+  </complexType>
+ </element>
+
+ <element name='aggregatedFrom'>
+  <complexType mixed='true'>
+  </complexType>
+ </element>
+
+ <element name='dateAggregated'>
+  <complexType mixed='true'>
+  </complexType>
+ </element>
+
+ <element name='indexInfo'>
+  <complexType>
+   <choice maxOccurs='unbounded'>
+    <element ref='explain:set'/>
+    <element ref='explain:index'/>
+    <element ref='explain:sortKeyword'/>
+   </choice>
+  </complexType>
+ </element>
+
+ <element name='set'>
+  <complexType>
+   <sequence>
+    <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
+   </sequence>
+   <attribute name='name' type='string' use='required'/>
+   <attribute name='identifier' type='string' use='required'/>
+  </complexType>
+ </element>
+
+ <element name='index'>
+  <complexType>
+   <sequence>
+    <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
+    <element ref='explain:map' maxOccurs='unbounded'/>
+    <element ref='explain:configInfo' minOccurs='0' maxOccurs='1'/>
+   </sequence>
+   <attribute name='id' type='string' use='optional'/>
+   <attribute name='search' use='optional'>
+    <simpleType>
+     <restriction base='string'>
+      <enumeration value='true'/>
+      <enumeration value='false'/>
+     </restriction>
+    </simpleType>
+   </attribute>
+   <attribute name='scan' use='optional'>
+    <simpleType>
+     <restriction base='string'>
+      <enumeration value='true'/>
+      <enumeration value='false'/>
+     </restriction>
+    </simpleType>
+   </attribute>
+   <attribute name='sort' use='optional'>
+    <simpleType>
+     <restriction base='string'>
+      <enumeration value='true'/>
+      <enumeration value='false'/>
+     </restriction>
+    </simpleType>
+   </attribute>
+  </complexType>
+ </element>
+
+ <element name='sortKeyword'>
+  <complexType mixed='true'>
+  </complexType>
+ </element>
+
+ <element name='map'>
+  <complexType>
+   <choice>
+    <sequence>
+     <element ref='explain:attr' maxOccurs='unbounded'/>
+    </sequence>
+    <element ref='explain:name'/>
+   </choice>
+   <attribute name='primary' use='optional' default='false'>
+    <simpleType>
+     <restriction base='string'>
+      <enumeration value='true'/>
+      <enumeration value='false'/>
+     </restriction>
+    </simpleType>
+   </attribute>
+  </complexType>
+ </element>
+
+ <element name='name'>
+  <complexType mixed='true'>
+   <attribute name='set' type='string' use='optional'/>
+  </complexType>
+ </element>
+
+ <element name='attr'>
+  <complexType mixed='true'>
+   <attribute name='type' type='string' use='required'/>
+   <attribute name='set' type='string' use='optional' default='1.2.840.10003.3.1'/>
+  </complexType>
+ </element>
+
+ <element name='recordInfo'>
+  <complexType>
+   <sequence>
+    <element ref='explain:recordSyntax' maxOccurs='unbounded'/>
+   </sequence>
+  </complexType>
+ </element>
+
+ <element name='recordSyntax'>
+  <complexType>
+   <sequence>
+    <element ref='explain:elementSet' maxOccurs='unbounded'/>
+   </sequence>
+   <attribute name='name' type='string' use='optional'/>
+   <attribute name='identifier' type='string' use='optional'/>
+  </complexType>
+ </element>
+
+ <element name='elementSet'>
+  <complexType>
+   <sequence>
+    <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
+   </sequence>
+   <attribute name='name' type='string' use='required'/>
+  </complexType>
+ </element>
+
+ <element name='schemaInfo'>
+  <complexType>
+   <sequence>
+    <element ref='explain:schema' maxOccurs='unbounded'/>
+   </sequence>
+  </complexType>
+ </element>
+
+ <element name='schema'>
+  <complexType>
+   <sequence>
+    <element ref='explain:title' minOccurs='0' maxOccurs='unbounded'/>
+   </sequence>
+   <attribute name='identifier' type='string' use='required'/>
+   <attribute name='name' type='string' use='required'/>
+   <attribute name='location' type='string' use='optional'/>
+   <attribute name='sort' use='optional' default='false'>
+    <simpleType>
+     <restriction base='string'>
+      <enumeration value='true'/>
+      <enumeration value='false'/>
+     </restriction>
+    </simpleType>
+   </attribute>
+   <attribute name='retrieve' use='optional' default='true'>
+    <simpleType>
+     <restriction base='string'>
+      <enumeration value='true'/>
+      <enumeration value='false'/>
+     </restriction>
+    </simpleType>
+   </attribute>
+  </complexType>
+ </element>
+
+ <element name='configInfo'>
+  <complexType>
+   <choice minOccurs='0' maxOccurs='unbounded'>
+    <element ref='explain:default'/>
+    <element ref='explain:setting'/>
+    <element ref='explain:supports'/>
+   </choice>
+  </complexType>
+ </element>
+
+ <element name='default'>
+  <complexType mixed='true'>
+   <attribute name='type' type='string' use='required'/>
+  </complexType>
+ </element>
+
+ <element name='setting'>
+  <complexType mixed='true'>
+   <attribute name='type' type='string' use='required'/>
+  </complexType>
+ </element>
+
+ <element name='supports'>
+  <complexType mixed='true'>
+   <attribute name='type' type='string' use='required'/>
+  </complexType>
+ </element>
+</schema>