Element 'marc' is optional
[metaproxy-moved-to-github.git] / xml / schema / retrievalinfo.rnc
1 # Metaproxy XML config file schemas
2 #  $Id: retrievalinfo.rnc,v 1.5 2007-01-25 11:25:20 adam Exp $
3
4 #   Copyright (c) 2005-2006, Index Data.
5
6 #   See the LICENSE file for details
7
8
9 # The RelaxNG Compact Syntax file 'retrievalinfo.rnc' is the master copy.
10
11 # The RelaxNG XML Syntax and XML Schema are generated using 'trang':
12 # trang retrievalinfo.rnc retrievalinfo.rng 
13 # trang retrievalinfo.rnc retrievalinfo.xsd 
14
15 # Config file validation is done using 'xmllint':
16 # xmllint -/-relaxng retrievalinfo.rng retrievalinfo.xml 
17 # xmllint -/-schema retrievalinfo.xsd retirevalinfo.xml
18
19 # For information on RelaxNG see http://relaxng.org 
20 # see also http://books.xmlschemata.org/relaxng/
21
22 namespace y = "http://indexdata.com/yaz"
23
24 # need to be in different namespace then metaproxy, otherwise 
25 # xslt element definition clashes in XML Schema files
26 # namespace y = "http://indexdata.com/metaproxy"
27
28 start |= retrievalinfo
29
30 retrievalinfo = 
31   element y:retrievalinfo { 
32     attribute version { "1.0" },
33     element y:retrieval {
34       attribute syntax { xsd:string },
35       attribute name { xsd:string }?,
36       attribute identifier { xsd:string }?,
37       #attribute backendsyntax { xsd:string }?,
38       #attribute backendname { xsd:string }?,
39       element y:backend {
40       attribute syntax { xsd:string },
41       attribute name { xsd:string }?,
42         element y:marc {
43           attribute inputformat { xsd:string },
44           attribute outputformat { xsd:string },
45           attribute inputcharset { xsd:string }
46         }?,
47         element y:xslt {
48           attribute stylesheet { xsd:string }
49         }?
50       }?
51     }+
52   }