-# Metaproxy XML config file schemas
-# $Id: retrievalinfo.rnc,v 1.2 2006-11-29 21:43:38 marc Exp $
-#
-# Copyright (c) 2005-2006, Index Data.
-#
-# See the LICENSE file for details
-#
-#
-# The RelaxNG Compact Syntax file 'retrievalinfo.rnc' is the master copy.
-#
-# The RelaxNG XML Syntax and XML Schema are generated using 'trang':
-# trang retrievalinfo.rnc retrievalinfo.rng
-# trang retrievalinfo.rnc retrievalinfo.xsd
-#
-# Config file validation is done using 'xmllint':
-# xmllint -/-relaxng retrievalinfo.rng retrievalinfo.xml
-# xmllint -/-schema retrievalinfo.xsd retirevalinfo.xml
-#
-# For information on RelaxNG see http://relaxng.org
-# see also http://books.xmlschemata.org/relaxng/
+# Schema for YAZ retrieval info and USEMARCON extension
-#namespace y = "http://indexdata.com/yaz"
-namespace y = "http://indexdata.com/metaproxy"
+namespace y = "http://indexdata.com/yaz"
-#start = retrievalinfo
+start |= retrievalinfo
+
+marc = element y:marc {
+ attribute inputformat { xsd:string },
+ attribute outputformat { xsd:string },
+ attribute inputcharset { xsd:string },
+ attribute outputcharset { xsd:string }?,
+ attribute leaderspec { xsd:string }?
+}
+
+xslt = element y:xslt {
+ attribute stylesheet { xsd:string },
+ element y:param {
+ attribute name {xsd:string},
+ attribute value {xsd:string}
+ }*
+}
+
+usemarcon = element y:usemarcon {
+ attribute stage1 { xsd:string }?,
+ attribute stage2 { xsd:string }?
+}
retrievalinfo =
element y:retrievalinfo {
attribute syntax { xsd:string },
attribute name { xsd:string }?,
attribute identifier { xsd:string }?,
- attribute backendsyntax { xsd:string }?,
- attribute backendname { xsd:string }?,
- element y:convert {
- element y:marc {
- attribute inputformat { xsd:string },
- attribute outputformat { xsd:string },
- attribute inputcharset { xsd:string }
- },
- element y:xslt {
- attribute stylesheet { xsd:string }
- }?
+ element y:backend {
+ attribute syntax { xsd:string },
+ attribute name { xsd:string }?,
+ (marc | xslt | usemarcon)*
}?
}+
}